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