dc40a5eec75fd7d6b137b07248f2144f7b5a212e
[platform/core/security/cert-svc.git] / vcore / src / CMakeLists.txt
1 # compiler warning flags
2 ADD_DEFINITIONS("-Wall")
3 ADD_DEFINITIONS("-Wextra")
4 ADD_DEFINITIONS("-Werror")
5
6 PKG_CHECK_MODULES(VCORE_DEPS
7     REQUIRED
8     libxml-2.0
9     libpcrecpp
10     openssl
11     xmlsec1
12     dlog
13     icu-uc
14     libsoup-2.4
15     db-util
16     libsystemd-journal
17     )
18
19 ADD_DEFINITIONS(${VCORE_DEPS_CFLAGS})
20 ADD_DEFINITIONS(${VCORE_DEPS_CFLAGS_OTHER})
21 ADD_DEFINITIONS("-DSEPARATED_SINGLETON_IMPLEMENTATION")
22
23 SET(VCORE_DIR
24     ${PROJECT_SOURCE_DIR}/vcore
25     )
26
27 SET(VCORE_SRC_DIR
28     ${VCORE_DIR}/src/vcore
29     )
30
31 ########### DPL SOURCES ##########
32 SET(VCORE_DPL_DIR
33     ${VCORE_DIR}/src/dpl
34     )
35 SET(VCORE_DPL_CORE_SRC_DIR
36     ${VCORE_DPL_DIR}/core/src
37     )
38 SET(VCORE_DPL_CORE_SOURCES
39     ${VCORE_DPL_CORE_SRC_DIR}/assert.cpp
40     ${VCORE_DPL_CORE_SRC_DIR}/binary_queue.cpp
41     ${VCORE_DPL_CORE_SRC_DIR}/char_traits.cpp
42     ${VCORE_DPL_CORE_SRC_DIR}/colors.cpp
43     ${VCORE_DPL_CORE_SRC_DIR}/errno_string.cpp
44     ${VCORE_DPL_CORE_SRC_DIR}/exception.cpp
45     ${VCORE_DPL_CORE_SRC_DIR}/file_input.cpp
46     ${VCORE_DPL_CORE_SRC_DIR}/noncopyable.cpp
47     ${VCORE_DPL_CORE_SRC_DIR}/singleton.cpp
48     ${VCORE_DPL_CORE_SRC_DIR}/string.cpp
49     ${VCORE_DPL_CORE_SRC_DIR}/type_list.cpp
50     ${VCORE_DPL_CORE_SRC_DIR}/thread.cpp
51     ${VCORE_DPL_CORE_SRC_DIR}/waitable_event.cpp
52     ${VCORE_DPL_CORE_SRC_DIR}/waitable_handle.cpp
53     ${VCORE_DPL_CORE_SRC_DIR}/waitable_handle_watch_support.cpp
54     )
55
56 SET(VCORE_DPL_DB_SRC_DIR
57     ${VCORE_DPL_DIR}/db/src
58     )
59 SET(VCORE_DPL_DB_SOURCES
60     ${VCORE_DPL_DB_SRC_DIR}/naive_synchronization_object.cpp
61     ${VCORE_DPL_DB_SRC_DIR}/orm.cpp
62     ${VCORE_DPL_DB_SRC_DIR}/sql_connection.cpp
63     ${VCORE_DPL_DB_SRC_DIR}/thread_database_support.cpp
64     )
65
66 SET(VCORE_DPL_LOG_SRC_DIR
67     ${VCORE_DPL_DIR}/log/src
68     )
69 SET(VCORE_DPL_LOG_SOURCES
70     ${VCORE_DPL_LOG_SRC_DIR}/abstract_log_provider.cpp
71     ${VCORE_DPL_LOG_SRC_DIR}/old_style_log_provider.cpp
72     ${VCORE_DPL_LOG_SRC_DIR}/dlog_log_provider.cpp
73     ${VCORE_DPL_LOG_SRC_DIR}/journal_log_provider.cpp
74     ${VCORE_DPL_LOG_SRC_DIR}/log.cpp
75     )
76 ########### DPL SOURCES ##########
77
78
79 ########### VCORE SOURCES ########
80 SET(VCORE_SOURCES
81     ${VCORE_SRC_DIR}/api.cpp
82     ${VCORE_SRC_DIR}/Base64.cpp
83     ${VCORE_SRC_DIR}/Certificate.cpp
84     ${VCORE_SRC_DIR}/CertificateCollection.cpp
85     ${VCORE_SRC_DIR}/CertificateConfigReader.cpp
86     ${VCORE_SRC_DIR}/CertificateLoader.cpp
87     ${VCORE_SRC_DIR}/CertStoreType.cpp
88     ${VCORE_SRC_DIR}/CryptoHash.cpp
89     ${VCORE_SRC_DIR}/OCSPCertMgrUtil.cpp
90     ${VCORE_SRC_DIR}/ReferenceValidator.cpp
91     ${VCORE_SRC_DIR}/RevocationCheckerBase.cpp
92     ${VCORE_SRC_DIR}/SaxReader.cpp
93     ${VCORE_SRC_DIR}/SignatureData.cpp
94     ${VCORE_SRC_DIR}/SignatureFinder.cpp
95     ${VCORE_SRC_DIR}/SignatureReader.cpp
96     ${VCORE_SRC_DIR}/TimeConversion.cpp
97     ${VCORE_SRC_DIR}/VerificationStatus.cpp
98     ${VCORE_SRC_DIR}/ValidatorFactories.cpp
99     ${VCORE_SRC_DIR}/WrtSignatureValidator.cpp
100     ${VCORE_SRC_DIR}/SignatureValidator.cpp
101     ${VCORE_SRC_DIR}/XmlsecAdapter.cpp
102     ${VCORE_SRC_DIR}/pkcs12.cpp
103     ${VCORE_SRC_DIR}/exception.cpp
104
105     ${VCORE_SRC_DIR}/utils.c
106     ${VCORE_SRC_DIR}/cert-svc-client.c
107     )
108
109 SET(VCORE_INCLUDES
110     ${VCORE_DEPS_INCLUDE_DIRS}
111     ${VCORE_SRC_DIR}
112     ${VCORE_DIR}/src
113     ${VCORE_DIR}/src/legacy
114     )
115
116 ########### VCORE SOURCES ########
117
118 SET(VCORE_ALL_SOURCES
119     ${VCORE_SOURCES}
120     ${VCORE_DPL_CORE_SOURCES}
121     ${VCORE_DPL_LOG_SOURCES}
122     )
123 SET(VCORE_ALL_INCLUDES
124     ${PROJECT_SOURCE_DIR}/include
125     ${VCORE_INCLUDES}
126     ${VCORE_DPL_DIR}/core/include
127     ${VCORE_DPL_DIR}/log/include
128     )
129
130 INCLUDE_DIRECTORIES(SYSTEM ${VCORE_ALL_INCLUDES})
131
132 ADD_LIBRARY(${TARGET_VCORE_LIB} SHARED ${VCORE_ALL_SOURCES})
133
134 # TODO: visibility needed to be hidden
135 SET_TARGET_PROPERTIES(${TARGET_VCORE_LIB}
136     PROPERTIES
137         COMPILE_FLAGS "-D_GNU_SOURCE -fPIC -fvisibility=default"
138         SOVERSION ${SO_VERSION}
139         VERSION ${VERSION})
140
141 TARGET_LINK_LIBRARIES(${TARGET_VCORE_LIB}
142     ${VCORE_DEPS_LIBRARIES}
143     ${TARGET_CERT_SVC_LIB}
144     )
145
146 ########## cert-server #############
147 PKG_CHECK_MODULES(CERT_SERVER_DEP
148     REQUIRED
149     dlog
150     sqlite3
151     db-util
152     libsystemd-daemon
153     key-manager
154     )
155
156 SET(CERT_SERVER_DIR
157     ${PROJECT_SOURCE_DIR}/vcore/src/server
158     )
159
160 SET(CERT_SERVER_SRCS
161     ${CERT_SERVER_DIR}/src/cert-server-main.c
162     ${CERT_SERVER_DIR}/src/cert-server-logic.c
163     )
164
165 INCLUDE_DIRECTORIES(
166     SYSTEM
167     ${CERT_SERVER_DEP_INCLUDE_DIRS}
168     ${PROJECT_SOURCE_DIR}/include
169     ${VCORE_DIR}/src
170     ${CERT_SERVER_DIR}/include
171     )
172
173 SET_SOURCE_FILES_PROPERTIES(
174     ${CERT_SERVER_SRCS}
175     PROPERTIES
176         COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=hidden -fPIE"
177     )
178
179 ADD_EXECUTABLE(${TARGET_CERT_SERVER} ${CERT_SERVER_SRCS})
180
181 TARGET_LINK_LIBRARIES(${TARGET_CERT_SERVER}
182     ${CERT_SERVER_DEP_LIBRARIES}
183     -pie
184     )
185
186 INSTALL(TARGETS ${TARGET_CERT_SERVER} DESTINATION ${BINDIR})
187
188 ########################################################
189 INSTALL(TARGETS ${TARGET_VCORE_LIB}
190     DESTINATION ${LIBDIR}
191     )
192
193 INSTALL(FILES
194     ${VCORE_SRC_DIR}/WrtSignatureValidator.h
195     ${VCORE_SRC_DIR}/SignatureValidator.h
196     ${VCORE_SRC_DIR}/SignatureFinder.h
197     ${VCORE_SRC_DIR}/SignatureReader.h
198     ${VCORE_SRC_DIR}/CertificateCollection.h
199     ${VCORE_SRC_DIR}/CryptoHash.h
200     ${VCORE_SRC_DIR}/Base64.h
201
202     ${VCORE_SRC_DIR}/ParserSchema.h
203     ${VCORE_SRC_DIR}/SaxReader.h
204
205     ${VCORE_SRC_DIR}/Certificate.h
206     ${VCORE_SRC_DIR}/SignatureData.h
207     ${VCORE_SRC_DIR}/CertStoreType.h
208     ${VCORE_SRC_DIR}/exception.h
209     DESTINATION ${INCLUDEDIR}/cert-svc/vcore
210     )
211
212 INSTALL(FILES
213     ${VCORE_DIR}/src/cert-svc/ccert.h
214     ${VCORE_DIR}/src/cert-svc/cinstance.h
215     ${VCORE_DIR}/src/cert-svc/cerror.h
216     ${VCORE_DIR}/src/cert-svc/cpkcs12.h
217     ${VCORE_DIR}/src/cert-svc/cprimitives.h
218     ${VCORE_DIR}/src/cert-svc/cstring.h
219     DESTINATION ${INCLUDEDIR}/cert-svc/cert-svc
220     )