1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
7 SET(VERSION "${SO_VERSION}.0.0")
10 SET(DEBUG_OUTPUT "-DCERT_SVC_LOG") # for debug
11 #SET(DEBUG_OUTPUT "-DCERT_SVC_LOG_CONSOLE") # for debug
13 SET(TARGET_CERT_SVC_LIB "cert-svc")
14 SET(TARGET_VCORE_LIB "cert-svc-vcore")
15 SET(TARGET_SIGN_TOOL "dpkg-pki-sig")
18 SET(CMAKE_C_FLAGS_RELEASE "-fvisibility=hidden -Wall -O2")
19 SET(CMAKE_CXX_FLAGS_RELEASE "-std=c++0x -Wall -O2")
21 SET(CMAKE_C_FLAGS_DEBUG "-fvisibility=hidden -Wall -O0 -g")
22 SET(CMAKE_CXX_FLAGS_DEBUG "-std=c++0x -Wall -O0 -g")
24 SET(CMAKE_C_FLAGS_CCOV "-fvisibility=hidden -Wall -O2 --coverage")
25 SET(CMAKE_CXX_FLAGS_CCOV "-std=c++0x -Wall -O2 --coverage")
27 SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
28 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
29 SET(CMAKE_SKIP_RPATH "TRUE")
31 ################################################################################
33 ################################################################################
35 PKG_CHECK_MODULES(CERT_SVC_DEPS
43 ${PROJECT_SOURCE_DIR}/srcs/cert-service.c
44 ${PROJECT_SOURCE_DIR}/srcs/cert-service-util.c
45 ${PROJECT_SOURCE_DIR}/srcs/cert-service-store.c
46 ${PROJECT_SOURCE_DIR}/srcs/cert-service-process.c
49 IF(DEFINED DEBUG_OUTPUT)
50 SET_SOURCE_FILES_PROPERTIES(${CERT_SVC_SOURCES}
51 PROPERTIES COMPILE_FLAGS ${DEBUG_OUTPUT})
52 ENDIF(DEFINED DEBUG_OUTPUT)
55 ${PROJECT_SOURCE_DIR}/include
56 ${CERT_SVC_DEPS_INCLUDE_DIRS}
59 ADD_LIBRARY(${TARGET_CERT_SVC_LIB} SHARED ${CERT_SVC_SOURCES})
61 SET_TARGET_PROPERTIES(${TARGET_CERT_SVC_LIB} PROPERTIES
62 SOVERSION ${SO_VERSION}
66 TARGET_LINK_LIBRARIES(${TARGET_CERT_SVC_LIB}
68 ${CERT_SVC_DEPS_LIBRARIES}
71 ################################################################################
73 ################################################################################
76 ${PROJECT_SOURCE_DIR}/srcs/dpkg-pki-sig.c
77 ${PROJECT_SOURCE_DIR}/srcs/cert-service-process.c
78 ${PROJECT_SOURCE_DIR}/srcs/cert-service-util.c
81 ADD_EXECUTABLE(${TARGET_SIGN_TOOL} ${SIGN_TOOL_SOURCES})
83 TARGET_LINK_LIBRARIES(${TARGET_SIGN_TOOL}
84 ${TARGET_CERT_SVC_LIB}
85 ${CERT_SVC_DEPS_LIBRARIES}
88 ################################################################################
90 CONFIGURE_FILE(cert-svc.pc.in cert-svc.pc @ONLY)
91 CONFIGURE_FILE(cert-svc-vcore.pc.in cert-svc-vcore.pc @ONLY)
93 INSTALL(TARGETS ${TARGET_CERT_SVC_LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
94 INSTALL(PROGRAMS ${TARGET_SIGN_TOOL} DESTINATION ${BINDIR})
96 ${CMAKE_CURRENT_BINARY_DIR}/cert-svc.pc
97 ${CMAKE_CURRENT_BINARY_DIR}/cert-svc-vcore.pc
98 DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
100 INSTALL(FILES ${PROJECT_SOURCE_DIR}/targetinfo DESTINATION /opt/share/cert-svc/)
101 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cert-service.h DESTINATION ${INCLUDEDIR})
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 /usr/share/cert-svc/ca-certs/code-signing/native
107 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
109 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
110 DESTINATION /usr/share/cert-svc/ca-certs/code-signing/wac
111 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
113 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
114 DESTINATION /opt/share/cert-svc/certs/code-signing/wac
115 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
117 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
118 DESTINATION /opt/share/cert-svc/certs/code-signing/tizen
119 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
121 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
122 DESTINATION /opt/share/cert-svc/certs/sim/operator
123 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
125 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
126 DESTINATION /opt/share/cert-svc/certs/sim/thirdparty
127 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
129 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
130 DESTINATION /opt/share/cert-svc/certs/user
131 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
133 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
134 DESTINATION /opt/share/cert-svc/certs/trusteduser
135 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
137 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
138 DESTINATION /opt/share/cert-svc/certs/mdm/security
139 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
141 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
142 DESTINATION /opt/share/cert-svc/certs/mdm/security/cert
143 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
145 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
146 DESTINATION /opt/share/cert-svc/pkcs12
147 FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
150 ADD_SUBDIRECTORY(vcore)
151 ADD_SUBDIRECTORY(etc)