Refactoring cert-server
[platform/core/security/cert-svc.git] / vcore / CMakeLists.txt
1 PKG_CHECK_MODULES(VCORE_DEPS
2     REQUIRED
3     libxml-2.0
4     libpcrecpp
5     openssl
6     xmlsec1
7     dlog
8     libsystemd-journal
9     )
10
11 ADD_DEFINITIONS(${VCORE_DEPS_CFLAGS})
12 ADD_DEFINITIONS(${VCORE_DEPS_CFLAGS_OTHER})
13
14 SET(VCORE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
15
16 SET(VCORE_SOURCES
17     ${VCORE_DIR}/dpl/core/src/assert.cpp
18     ${VCORE_DIR}/dpl/core/src/exception.cpp
19     ${VCORE_DIR}/dpl/core/src/noncopyable.cpp
20     ${VCORE_DIR}/dpl/core/src/singleton.cpp
21     ${VCORE_DIR}/dpl/core/src/colors.cpp
22
23     ${VCORE_DIR}/dpl/log/src/abstract_log_provider.cpp
24     ${VCORE_DIR}/dpl/log/src/old_style_log_provider.cpp
25     ${VCORE_DIR}/dpl/log/src/dlog_log_provider.cpp
26     ${VCORE_DIR}/dpl/log/src/journal_log_provider.cpp
27     ${VCORE_DIR}/dpl/log/src/log.cpp
28
29     ${VCORE_DIR}/vcore/api.cpp
30     ${VCORE_DIR}/vcore/Base64.cpp
31     ${VCORE_DIR}/vcore/Certificate.cpp
32     ${VCORE_DIR}/vcore/CertificateCollection.cpp
33     ${VCORE_DIR}/vcore/CertificateConfigReader.cpp
34     ${VCORE_DIR}/vcore/CertificateLoader.cpp
35     ${VCORE_DIR}/vcore/CertStoreType.cpp
36     ${VCORE_DIR}/vcore/ReferenceValidator.cpp
37     ${VCORE_DIR}/vcore/SaxReader.cpp
38     ${VCORE_DIR}/vcore/SignatureData.cpp
39     ${VCORE_DIR}/vcore/SignatureFinder.cpp
40     ${VCORE_DIR}/vcore/SignatureReader.cpp
41     ${VCORE_DIR}/vcore/TimeConversion.cpp
42     ${VCORE_DIR}/vcore/ValidatorFactories.cpp
43     ${VCORE_DIR}/vcore/SignatureValidator.cpp
44     ${VCORE_DIR}/vcore/XmlsecAdapter.cpp
45     ${VCORE_DIR}/vcore/pkcs12.cpp
46     ${VCORE_DIR}/vcore/exception.cpp
47     ${VCORE_DIR}/vcore/Client.cpp
48     ${VCORE_DIR}/vcore/Ocsp.cpp
49     ${VCORE_DIR}/vcore/CryptoInit.cpp
50     )
51
52 SET(VCORE_INCLUDES
53     ${VCORE_DIR}/dpl/core/include
54     ${VCORE_DIR}/dpl/log/include
55     ${VCORE_DIR}
56     )
57
58 ########### VCORE SOURCES ########
59
60 INCLUDE_DIRECTORIES(
61     SYSTEM
62     ${VCORE_DEPS_INCLUDE_DIRS}
63     ${VCORE_INCLUDES}
64     )
65
66 ADD_LIBRARY(${TARGET_VCORE_LIB} SHARED ${VCORE_SOURCES})
67
68 # TODO: visibility needed to be hidden
69 SET_TARGET_PROPERTIES(${TARGET_VCORE_LIB}
70     PROPERTIES
71         COMPILE_FLAGS "-D_GNU_SOURCE -fPIC -fvisibility=default"
72         SOVERSION ${SO_VERSION}
73         VERSION ${VERSION})
74
75 TARGET_LINK_LIBRARIES(${TARGET_VCORE_LIB}
76     ${VCORE_DEPS_LIBRARIES}
77     ${TARGET_CERT_SVC_LIB}
78     )
79
80 ########## cert-server #############
81 PKG_CHECK_MODULES(CERT_SERVER_DEP
82     REQUIRED
83     dlog
84     sqlite3
85     db-util
86     libsystemd-daemon
87     key-manager
88     )
89
90 SET(CERT_SERVER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/server)
91
92 SET(CERT_SERVER_SRC
93     ${CERT_SERVER_DIR}/src/cert-server-main.c
94     ${CERT_SERVER_DIR}/src/cert-server-logic.c
95     ${CERT_SERVER_DIR}/src/cert-server-db.c
96     )
97
98 INCLUDE_DIRECTORIES(
99     SYSTEM
100     ${CERT_SERVER_DEP_INCLUDE_DIRS}
101     ${VCORE_DIR}
102     ${CERT_SERVER_DIR}/include
103     )
104
105 SET_SOURCE_FILES_PROPERTIES(
106     ${CERT_SERVER_SRC}
107     PROPERTIES
108         COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=hidden -fPIE"
109     )
110
111 ADD_EXECUTABLE(${TARGET_CERT_SERVER} ${CERT_SERVER_SRC})
112
113 TARGET_LINK_LIBRARIES(${TARGET_CERT_SERVER}
114     ${CERT_SERVER_DEP_LIBRARIES}
115     -pie
116     )
117
118 INSTALL(TARGETS ${TARGET_CERT_SERVER} DESTINATION ${TZ_SYS_BIN})
119
120 ########################################################
121 INSTALL(TARGETS ${TARGET_VCORE_LIB}
122     DESTINATION ${LIBDIR}
123     )
124
125 INSTALL(FILES
126     ${VCORE_DIR}/vcore/SignatureValidator.h
127     ${VCORE_DIR}/vcore/SignatureFinder.h
128     ${VCORE_DIR}/vcore/Certificate.h
129     ${VCORE_DIR}/vcore/SignatureData.h
130     ${VCORE_DIR}/vcore/CertStoreType.h
131     ${VCORE_DIR}/vcore/exception.h
132     DESTINATION ${INCLUDEDIR}/cert-svc/vcore
133     )
134
135 INSTALL(FILES
136     ${VCORE_DIR}/cert-svc/ccert.h
137     ${VCORE_DIR}/cert-svc/cinstance.h
138     ${VCORE_DIR}/cert-svc/cerror.h
139     ${VCORE_DIR}/cert-svc/cpkcs12.h
140     ${VCORE_DIR}/cert-svc/cprimitives.h
141     ${VCORE_DIR}/cert-svc/cstring.h
142     DESTINATION ${INCLUDEDIR}/cert-svc/cert-svc
143     )