1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
7 SET(VERSION "${SO_VERSION}.0.0")
9 SET(TARGET_CERT_SVC_LIB "cert-svc")
10 SET(TARGET_VCORE_LIB "cert-svc-vcore")
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}")
17 SET(CMAKE_C_FLAGS_RELEASE "-fvisibility=hidden -Wall -O2")
18 SET(CMAKE_CXX_FLAGS_RELEASE "-std=c++0x -Wall -O2")
20 SET(CMAKE_C_FLAGS_DEBUG "-fvisibility=hidden -Wall -O0 -g")
21 SET(CMAKE_CXX_FLAGS_DEBUG "-std=c++0x -Wall -O0 -g")
23 SET(CMAKE_C_FLAGS_CCOV "-fvisibility=hidden -Wall -O2 --coverage")
24 SET(CMAKE_CXX_FLAGS_CCOV "-std=c++0x -Wall -O2 --coverage")
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")
31 ################################################################################
33 ################################################################################
35 PKG_CHECK_MODULES(CERT_SVC_DEPS
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
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")
56 ${PROJECT_SOURCE_DIR}/include
57 ${CERT_SVC_DEPS_INCLUDE_DIRS}
60 ADD_DEFINITIONS("-DDPL_LOGS_ENABLED")
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)
67 ADD_LIBRARY(${TARGET_CERT_SVC_LIB} SHARED ${CERT_SVC_SOURCES})
69 SET_TARGET_PROPERTIES(${TARGET_CERT_SVC_LIB} PROPERTIES
70 SOVERSION ${SO_VERSION}
74 TARGET_LINK_LIBRARIES(${TARGET_CERT_SVC_LIB}
76 ${CERT_SVC_DEPS_LIBRARIES}
80 ################################################################################
82 CONFIGURE_FILE(cert-svc.pc.in cert-svc.pc @ONLY)
83 CONFIGURE_FILE(cert-svc-vcore.pc.in cert-svc-vcore.pc @ONLY)
85 INSTALL(TARGETS ${TARGET_CERT_SVC_LIB} DESTINATION ${LIBDIR} COMPONENT RuntimeLibraries)
86 INSTALL(PROGRAMS ${TARGET_SIGN_TOOL} DESTINATION ${BINDIR})
88 ${CMAKE_CURRENT_BINARY_DIR}/cert-svc.pc
89 ${CMAKE_CURRENT_BINARY_DIR}/cert-svc-vcore.pc
90 DESTINATION ${LIBDIR}/pkgconfig
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/)
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
103 #INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
104 # DESTINATION /usr/share/cert-svc/ca-certs/code-signing/wac
105 # FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
107 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
108 DESTINATION /usr/share/cert-svc/certs/code-signing/wac
109 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
111 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
112 DESTINATION /usr/share/cert-svc/certs/code-signing/tizen
113 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
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
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
124 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
125 DESTINATION /opt/share/cert-svc/certs/sim/thirdparty
126 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
128 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
129 DESTINATION /opt/share/cert-svc/certs/user
130 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
132 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
133 DESTINATION /opt/share/cert-svc/certs/trusteduser
134 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
136 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
137 DESTINATION /opt/share/cert-svc/certs/mdm/security
138 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
140 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
141 DESTINATION /opt/share/cert-svc/certs/mdm/security/cert
142 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
144 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
145 DESTINATION /opt/share/cert-svc/pkcs12
146 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
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)