cleaned spec file: license field
[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
37 ################################################################################
38 # for libcert-svc.so
39 ################################################################################
40
41 PKG_CHECK_MODULES(CERT_SVC_DEPS
42     openssl
43     dlog
44     glib-2.0
45     libtzplatform-config
46     REQUIRED
47 )
48
49 SET(CERT_SVC_SOURCES
50     ${PROJECT_SOURCE_DIR}/srcs/cert-service.c
51     ${PROJECT_SOURCE_DIR}/srcs/cert-service-util.c
52     ${PROJECT_SOURCE_DIR}/srcs/cert-service-store.c
53     ${PROJECT_SOURCE_DIR}/srcs/cert-service-process.c
54 )
55
56 IF(DEFINED DEBUG_OUTPUT)
57     SET_SOURCE_FILES_PROPERTIES(${CERT_SVC_SOURCES}
58         PROPERTIES COMPILE_FLAGS ${DEBUG_OUTPUT})
59 ENDIF(DEFINED DEBUG_OUTPUT)
60
61 INCLUDE_DIRECTORIES(
62     ${PROJECT_SOURCE_DIR}/include
63     ${CERT_SVC_DEPS_INCLUDE_DIRS}
64 )
65
66 ADD_LIBRARY(${TARGET_CERT_SVC_LIB} SHARED ${CERT_SVC_SOURCES})
67
68 SET_TARGET_PROPERTIES(${TARGET_CERT_SVC_LIB} PROPERTIES
69     SOVERSION ${SO_VERSION}
70     VERSION ${VERSION}
71 )
72
73 TARGET_LINK_LIBRARIES(${TARGET_CERT_SVC_LIB}
74     pthread
75     ${CERT_SVC_DEPS_LIBRARIES}
76 )
77
78 ################################################################################
79 # for dpkg-pki-sig
80 ################################################################################
81
82 SET(SIGN_TOOL_SOURCES
83     ${PROJECT_SOURCE_DIR}/srcs/dpkg-pki-sig.c
84     ${PROJECT_SOURCE_DIR}/srcs/cert-service-process.c
85     ${PROJECT_SOURCE_DIR}/srcs/cert-service-util.c
86 )
87
88 ADD_EXECUTABLE(${TARGET_SIGN_TOOL} ${SIGN_TOOL_SOURCES})
89
90 TARGET_LINK_LIBRARIES(${TARGET_SIGN_TOOL}
91     ${TARGET_CERT_SVC_LIB}
92     ${CERT_SVC_DEPS_LIBRARIES}
93 )
94
95 ################################################################################
96
97 CONFIGURE_FILE(cert-svc.pc.in cert-svc.pc @ONLY)
98 CONFIGURE_FILE(cert-svc-vcore.pc.in cert-svc-vcore.pc @ONLY)
99
100 INSTALL(TARGETS ${TARGET_CERT_SVC_LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
101 INSTALL(PROGRAMS ${TARGET_SIGN_TOOL} DESTINATION ${BINDIR})
102 INSTALL(FILES
103     ${CMAKE_CURRENT_BINARY_DIR}/cert-svc.pc
104     ${CMAKE_CURRENT_BINARY_DIR}/cert-svc-vcore.pc
105     DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
106 )
107 INSTALL(FILES ${PROJECT_SOURCE_DIR}/targetinfo DESTINATION ${TZ_SYS_SHARE}/cert-svc/)
108 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cert-service.h DESTINATION ${INCLUDEDIR})
109
110 # Now we must create empty directory for certificates.
111 # Without this directories rpm package will fail during build.
112 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
113     DESTINATION /usr/share/cert-svc/ca-certs/code-signing/native
114     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
115 )
116 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
117     DESTINATION /usr/share/cert-svc/ca-certs/code-signing/wac
118     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
119 )
120 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
121     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/code-signing/wac
122     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
123 )
124 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
125     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/code-signing/tizen
126     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
127 )
128 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
129     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/sim/operator
130     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
131 )
132 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
133     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/sim/thirdparty
134     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
135 )
136 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
137     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/user
138     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
139 )
140 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
141     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/trusteduser
142     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
143 )
144 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
145     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/mdm/security
146     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
147 )
148 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
149     DESTINATION ${TZ_SYS_SHARE}/cert-svc/certs/mdm/security/cert
150     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
151 )
152 INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
153     DESTINATION ${TZ_SYS_SHARE}/cert-svc/pkcs12
154     FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
155 )
156
157 ADD_SUBDIRECTORY(vcore)
158 ADD_SUBDIRECTORY(etc)