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