Tizen 2.0 Release
[profile/ivi/security-server.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 #DB vcore
18 PKG_CHECK_MODULES(ACE_DB_DEP
19     dpl-efl
20     REQUIRED)
21
22 #DB ace
23 ADD_CUSTOM_COMMAND(
24     OUTPUT ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h
25     COMMAND ${CMAKE_SOURCE_DIR}/ace/orm/gen_db_md5.sh
26     ARGS ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h
27          ${CMAKE_SOURCE_DIR}/ace/orm/ace_db
28     DEPENDS ${CMAKE_SOURCE_DIR}/ace/orm/ace_db
29             ${CMAKE_SOURCE_DIR}/ace/orm/gen_db_md5.sh
30     COMMENT "Generating ACE database checksum"
31     )
32
33 STRING(REPLACE ";" ":" DEPENDENCIES "${ACE_DB_DEP_INCLUDE_DIRS}")
34
35 ADD_CUSTOM_COMMAND( OUTPUT .ace.db
36   COMMAND rm -f ${CMAKE_CURRENT_BINARY_DIR}/.ace.db
37   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
38   COMMAND sqlite3 ${CMAKE_CURRENT_BINARY_DIR}/.ace.db ".read ${CMAKE_CURRENT_BINARY_DIR}/ace_db.sql" || rm -f ${CMAKE_CURRENT_BINARY_DIR}/.ace.db
39   DEPENDS ${CMAKE_BINARY_DIR}/ace/database_checksum_ace.h ${PROJECT_SOURCE_DIR}/ace/orm/ace_db_sql_generator.h ${PROJECT_SOURCE_DIR}/ace/orm/ace_db
40   )
41
42 ADD_CUSTOM_COMMAND( OUTPUT .ace.db-journal
43   COMMAND touch
44   ARGS  ${CMAKE_CURRENT_BINARY_DIR}/.ace.db-journal
45   )
46
47 ADD_CUSTOM_TARGET(Sqlite3DbACE ALL DEPENDS .ace.db .ace.db-journal)
48
49 INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/ace_db.sql
50     DESTINATION share/wrt-engine/
51     )
52
53 ###########################################################
54
55 INCLUDE(FindPkgConfig)
56
57 SET(ACE_TEST_PATH "/usr/apps/org.tizen.policy")
58
59 INSTALL(FILES
60     ${CMAKE_CURRENT_SOURCE_DIR}/configuration/bondixml.xsd
61     ${CMAKE_CURRENT_SOURCE_DIR}/configuration/UnrestrictedPolicy.xml
62     ${CMAKE_CURRENT_SOURCE_DIR}/configuration/WAC2.0Policy.xml
63     ${CMAKE_CURRENT_SOURCE_DIR}/configuration/TizenPolicy.xml
64     DESTINATION /usr/etc/ace
65     PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE)
66
67 SET(ACE_LIB_DEPS_BASIC
68     dpl-efl
69     dpl-db-efl
70     dpl-event-efl
71     ecore
72     appcore-efl
73     openssl
74     sqlite3
75     dlog
76     vconf
77     db-util
78     libpcrecpp
79     icu-uc
80     libxml-2.0
81     )
82
83 IF(SMACK_ENABLED)
84     LIST(APPEND ACE_LIB_DEPS_BASIC libprivilege-control)
85 ENDIF(SMACK_ENABLED)
86
87 PKG_CHECK_MODULES(ACE_LIB_DEPS ${ACE_LIB_DEPS_BASIC} REQUIRED)
88
89 SET(WRT_ACE_DIR ${PROJECT_SOURCE_DIR}/ace)
90
91 SET(ACE_SOURCES
92   ${WRT_ACE_DIR}/engine/PolicyEvaluator.cpp
93   ${WRT_ACE_DIR}/engine/PolicyInformationPoint.cpp
94   ${WRT_ACE_DIR}/engine/CombinerImpl.cpp
95   ${WRT_ACE_DIR}/engine/parser.cpp
96   ${WRT_ACE_DIR}/engine/PolicyEnforcementPoint.cpp
97   ${WRT_ACE_DIR}/engine/SettingsLogic.cpp
98   ${WRT_ACE_DIR}/engine/Attribute.cpp
99   ${WRT_ACE_DIR}/engine/Condition.cpp
100   ${WRT_ACE_DIR}/engine/Policy.cpp
101   ${WRT_ACE_DIR}/engine/Rule.cpp
102   ${WRT_ACE_DIR}/engine/Subject.cpp
103   ${WRT_ACE_DIR}/engine/TreeNode.cpp
104   ${WRT_ACE_DIR}/engine/ConfigurationManager.cpp
105 )
106
107 INCLUDE_DIRECTORIES(${ACE_LIB_DEPS_INCLUDE_DIRS})
108 INCLUDE_DIRECTORIES(${WRT_ACE_DIR}/include)
109
110 SET(WITH_ACE_SETTINGS_SERVER_SOURCES
111    ${WITH_ACE_SETTINGS_SERVER_NONE_SOURCES}
112    )
113
114 ADD_LIBRARY(${TARGET_ACE_LIB} SHARED
115     ${ACE_SOURCES}
116     ${WITH_ACE_SETTINGS_SERVER_SOURCES}
117 )
118
119 SET_TARGET_PROPERTIES(${TARGET_ACE_LIB} PROPERTIES
120     SOVERSION ${API_VERSION}
121     VERSION ${VERSION})
122
123 SET_TARGET_PROPERTIES(${TARGET_ACE_LIB} PROPERTIES
124     COMPILE_FLAGS -fPIC)
125
126 TARGET_LINK_LIBRARIES(${TARGET_ACE_LIB}
127     ${TARGET_ACE_DAO_RW_LIB}
128     ${ACE_LIB_DEPS_LIBRARIES}
129 )
130
131 INSTALL(TARGETS ${TARGET_ACE_LIB}
132     DESTINATION lib)
133
134 INSTALL(FILES
135     include/ace/WRT_INTERFACE.h
136     DESTINATION
137     include/ace
138     )
139
140 add_subdirectory(dao)