Libraries reorganized to limit the number of exported symbols
[platform/core/security/key-manager.git] / src / CMakeLists.txt
1 PKG_CHECK_MODULES(KEY_MANAGER_DEP
2     dlog
3     openssl
4     libsmack
5     libcrypto
6     libsystemd-daemon
7     capi-base-common
8     vconf
9     REQUIRED
10     )
11 FIND_PACKAGE(Threads REQUIRED)
12
13 SET(KEY_MANAGER_SRC_PATH ${PROJECT_SOURCE_DIR}/src)
14 SET(KEY_MANAGER_PATH ${PROJECT_SOURCE_DIR}/src/manager)
15
16 SET(KEY_MANAGER_SOURCES
17     ${KEY_MANAGER_PATH}/main/generic-socket-manager.cpp
18     ${KEY_MANAGER_PATH}/main/socket-manager.cpp
19     ${KEY_MANAGER_PATH}/main/key-manager-main.cpp
20     ${KEY_MANAGER_PATH}/main/smack-check.cpp
21     ${KEY_MANAGER_PATH}/service/certificate-store.cpp
22     ${KEY_MANAGER_PATH}/service/certificate-config.cpp
23     ${KEY_MANAGER_PATH}/service/digest.cpp
24     ${KEY_MANAGER_PATH}/service/file-lock.cpp
25     ${KEY_MANAGER_PATH}/service/access-control.cpp
26     ${KEY_MANAGER_PATH}/service/ckm-service.cpp
27     ${KEY_MANAGER_PATH}/service/ckm-logic.cpp
28     ${KEY_MANAGER_PATH}/service/key-provider.cpp
29     ${KEY_MANAGER_PATH}/service/ocsp.cpp
30     ${KEY_MANAGER_PATH}/service/crypto-logic.cpp
31     ${KEY_MANAGER_PATH}/service/CryptoService.cpp
32     ${KEY_MANAGER_PATH}/service/file-system.cpp
33     ${KEY_MANAGER_PATH}/service/db-crypto.cpp
34     ${KEY_MANAGER_PATH}/service/ocsp-service.cpp
35     ${KEY_MANAGER_PATH}/service/ocsp-logic.cpp
36     ${KEY_MANAGER_PATH}/dpl/core/src/assert.cpp
37     ${KEY_MANAGER_PATH}/dpl/db/src/sql_connection.cpp
38     ${KEY_MANAGER_PATH}/dpl/db/src/naive_synchronization_object.cpp
39     ${KEY_MANAGER_PATH}/sqlcipher/sqlcipher.c
40     )
41
42 # -fPIE and -pie flag is added for ASLR
43 SET_SOURCE_FILES_PROPERTIES(
44     ${KEY_MANAGER_SOURCES}
45     PROPERTIES
46         COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=hidden -fPIE")
47
48 INCLUDE_DIRECTORIES(SYSTEM
49     ${KEY_MANAGER_DEP_INCLUDE_DIRS}
50     )
51
52 INCLUDE_DIRECTORIES(
53     ${KEY_MANAGER_SRC_PATH}/include
54     ${KEY_MANAGER_PATH}/main
55     ${KEY_MANAGER_PATH}/common
56     ${KEY_MANAGER_PATH}/service
57     ${KEY_MANAGER_PATH}/sqlcipher
58     ${KEY_MANAGER_PATH}/dpl/core/include
59     ${KEY_MANAGER_PATH}/dpl/log/include
60     ${KEY_MANAGER_PATH}/dpl/db/include
61     )
62
63 ADD_EXECUTABLE(${TARGET_KEY_MANAGER} ${KEY_MANAGER_SOURCES})
64
65 # pie flag is added for ASLR
66 TARGET_LINK_LIBRARIES(${TARGET_KEY_MANAGER}
67     ${CMAKE_THREAD_LIBS_INIT}
68     ${KEY_MANAGER_DEP_LIBRARIES}
69     ${TARGET_KEY_MANAGER_COMMON}
70     -pie
71     )
72
73 ################################################################################
74
75 SET(KEY_MANAGER_CLIENT_VERSION_MAJOR 1)
76 SET(KEY_MANAGER_CLIENT_VERSION ${KEY_MANAGER_CLIENT_VERSION_MAJOR}.0.1)
77
78 SET(KEY_MANAGER_CLIENT_SRC_PATH ${KEY_MANAGER_PATH}/client)
79 SET(KEY_MANAGER_CLIENT_ASYNC_SRC_PATH ${KEY_MANAGER_PATH}/client-async)
80 SET(KEY_MANAGER_CLIENT_CAPI_SRC_PATH ${KEY_MANAGER_PATH}/client-capi)
81
82 INCLUDE_DIRECTORIES(
83     ${KEY_MANAGER_PATH}/client
84     ${KEY_MANAGER_PATH}/client-async
85     ${KEY_MANAGER_PATH}/client-capi
86     ${KEY_MANAGER_PATH}/common
87     ${KEY_MANAGER_PATH}/dpl/core/include
88     ${KEY_MANAGER_PATH}/dpl/log/include
89     )
90
91 SET(KEY_MANAGER_CLIENT_SOURCES
92     ${KEY_MANAGER_CLIENT_SRC_PATH}/client-common.cpp
93     ${KEY_MANAGER_CLIENT_SRC_PATH}/client-error.cpp
94     ${KEY_MANAGER_CLIENT_SRC_PATH}/client-manager-impl.cpp
95     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/client-manager-async.cpp
96     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/client-manager-async-impl.cpp
97     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/connection-thread.cpp
98     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/async-request.cpp
99     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/service.cpp
100     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/storage-receiver.cpp
101     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/ocsp-receiver.cpp
102     ${KEY_MANAGER_CLIENT_ASYNC_SRC_PATH}/descriptor-set.cpp
103     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-type.cpp
104     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-error.cpp
105     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-manager.cpp
106     ${KEY_MANAGER_CLIENT_CAPI_SRC_PATH}/ckmc-type-converter.cpp
107     )
108
109 ADD_LIBRARY(${TARGET_KEY_MANAGER_CLIENT} SHARED ${KEY_MANAGER_CLIENT_SOURCES})
110
111 SET_TARGET_PROPERTIES(
112     ${TARGET_KEY_MANAGER_CLIENT}
113     PROPERTIES
114         COMPILE_FLAGS "-D_GNU_SOURCE -fPIC -fvisibility=hidden"
115         SOVERSION ${KEY_MANAGER_CLIENT_VERSION_MAJOR}
116         VERSION ${KEY_MANAGER_CLIENT_VERSION}
117     )
118
119 TARGET_LINK_LIBRARIES(${TARGET_KEY_MANAGER_CLIENT}
120     ${KEY_MANAGER_DEP_LIBRARIES}
121     ${TARGET_KEY_MANAGER_COMMON}
122     )
123
124 ################################################################################
125
126 SET(KEY_MANAGER_CONTROL_CLIENT_VERSION_MAJOR 1)
127 SET(KEY_MANAGER_CONTROL_CLIENT_VERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION_MAJOR}.0.1)
128
129 SET(KEY_MANAGER_CONTROL_CLIENT_SRC_PATH ${KEY_MANAGER_PATH}/client)
130 SET(KEY_MANAGER_CONTROL_CLIENT_CAPI_SRC_PATH ${KEY_MANAGER_PATH}/client-capi)
131
132 INCLUDE_DIRECTORIES(
133     ${KEY_MANAGER_PATH}/client
134     ${KEY_MANAGER_PATH}/client-capi
135     ${KEY_MANAGER_PATH}/common
136     ${KEY_MANAGER_PATH}/dpl/core/include
137     ${KEY_MANAGER_PATH}/dpl/log/include
138     )
139
140 SET(KEY_MANAGER_CONTROL_CLIENT_SOURCES
141     ${KEY_MANAGER_CONTROL_CLIENT_SRC_PATH}/client-control.cpp
142     ${KEY_MANAGER_CONTROL_CLIENT_SRC_PATH}/client-common.cpp
143     ${KEY_MANAGER_CONTROL_CLIENT_CAPI_SRC_PATH}/ckmc-control.cpp
144     ${KEY_MANAGER_CONTROL_CLIENT_CAPI_SRC_PATH}/ckmc-type-converter.cpp
145     )
146
147 ADD_LIBRARY(${TARGET_KEY_MANAGER_CONTROL_CLIENT} SHARED ${KEY_MANAGER_CONTROL_CLIENT_SOURCES})
148
149 SET_TARGET_PROPERTIES(
150     ${TARGET_KEY_MANAGER_CONTROL_CLIENT}
151     PROPERTIES
152         COMPILE_FLAGS "-D_GNU_SOURCE -fPIC -fvisibility=hidden"
153         SOVERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION_MAJOR}
154         VERSION ${KEY_MANAGER_CONTROL_CLIENT_VERSION}
155     )
156
157 TARGET_LINK_LIBRARIES(${TARGET_KEY_MANAGER_CONTROL_CLIENT}
158     ${KEY_MANAGER_DEP_LIBRARIES}
159     ${TARGET_KEY_MANAGER_COMMON}
160     )
161
162 ################################################################################
163 INSTALL(TARGETS ${TARGET_KEY_MANAGER_CLIENT} DESTINATION ${LIB_INSTALL_DIR})
164 INSTALL(TARGETS ${TARGET_KEY_MANAGER_CONTROL_CLIENT} DESTINATION ${LIB_INSTALL_DIR})
165
166 INSTALL(TARGETS ${TARGET_KEY_MANAGER} DESTINATION bin)
167
168
169 INSTALL(FILES
170     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-manager.h
171     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-manager-async.h
172     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-certificate.h
173     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-control.h
174     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-error.h
175     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-key.h
176     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-password.h
177     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-pkcs12.h
178     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-raw-buffer.h
179     ${KEY_MANAGER_SRC_PATH}/include/ckm/ckm-type.h
180     DESTINATION /usr/include/ckm/ckm
181     )
182 INSTALL(FILES
183     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-manager.h
184     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-control.h
185     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-error.h
186     ${KEY_MANAGER_SRC_PATH}/include/ckmc/ckmc-type.h
187     DESTINATION /usr/include/ckm/ckmc
188     )
189 ################################################################################
190
191 ADD_SUBDIRECTORY(manager)
192 ADD_SUBDIRECTORY(listener)