Add cynara mockup.
[platform/core/security/key-manager.git] / src / CMakeLists.txt
1 PKG_CHECK_MODULES(KEY_MANAGER_DEP
2     REQUIRED
3     dlog
4     openssl
5     libsmack
6     libcrypto
7     libsystemd-daemon
8     capi-base-common
9     capi-system-info
10     vconf
11     libxml-2.0
12     security-manager
13     cynara-client-async
14     cynara-creds-socket
15     )
16 FIND_PACKAGE(Threads REQUIRED)
17
18 SET(KEY_MANAGER_SRC_PATH ${PROJECT_SOURCE_DIR}/src)
19 SET(KEY_MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
20
21 IF (MOCKUP_SM MATCHES "ON")
22     IF (CMAKE_BUILD_TYPE MATCHES "RELEASE")
23         MESSAGE(FATAL_ERROR "You cannot compile release version with SECURITY MOCKUPS!")
24     ENDIF (CMAKE_BUILD_TYPE MATCHES "RELEASE")
25     MESSAGE("USING MOCKUPS INSTEAD SECURITY MODULES (SECURITY MANAGER AND CYNARA)")
26     SET(SECURITY_MANAGER_WRAPPER_PATH ${KEY_MANAGER_PATH}/main/socket-2-id-mockup.cpp)
27     SET(CYNARA_WRAPPER_PATH ${KEY_MANAGER_PATH}/main/cynara-mockup.cpp)
28 ELSE (MOCKUP_SM MATCHES "ON")
29     SET(SECURITY_MANAGER_WRAPPER_PATH ${KEY_MANAGER_PATH}/main/socket-2-id-wrapper.cpp)
30     SET(CYNARA_WRAPPER_PATH ${KEY_MANAGER_PATH}/main/cynara.cpp)
31 ENDIF (MOCKUP_SM MATCHES "ON")
32
33 SET(KEY_MANAGER_SOURCES
34     ${KEY_MANAGER_PATH}/main/generic-socket-manager.cpp
35     ${KEY_MANAGER_PATH}/main/socket-manager.cpp
36     ${KEY_MANAGER_PATH}/main/key-manager-main.cpp
37     ${KEY_MANAGER_PATH}/main/smack-check.cpp
38     ${KEY_MANAGER_PATH}/main/thread-service.cpp
39     ${KEY_MANAGER_PATH}/main/socket-2-id.cpp
40     ${KEY_MANAGER_PATH}/service/certificate-store.cpp
41     ${KEY_MANAGER_PATH}/service/certificate-config.cpp
42     ${KEY_MANAGER_PATH}/service/digest.cpp
43     ${KEY_MANAGER_PATH}/service/file-lock.cpp
44     ${KEY_MANAGER_PATH}/service/access-control.cpp
45     ${KEY_MANAGER_PATH}/service/ckm-service.cpp
46     ${KEY_MANAGER_PATH}/service/ckm-logic.cpp
47     ${KEY_MANAGER_PATH}/service/key-provider.cpp
48     ${KEY_MANAGER_PATH}/service/ocsp.cpp
49     ${KEY_MANAGER_PATH}/service/crypto-logic.cpp
50     ${KEY_MANAGER_PATH}/service/file-system.cpp
51     ${KEY_MANAGER_PATH}/service/db-crypto.cpp
52     ${KEY_MANAGER_PATH}/service/ocsp-service.cpp
53     ${KEY_MANAGER_PATH}/service/ocsp-logic.cpp
54     ${KEY_MANAGER_PATH}/service/encryption-service.cpp
55     ${KEY_MANAGER_PATH}/service/encryption-logic.cpp
56     ${KEY_MANAGER_PATH}/initial-values/parser.cpp
57     ${KEY_MANAGER_PATH}/initial-values/BufferHandler.cpp
58     ${KEY_MANAGER_PATH}/initial-values/CertHandler.cpp
59     ${KEY_MANAGER_PATH}/initial-values/DataHandler.cpp
60     ${KEY_MANAGER_PATH}/initial-values/KeyHandler.cpp
61     ${KEY_MANAGER_PATH}/initial-values/PermissionHandler.cpp
62     ${KEY_MANAGER_PATH}/initial-values/InitialValueHandler.cpp
63     ${KEY_MANAGER_PATH}/initial-values/InitialValuesFile.cpp
64     ${KEY_MANAGER_PATH}/initial-values/xml-utils.cpp
65     ${KEY_MANAGER_PATH}/dpl/core/src/assert.cpp
66     ${KEY_MANAGER_PATH}/dpl/db/src/sql_connection.cpp
67     ${KEY_MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
68     ${KEY_MANAGER_PATH}/sqlcipher/sqlcipher.c
69     ${KEY_MANAGER_PATH}/crypto/sw-backend/key.cpp
70     ${KEY_MANAGER_PATH}/crypto/sw-backend/internals.cpp
71     ${KEY_MANAGER_PATH}/crypto/sw-backend/store.cpp
72     ${KEY_MANAGER_PATH}/crypto/platform/decider.cpp
73     ${KEY_MANAGER_PATH}/crypto/tz-backend/key.cpp
74     ${KEY_MANAGER_PATH}/crypto/tz-backend/store.cpp
75     ${SECURITY_MANAGER_WRAPPER_PATH}
76     ${CYNARA_WRAPPER_PATH}
77     )
78
79 # -fPIE and -pie flag is added for ASLR
80 SET_SOURCE_FILES_PROPERTIES(
81     ${KEY_MANAGER_SOURCES}
82     PROPERTIES
83         COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=hidden -fPIE")
84
85 INCLUDE_DIRECTORIES(SYSTEM
86     ${KEY_MANAGER_DEP_INCLUDE_DIRS}
87     )
88
89 INCLUDE_DIRECTORIES(
90     ${KEY_MANAGER_SRC_PATH}/include
91     ${KEY_MANAGER_PATH}/main
92     ${KEY_MANAGER_PATH}/common
93     ${KEY_MANAGER_PATH}/service
94     ${KEY_MANAGER_PATH}/initial-values
95     ${KEY_MANAGER_PATH}/sqlcipher
96     ${KEY_MANAGER_PATH}/dpl/core/include
97     ${KEY_MANAGER_PATH}/dpl/log/include
98     ${KEY_MANAGER_PATH}/dpl/db/include
99     ${KEY_MANAGER_PATH}/crypto
100     )
101
102 ADD_EXECUTABLE(${TARGET_KEY_MANAGER} ${KEY_MANAGER_SOURCES})
103
104 # pie flag is added for ASLR
105 TARGET_LINK_LIBRARIES(${TARGET_KEY_MANAGER}
106     ${CMAKE_THREAD_LIBS_INIT}
107     ${KEY_MANAGER_DEP_LIBRARIES}
108     ${TARGET_KEY_MANAGER_COMMON}
109     -ldl -pie
110     )
111
112 ################################################################################
113
114 SET(KEY_MANAGER_CLIENT_VERSION_MAJOR 1)
115 SET(KEY_MANAGER_CLIENT_VERSION ${KEY_MANAGER_CLIENT_VERSION_MAJOR}.0.1)
116
117 SET(KEY_MANAGER_CLIENT_SRC_PATH ${KEY_MANAGER_PATH}/client)
118 SET(KEY_MANAGER_CLIENT_ASYNC_SRC_PATH ${KEY_MANAGER_PATH}/client-async)
119 SET(KEY_MANAGER_CLIENT_CAPI_SRC_PATH ${KEY_MANAGER_PATH}/client-capi)
120
121 INCLUDE_DIRECTORIES(
122     ${KEY_MANAGER_PATH}/client
123     ${KEY_MANAGER_PATH}/client-async
124     ${KEY_MANAGER_PATH}/client-capi
125     ${KEY_MANAGER_PATH}/common
126     ${KEY_MANAGER_PATH}/dpl/core/include
127     ${KEY_MANAGER_PATH}/dpl/log/include
128     )
129
130 SET(KEY_MANAGER_CLIENT_SOURCES
131     ${KEY_MANAGER_CLIENT_SRC_PATH}/client-common.cpp
132     ${KEY_MANAGER_CLIENT_SRC_PATH}/client-error.cpp
133     ${KEY_MANAGER_CLIENT_SRC_PATH}/client-manager-impl.cpp
134     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/client-manager-async.cpp
135     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/client-manager-async-impl.cpp
136     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/connection-thread.cpp
137     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/async-request.cpp
138     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/service.cpp
139     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/storage-receiver.cpp
140     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/ocsp-receiver.cpp
141     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/encryption-receiver.cpp
142     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/descriptor-set.cpp
143     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-type.cpp
144     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-error.cpp
145     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-manager.cpp
146     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-type-converter.cpp
147     )
148
149 ADD_LIBRARY(${TARGET_KEY_MANAGER_CLIENT} SHARED ${KEY_MANAGER_CLIENT_SOURCES})
150
151 SET_TARGET_PROPERTIES(
152     ${TARGET_KEY_MANAGER_CLIENT}
153     PROPERTIES
154         COMPILE_FLAGS "-D_GNU_SOURCE -fPIC -fvisibility=hidden"
155         SOVERSION ${KEY_MANAGER_CLIENT_VERSION_MAJOR}
156         VERSION ${KEY_MANAGER_CLIENT_VERSION}
157     )
158
159 TARGET_LINK_LIBRARIES(${TARGET_KEY_MANAGER_CLIENT}
160     ${KEY_MANAGER_DEP_LIBRARIES}
161     ${TARGET_KEY_MANAGER_COMMON}
162     )
163
164 ################################################################################
165
166 SET(KEY_MANAGER_CONTROL_CLIENT_VERSION_MAJOR 1)
167 SET(KEY_MANAGER_CONTROL_CLIENT_VERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION_MAJOR}.0.1)
168
169 SET(KEY_MANAGER_CONTROL_CLIENT_SRC_PATH ${KEY_MANAGER_PATH}/client)
170 SET(KEY_MANAGER_CONTROL_CLIENT_CAPI_SRC_PATH ${KEY_MANAGER_PATH}/client-capi)
171
172 INCLUDE_DIRECTORIES(
173     ${KEY_MANAGER_PATH}/client
174     ${KEY_MANAGER_PATH}/client-capi
175     ${KEY_MANAGER_PATH}/common
176     ${KEY_MANAGER_PATH}/dpl/core/include
177     ${KEY_MANAGER_PATH}/dpl/log/include
178     )
179
180 SET(KEY_MANAGER_CONTROL_CLIENT_SOURCES
181     ${KEY_MANAGER_CONTROL_CLIENT_SRC_PATH}/client-control.cpp
182     ${KEY_MANAGER_CONTROL_CLIENT_SRC_PATH}/client-common.cpp
183     ${KEY_MANAGER_CONTROL_CLIENT_CAPI_SRC_PATH}/ckmc-control.cpp
184     ${KEY_MANAGER_CONTROL_CLIENT_CAPI_SRC_PATH}/ckmc-type-converter.cpp
185     )
186
187 ADD_LIBRARY(${TARGET_KEY_MANAGER_CONTROL_CLIENT} SHARED ${KEY_MANAGER_CONTROL_CLIENT_SOURCES})
188
189 SET_TARGET_PROPERTIES(
190     ${TARGET_KEY_MANAGER_CONTROL_CLIENT}
191     PROPERTIES
192         COMPILE_FLAGS "-D_GNU_SOURCE -fPIC -fvisibility=hidden"
193         SOVERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION_MAJOR}
194         VERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION}
195     )
196
197 TARGET_LINK_LIBRARIES(${TARGET_KEY_MANAGER_CONTROL_CLIENT}
198     ${KEY_MANAGER_DEP_LIBRARIES}
199     ${TARGET_KEY_MANAGER_COMMON}
200     )
201
202 ################################################################################
203 INSTALL(TARGETS ${TARGET_KEY_MANAGER_CLIENT} DESTINATION ${LIB_INSTALL_DIR})
204 INSTALL(TARGETS ${TARGET_KEY_MANAGER_CONTROL_CLIENT} DESTINATION ${LIB_INSTALL_DIR})
205
206 INSTALL(TARGETS ${TARGET_KEY_MANAGER} DESTINATION bin)
207
208
209 INSTALL(FILES
210     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-manager.h
211     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-manager-async.h
212     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-certificate.h
213     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-control.h
214     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-error.h
215     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-key.h
216     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-password.h
217     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-pkcs12.h
218     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-raw-buffer.h
219     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-type.h
220     DESTINATION /usr/include/ckm/ckm
221     )
222 INSTALL(FILES
223     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-manager.h
224     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-control.h
225     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-error.h
226     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-type.h
227     DESTINATION /usr/include/ckm/ckmc
228     )
229 ################################################################################
230
231 ADD_SUBDIRECTORY(manager)
232 ADD_SUBDIRECTORY(listener)
233 ADD_SUBDIRECTORY(pam_plugin)