tizen 2.3.1 release
[framework/web/wearable/wrt-security.git] / ace / CMakeLists.txt
1 # Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
2 #
3 #    Licensed under the Apache License, Version 2.0 (the "License");
4 #    you may not use this file except in compliance with the License.
5 #    You may obtain a copy of the License at
6 #
7 #        http://www.apache.org/licenses/LICENSE-2.0
8 #
9 #    Unless required by applicable law or agreed to in writing, software
10 #    distributed under the License is distributed on an "AS IS" BASIS,
11 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 #    See the License for the specific language governing permissions and
13 #    limitations under the License.
14 #
15 ######################################################################
16
17 IF(DEFINED DBUS_CONNECTION)
18 #DB vcore
19 PKG_CHECK_MODULES(ACE_DB_DEP
20     dpl-efl
21     REQUIRED)
22 ENDIF()
23
24 #DB ace
25 ADD_CUSTOM_COMMAND(
26     OUTPUT ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h
27     COMMAND ${CMAKE_SOURCE_DIR}/ace/orm/gen_db_md5.sh
28     ARGS ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h
29          ${CMAKE_SOURCE_DIR}/ace/orm/ace_db
30     DEPENDS ${CMAKE_SOURCE_DIR}/ace/orm/ace_db
31             ${CMAKE_SOURCE_DIR}/ace/orm/gen_db_md5.sh
32     COMMENT "Generating ACE database checksum"
33     )
34 ADD_CUSTOM_TARGET(ACE_DB_CHECKSUM_HEADER DEPENDS ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h)
35
36 STRING(REPLACE ";" ":" DEPENDENCIES "${ACE_DB_DEP_INCLUDE_DIRS}")
37
38 IF(DEFINED DBUS_CONNECTION)
39 ADD_CUSTOM_COMMAND( OUTPUT .ace.db
40   COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/.ace.db
41   COMMAND CPATH=${DEPENDENCIES} gcc -Wall -include ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h -I${PROJECT_SOURCE_DIR}/ace/orm -E ${PROJECT_SOURCE_DIR}/ace/orm/ace_db_sql_generator.h | grep --invert-match "^#" > ${CMAKE_CURRENT_BINARY_DIR}/ace_db.sql
42   COMMAND sqlite3 ${CMAKE_CURRENT_BINARY_DIR}/.ace.db ".read ${CMAKE_CURRENT_BINARY_DIR}/ace_db.sql" || rm -f ${CMAKE_CURRENT_BINARY_DIR}/.ace.db
43   DEPENDS ACE_DB_CHECKSUM_HEADER ${PROJECT_SOURCE_DIR}/ace/orm/ace_db_sql_generator.h ${PROJECT_SOURCE_DIR}/ace/orm/ace_db
44   )
45 ELSE()
46 ADD_CUSTOM_COMMAND( OUTPUT .ace.db
47   COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/.ace.db
48   COMMAND CPATH=${DEPENDENCIES} gcc -Wall -include ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h -I${PROJECT_SOURCE_DIR}/commons/modules/db/include -I${PROJECT_SOURCE_DIR}/ace/orm -E ${PROJECT_SOURCE_DIR}/ace/orm/ace_db_sql_generator.h | grep --invert-match "^#" > ${CMAKE_CURRENT_BINARY_DIR}/ace_db.sql
49   COMMAND sqlite3 ${CMAKE_CURRENT_BINARY_DIR}/.ace.db ".read ${CMAKE_CURRENT_BINARY_DIR}/ace_db.sql" || rm -f ${CMAKE_CURRENT_BINARY_DIR}/.ace.db
50   DEPENDS ACE_DB_CHECKSUM_HEADER ${PROJECT_SOURCE_DIR}/ace/orm/ace_db_sql_generator.h ${PROJECT_SOURCE_DIR}/ace/orm/ace_db
51   )
52 ENDIF()
53
54 ADD_CUSTOM_COMMAND( OUTPUT .ace.db-journal
55   COMMAND touch
56   ARGS  ${CMAKE_CURRENT_BINARY_DIR}/.ace.db-journal
57   )
58
59 ADD_CUSTOM_TARGET(Sqlite3DbACE ALL DEPENDS .ace.db .ace.db-journal)
60
61 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ace_db.sql
62     DESTINATION share/wrt-engine/
63     )
64
65 ###########################################################
66
67 INCLUDE(FindPkgConfig)
68
69 SET(ACE_TEST_PATH "/usr/apps/org.tizen.policy")
70
71 INSTALL(FILES
72     ${CMAKE_CURRENT_SOURCE_DIR}/configuration/bondixml.xsd
73     ${CMAKE_CURRENT_SOURCE_DIR}/configuration/UnrestrictedPolicy.xml
74     ${CMAKE_CURRENT_SOURCE_DIR}/configuration/WAC2.0Policy.xml
75     DESTINATION /usr/etc/ace
76     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
77
78 IF(DEFINED DBUS_CONNECTION)
79 SET(ACE_LIB_DEPS_BASIC
80     dpl-efl
81     dpl-db-efl
82     dpl-event-efl
83     ecore
84     appcore-efl
85     openssl
86     sqlite3
87     dlog
88     vconf
89     db-util
90     libpcrecpp
91     icu-uc
92     libxml-2.0
93     )
94 ELSE()
95 SET(ACE_LIB_DEPS_BASIC
96     openssl
97     sqlite3
98     dlog
99     vconf
100     icu-uc
101     libxml-2.0
102     )
103 ENDIF()
104
105 IF(SMACK_ENABLED)
106     LIST(APPEND ACE_LIB_DEPS_BASIC libprivilege-control)
107 ENDIF(SMACK_ENABLED)
108
109 PKG_CHECK_MODULES(ACE_LIB_DEPS ${ACE_LIB_DEPS_BASIC} REQUIRED)
110
111 SET(WRT_ACE_DIR ${PROJECT_SOURCE_DIR}/ace)
112
113 SET(ACE_SOURCES
114   ${WRT_ACE_DIR}/engine/PolicyEvaluator.cpp
115   ${WRT_ACE_DIR}/engine/PolicyInformationPoint.cpp
116   ${WRT_ACE_DIR}/engine/CombinerImpl.cpp
117   ${WRT_ACE_DIR}/engine/parser.cpp
118   ${WRT_ACE_DIR}/engine/PolicyEnforcementPoint.cpp
119   ${WRT_ACE_DIR}/engine/SettingsLogic.cpp
120   ${WRT_ACE_DIR}/engine/Attribute.cpp
121   ${WRT_ACE_DIR}/engine/Condition.cpp
122   ${WRT_ACE_DIR}/engine/Policy.cpp
123   ${WRT_ACE_DIR}/engine/Rule.cpp
124   ${WRT_ACE_DIR}/engine/Subject.cpp
125   ${WRT_ACE_DIR}/engine/TreeNode.cpp
126   ${WRT_ACE_DIR}/engine/ConfigurationManager.cpp
127 )
128
129 INCLUDE_DIRECTORIES(${ACE_LIB_DEPS_INCLUDE_DIRS})
130 INCLUDE_DIRECTORIES(${WRT_ACE_DIR}/include)
131
132 IF(NOT DEFINED DBUS_CONNECTION)
133 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/commons/modules/log/include)
134 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/commons/modules/core/include)
135 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/commons/modules/db/include)
136 LINK_DIRECTORIES(
137     ${PROJECT_SOURCE_DIR}/commons/build/core
138     ${PROJECT_SOURCE_DIR}/commons/build/log
139     ${PROJECT_SOURCE_DIR}/commons/build/db
140     )
141 ENDIF()
142
143 SET(WITH_ACE_SETTINGS_SERVER_SOURCES
144    ${WITH_ACE_SETTINGS_SERVER_NONE_SOURCES}
145    )
146
147 ADD_LIBRARY(${TARGET_ACE_LIB} SHARED
148     ${ACE_SOURCES}
149     ${WITH_ACE_SETTINGS_SERVER_SOURCES}
150 )
151
152 SET_TARGET_PROPERTIES(${TARGET_ACE_LIB} PROPERTIES
153     SOVERSION ${API_VERSION}
154     VERSION ${VERSION})
155
156 SET_TARGET_PROPERTIES(${TARGET_ACE_LIB} PROPERTIES
157     COMPILE_FLAGS -fPIC)
158
159 IF(DEFINED DBUS_CONNECTION)
160 TARGET_LINK_LIBRARIES(${TARGET_ACE_LIB}
161     ${TARGET_ACE_DAO_RW_LIB}
162     ${ACE_LIB_DEPS_LIBRARIES}
163     )
164 ELSE()
165 TARGET_LINK_LIBRARIES(${TARGET_ACE_LIB}
166     ${TARGET_ACE_DAO_RW_LIB}
167     ${ACE_LIB_DEPS_LIBRARIES}
168     libwrt-security-commons
169     libwrt-security-commons-log
170     libwrt-security-commons-db
171     )
172 ENDIF()
173
174 INSTALL(TARGETS ${TARGET_ACE_LIB}
175     DESTINATION ${LIB_INSTALL_DIR})
176
177 INSTALL(FILES
178     include/ace/WRT_INTERFACE.h
179     DESTINATION
180     include/ace
181     )
182
183 add_subdirectory(dao)