17d1d283a121aed298efb04cf6f40f3f76a19854
[platform/core/security/security-manager.git] / src / 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 # @file     CMakeLists.txt
17 # @author   Bartlomiej Grzelewski (b.grzelewski@samsung.com)
18 #
19
20 SET(DAEMON_BASIC_DEP
21     dpl-efl
22     dpl-dbus-efl
23     dpl-utils-efl
24     libsoup-2.4
25     dlog
26     openssl
27     libsmack
28   )
29
30 IF(SMACK_ENABLE)
31     LIST(APPEND DAEMON_BASIC_DEP libprivilege-control)
32 ENDIF(SMACK_ENABLE)
33
34 PKG_CHECK_MODULES(DAEMON_DEP
35     ${DAEMON_BASIC_DEP}
36     REQUIRED)
37
38 SET(DAEMON_SOURCES_PATH ${PROJECT_SOURCE_DIR}/src)
39
40 SET(DAEMON_SOURCES
41     #socket connection
42     ${PROJECT_SOURCE_DIR}/socket_connection/connection/SocketConnection.cpp
43     ${PROJECT_SOURCE_DIR}/socket_connection/connection/SocketStream.cpp
44     #caller
45     ${DAEMON_SOURCES_PATH}/services/caller/security_caller.cpp
46     #daemon
47     ${DAEMON_SOURCES_PATH}/daemon/dbus/security_dbus_service.cpp
48     ${DAEMON_SOURCES_PATH}/daemon/sockets/security_socket_service.cpp
49     ${DAEMON_SOURCES_PATH}/daemon/security_daemon.cpp
50     ${DAEMON_SOURCES_PATH}/main.cpp
51     #ocsp
52     ${DAEMON_SOURCES_PATH}/services/ocsp/dbus/ocsp_server_dbus_interface.cpp
53     ${DAEMON_SOURCES_PATH}/services/ocsp/socket/ocsp_service_callbacks.cpp
54     ${DAEMON_SOURCES_PATH}/services/ocsp/ocsp_service.cpp
55     #ace
56     ${DAEMON_SOURCES_PATH}/services/ace/dbus/ace_server_dbus_interface.cpp
57     ${DAEMON_SOURCES_PATH}/services/ace/socket/ace_service_callbacks.cpp
58     ${DAEMON_SOURCES_PATH}/services/ace/ace_service.cpp
59     ${DAEMON_SOURCES_PATH}/services/ace/logic/security_controller.cpp
60     ${DAEMON_SOURCES_PATH}/services/ace/logic/attribute_facade.cpp
61     ${DAEMON_SOURCES_PATH}/services/ace/logic/security_logic.cpp
62     ${DAEMON_SOURCES_PATH}/services/ace/logic/simple_roaming_agent.cpp
63     #popup
64     ${DAEMON_SOURCES_PATH}/services/popup/dbus/popup_response_dbus_interface.cpp
65     ${DAEMON_SOURCES_PATH}/services/popup/socket/popup_service_callbacks.cpp
66   )
67
68 SET_SOURCE_FILES_PROPERTIES(${DAEMON_SOURCES} PROPERTIES COMPILE_FLAGS "-std=c++0x")
69
70 SET(LEGACY_DAEMON_SOURCES
71     #security-server
72     ${DAEMON_SOURCES_PATH}/security-srv/communication/security-server-comm.c
73     ${DAEMON_SOURCES_PATH}/security-srv/server/security-server-cookie.c
74     ${DAEMON_SOURCES_PATH}/security-srv/server/security-server-main.c
75     ${DAEMON_SOURCES_PATH}/security-srv/server/security-server-password.c
76     ${DAEMON_SOURCES_PATH}/security-srv/util/security-server-util-common.c)
77
78 SET_SOURCE_FILES_PROPERTIES(${LEGACY_DAEMON_SOURCES}
79     PROPERTIES COMPILE_FLAGS "-DSECURITY_SERVER_DEBUG_DLOG")
80
81 SET(DAEMON_SOURCES
82     ${DAEMON_SOURCES}
83     #security-server
84     ${LEGACY_DAEMON_SOURCES})
85
86 SET_SOURCE_FILES_PROPERTIES(
87     ${DAEMON_SOURCES_PATH}/security-srv/communication/security-server-comm.c
88     PROPERTIES COMPILE_FLAGS "-D_GNU_SOURCE")
89
90
91 ############################# Lets start compilation process ##################
92 #ace library
93 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ace/include)
94 #socket connection library
95 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/socket_connection/connection)
96 #daemon
97 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src)
98 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/daemon)
99 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/daemon/dbus)
100 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/daemon/sockets/api)
101 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/daemon/sockets)
102 #caller
103 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/caller)
104 #ace
105 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ace)
106 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ace/dbus)
107 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ace/socket)
108 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ace/socket/api)
109 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ace/logic)
110 #ocsp
111 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ocsp)
112 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ocsp/dbus)
113 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ocsp/socket)
114 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ocsp/socket/api)
115 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/ocsp/logic)
116 #popup
117 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/popup)
118 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/popup/dbus)
119 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/popup/socket)
120 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/popup/socket/api)
121 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/services/popup/logic)
122 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/ace/include)
123 INCLUDE_DIRECTORIES(${DAEMON_DEP_INCLUDE_DIRS})
124 #security-server
125 INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/security-srv/include)
126
127
128
129 ADD_EXECUTABLE(${TARGET_DAEMON}
130     ${DAEMON_SOURCES})
131
132 TARGET_LINK_LIBRARIES(${TARGET_DAEMON}
133     ${DAEMON_DEP_LIBRARIES}
134     ${TARGET_ACE_LIB}
135     ${TARGET_ACE_DAO_RW_LIB})
136
137
138
139 ###################################################################################################
140 ## for libsecurity-server-client.so (library)
141 pkg_check_modules(pkgs REQUIRED dlog openssl libsmack)
142
143 SET(VERSION_MAJOR 1)
144 SET(VERSION ${VERSION_MAJOR}.0.1)
145
146 SET(libsecurity-server-client_SOURCES
147     ${DAEMON_SOURCES_PATH}/security-srv/client/security-server-client.c
148     ${DAEMON_SOURCES_PATH}/security-srv/communication/security-server-comm.c)
149 SET(libsecurity-server-client_LDFLAGS " -module -avoid-version")
150 SET(libsecurity-server-client_CFLAGS  " ${CFLAGS} -fPIC -I${sec_svr_include_dir} ${debug_type} -D_GNU_SOURCE ")
151 #SET(libsecurity-server-client_LIBADD "")
152
153 ADD_LIBRARY(security-server-client SHARED ${libsecurity-server-client_SOURCES})
154 TARGET_LINK_LIBRARIES(security-server-client ${pkgs_LDFLAGS})
155 SET_TARGET_PROPERTIES(security-server-client PROPERTIES SOVERSION ${VERSION_MAJOR})
156 SET_TARGET_PROPERTIES(security-server-client PROPERTIES VERSION ${VERSION})
157 SET_TARGET_PROPERTIES(security-server-client PROPERTIES COMPILE_FLAGS "${libsecurity-server-client_CFLAGS}")
158 ###################################################################################################
159
160 INSTALL(TARGETS ${TARGET_DAEMON}
161     DESTINATION bin)
162
163 INSTALL(FILES
164     ${PROJECT_SOURCE_DIR}/src/daemon/dbus/org.tizen.SecurityDaemon.service
165     DESTINATION /usr/share/dbus-1/services
166     )
167
168 INSTALL(FILES
169     ${PROJECT_SOURCE_DIR}/src/services/ace/ace_server_api.h
170     ${PROJECT_SOURCE_DIR}/src/services/ocsp/ocsp_server_api.h
171     ${PROJECT_SOURCE_DIR}/src/services/popup/popup_response_server_api.h
172     ${PROJECT_SOURCE_DIR}/src/services/popup/popup_ace_data_types.h
173     ${PROJECT_SOURCE_DIR}/src/daemon/dbus/security_daemon_dbus_config.h
174     DESTINATION /usr/include/wrt-security
175     )
176
177 INSTALL(FILES
178     ${PROJECT_SOURCE_DIR}/src/security-srv/include/security-server.h
179     DESTINATION /usr/include/security-server
180     )
181
182 INSTALL(FILES
183     ${PROJECT_SOURCE_DIR}/src/security-srv/mw-list
184     DESTINATION /usr/share/security-server/)
185
186 INSTALL(FILES
187     ${PROJECT_SOURCE_DIR}/src/security-srv/security-serverd
188     DESTINATION /etc/rc.d/init.d)
189
190 INSTALL(TARGETS security-server-client DESTINATION lib)