Update the latest source codes from SPIN 2.4 repository
[platform/core/security/cert-svc.git] / CMakeLists.txt
1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2 PROJECT(certsvc)
3
4 INCLUDE(FindPkgConfig)
5
6 SET(SO_VERSION 1)
7 SET(VERSION "${SO_VERSION}.0.0")
8
9 # define debug output
10 SET(DEBUG_OUTPUT "-DCERT_SVC_LOG")             # for debug
11 #SET(DEBUG_OUTPUT "-DCERT_SVC_LOG_CONSOLE")     # for debug
12
13 SET(TARGET_CERT_SVC_LIB "cert-svc")
14 SET(TARGET_VCORE_LIB "cert-svc-vcore")
15 #SET(TARGET_SIGN_TOOL "dpkg-pki-sig")
16
17 # compiler options
18 SET(GC_SECTIONS_FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections")
19 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GC_SECTIONS_FLAGS}")
20 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GC_SECTIONS_FLAGS}")
21
22 SET(CMAKE_C_FLAGS_RELEASE "-fvisibility=hidden -Wall -O2")
23 SET(CMAKE_CXX_FLAGS_RELEASE "-std=c++0x -Wall -O2")
24
25 SET(CMAKE_C_FLAGS_DEBUG "-fvisibility=hidden -Wall -O0 -g")
26 SET(CMAKE_CXX_FLAGS_DEBUG "-std=c++0x -Wall -O0 -g")
27
28 SET(CMAKE_C_FLAGS_CCOV "-fvisibility=hidden -Wall -O2 --coverage")
29 SET(CMAKE_CXX_FLAGS_CCOV "-std=c++0x -Wall -O2 --coverage")
30
31 SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
32 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
33 SET(CMAKE_SKIP_RPATH "TRUE")
34 SET(TZ_SYS_SHARE "${TZ_SYS_SHARE}")
35 SET(TZ_SYS_BIN "${TZ_SYS_BIN}")
36 SET(TZ_SYS_ETC "${TZ_SYS_ETC}")
37 #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wmissing-declarations")
38
39 ################################################################################
40 # for libcert-svc.so
41 ################################################################################
42
43 PKG_CHECK_MODULES(CERT_SVC_DEPS
44     openssl
45     dlog
46     glib-2.0
47     libxml-2.0
48     libtzplatform-config
49     REQUIRED
50 )
51
52 SET(CERT_SVC_SOURCES
53     ${PROJECT_SOURCE_DIR}/srcs/cert-service.c
54     ${PROJECT_SOURCE_DIR}/srcs/cert-service-util.c
55     ${PROJECT_SOURCE_DIR}/srcs/cert-service-store.c
56     ${PROJECT_SOURCE_DIR}/srcs/cert-service-process.c
57 )
58
59 IF(DEFINED DEBUG_OUTPUT)
60     SET_SOURCE_FILES_PROPERTIES(${CERT_SVC_SOURCES}
61         PROPERTIES COMPILE_FLAGS ${DEBUG_OUTPUT})
62 ENDIF(DEFINED DEBUG_OUTPUT)
63
64 INCLUDE_DIRECTORIES(
65     ${PROJECT_SOURCE_DIR}/include
66     ${CERT_SVC_DEPS_INCLUDE_DIRS}
67 )
68
69 ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
70 IF(TIZEN_FEAT_PROFILE_CERT_SVC_OCSP_CRL)
71 ADD_DEFINITIONS("-DTIZEN_FEATURE_CERT_SVC_OCSP_CRL")
72 ENDIF()
73
74 ADD_LIBRARY(${TARGET_CERT_SVC_LIB} SHARED ${CERT_SVC_SOURCES})
75
76 SET_TARGET_PROPERTIES(${TARGET_CERT_SVC_LIB} PROPERTIES
77     SOVERSION ${SO_VERSION}
78     VERSION ${VERSION}
79 )
80
81 TARGET_LINK_LIBRARIES(${TARGET_CERT_SVC_LIB}
82     pthread
83     ${CERT_SVC_DEPS_LIBRARIES}
84 )
85
86
87 ################################################################################
88
89 CONFIGURE_FILE(cert-svc.pc.in cert-svc.pc @ONLY)
90 CONFIGURE_FILE(cert-svc-vcore.pc.in cert-svc-vcore.pc @ONLY)
91
92 INSTALL(TARGETS ${TARGET_CERT_SVC_LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
93 INSTALL(PROGRAMS ${TARGET_SIGN_TOOL} DESTINATION ${BINDIR})
94 INSTALL(FILES
95     ${CMAKE_CURRENT_BINARY_DIR}/cert-svc.pc
96     ${CMAKE_CURRENT_BINARY_DIR}/cert-svc-vcore.pc
97     DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
98 )
99 INSTALL(FILES ${PROJECT_SOURCE_DIR}/targetinfo DESTINATION ${TZ_SYS_SHARE}/cert-svc/)
100 #INSTALL(FILES ${PROJECT_SOURCE_DIR}/res/pin/.pin DESTINATION ${TZ_SYS_SHARE}/cert-svc/pin/)
101 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cert-service.h DESTINATION ${INCLUDEDIR})
102
103 # Now we must create empty directory for certificates.
104 # Without this directories rpm package will fail during build.
105 #INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
106 #    DESTINATION ${TZ_SYS_SHARE}/cert-svc/ca-certs/code-signing/native
107 #    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
108 #)
109 #INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
110 #    DESTINATION ${TZ_SYS_SHARE}/cert-svc/ca-certs/code-signing/wac
111 #    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
112 #)
113 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
114     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/code-signing/wac
115     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
116 )
117 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
118     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/code-signing/tizen
119     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
120 )
121 IF(TIZEN_FEAT_PROFILE_CERT_SVC_OCSP_CRL)
122 INSTALL(FILES ${PROJECT_SOURCE_DIR}/res/fota/FOTA_ROOT.cer
123     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/fota
124 )
125 ENDIF()
126 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
127     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/sim/operator
128     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
129 )
130 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
131     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/sim/thirdparty
132     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
133 )
134 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
135     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/user
136     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
137 )
138 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
139     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/trusteduser
140     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
141 )
142 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
143     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/mdm/security
144     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
145 )
146 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
147     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/mdm/security/cert
148     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
149 )
150 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
151     DESTINATION ${TZ_SYS_SHARE}/cert-svc/pkcs12
152     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
153 )
154
155 ADD_SUBDIRECTORY(vcore)
156 ADD_SUBDIRECTORY(etc)