Upgrade static cert-meta.db to 0.0.4
[platform/core/security/cert-svc.git] / CMakeLists.txt
index 1334c31..f55fc49 100644 (file)
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(certsvc)
+PROJECT(cert-svc)
 
 INCLUDE(FindPkgConfig)
 
-SET(SO_VERSION 1)
-SET(VERSION "${SO_VERSION}.0.0")
-
-# define debug output
-SET(DEBUG_OUTPUT "-DCERT_SVC_LOG")             # for debug
-#SET(DEBUG_OUTPUT "-DCERT_SVC_LOG_CONSOLE")     # for debug
-
-SET(TARGET_CERT_SVC_LIB "cert-svc")
-SET(TARGET_VCORE_LIB "cert-svc-vcore")
-SET(TARGET_SIGN_TOOL "dpkg-pki-sig")
+STRING(REGEX MATCH "([^.]*)" SO_VERSION "${VERSION}")
 
 # compiler options
-SET(GC_SECTIONS_FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GC_SECTIONS_FLAGS}")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GC_SECTIONS_FLAGS}")
-
-SET(CMAKE_C_FLAGS_RELEASE "-fvisibility=hidden -Wall -O2")
-SET(CMAKE_CXX_FLAGS_RELEASE "-std=c++0x -Wall -O2")
-
-SET(CMAKE_C_FLAGS_DEBUG "-fvisibility=hidden -Wall -O0 -g")
-SET(CMAKE_CXX_FLAGS_DEBUG "-std=c++0x -Wall -O0 -g")
-
-SET(CMAKE_C_FLAGS_CCOV "-fvisibility=hidden -Wall -O2 --coverage")
-SET(CMAKE_CXX_FLAGS_CCOV "-std=c++0x -Wall -O2 --coverage")
-
+SET(GC_SECTIONS_FLAGS         "-fdata-sections -ffunction-sections -Wl,--gc-sections")
+SET(CMAKE_C_FLAGS             "${CMAKE_C_FLAGS} ${GC_SECTIONS_FLAGS}")
+SET(CMAKE_CXX_FLAGS           "${CMAKE_CXX_FLAGS} ${GC_SECTIONS_FLAGS}")
+SET(CMAKE_C_FLAGS_RELEASE     "-g -O2")
+SET(CMAKE_CXX_FLAGS_RELEASE   "-g -std=c++0x -O2")
+SET(CMAKE_C_FLAGS_DEBUG       "-g -O0 -Wp,-U_FORTIFY_SOURCE")
+SET(CMAKE_CXX_FLAGS_DEBUG     "-g -std=c++0x -O0 -Wp,-U_FORTIFY_SOURCE")
+SET(CMAKE_C_FLAGS_CCOV        "-g -O2 --coverage")
+SET(CMAKE_CXX_FLAGS_CCOV      "-g -std=c++0x -O2 --coverage")
 SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
-SET(CMAKE_SKIP_RPATH "TRUE")
-
-################################################################################
-# for libcert-svc.so
-################################################################################
-
-PKG_CHECK_MODULES(CERT_SVC_DEPS
-    openssl
-    dlog
-    glib-2.0
-    REQUIRED
-)
-
-SET(CERT_SVC_SOURCES
-    ${PROJECT_SOURCE_DIR}/srcs/cert-service.c
-    ${PROJECT_SOURCE_DIR}/srcs/cert-service-util.c
-    ${PROJECT_SOURCE_DIR}/srcs/cert-service-store.c
-    ${PROJECT_SOURCE_DIR}/srcs/cert-service-process.c
-)
+SET(CMAKE_EXE_LINKER_FLAGS    "-Wl,--as-needed")
+SET(CMAKE_SKIP_RPATH          "TRUE")
 
-IF(DEFINED DEBUG_OUTPUT)
-    SET_SOURCE_FILES_PROPERTIES(${CERT_SVC_SOURCES}
-        PROPERTIES COMPILE_FLAGS ${DEBUG_OUTPUT})
-ENDIF(DEFINED DEBUG_OUTPUT)
-
-INCLUDE_DIRECTORIES(
-    ${PROJECT_SOURCE_DIR}/include
-    ${CERT_SVC_DEPS_INCLUDE_DIRS}
-)
+# compiler warning flags
+ADD_DEFINITIONS("-Wall")
+ADD_DEFINITIONS("-Wextra")
+ADD_DEFINITIONS("-Werror")
 
-ADD_LIBRARY(${TARGET_CERT_SVC_LIB} SHARED ${CERT_SVC_SOURCES})
-
-SET_TARGET_PROPERTIES(${TARGET_CERT_SVC_LIB} PROPERTIES
-    SOVERSION ${SO_VERSION}
-    VERSION ${VERSION}
-)
-
-TARGET_LINK_LIBRARIES(${TARGET_CERT_SVC_LIB}
-    pthread
-    ${CERT_SVC_DEPS_LIBRARIES}
-)
+SET(TARGET_VCORE_LIB "cert-svc-vcore")
+SET(TARGET_CERT_SERVER "cert-server")
 
-################################################################################
-# for dpkg-pki-sig
-################################################################################
+ADD_DEFINITIONS("-DSIGNATURE_SCHEMA_PATH=\"${CERT_SVC_RO_PATH}/schema.xsd\"")
 
-SET(SIGN_TOOL_SOURCES
-    ${PROJECT_SOURCE_DIR}/srcs/dpkg-pki-sig.c
-    ${PROJECT_SOURCE_DIR}/srcs/cert-service-process.c
-    ${PROJECT_SOURCE_DIR}/srcs/cert-service-util.c
-)
+ADD_DEFINITIONS("-DSERVER_STREAM=\"${SERVER_STREAM}\"")
 
-ADD_EXECUTABLE(${TARGET_SIGN_TOOL} ${SIGN_TOOL_SOURCES})
+ADD_DEFINITIONS("-DCERTSVC_SYSTEM_STORE_DB=\"${CERT_SVC_DB_PATH}/certs-meta.db\"")
+ADD_DEFINITIONS("-DCERTSVC_PKCS12_STORAGE_DIR=\"${CERT_SVC_PKCS12}/\"")
 
-TARGET_LINK_LIBRARIES(${TARGET_SIGN_TOOL}
-    ${TARGET_CERT_SVC_LIB}
-    ${CERT_SVC_DEPS_LIBRARIES}
-)
+ADD_DEFINITIONS("-DTZ_SYS_CA_CERTS=\"${TZ_SYS_CA_CERTS}\"")
+ADD_DEFINITIONS("-DTZ_SYS_CA_CERTS_ORIG=\"${TZ_SYS_CA_CERTS_ORIG}\"")
+ADD_DEFINITIONS("-DTZ_SYS_CA_BUNDLE=\"${TZ_SYS_CA_BUNDLE}\"")
 
-################################################################################
+SET(CA_CERTS_PATH ${RO_DATA_DIR}/ca-certificates)
+ADD_DEFINITIONS("-DTZ_SYS_CA_CERTS_TIZEN=\"${CA_CERTS_PATH}/tizen\"")
+ADD_DEFINITIONS("-DFINGERPRINT_LIST_PATH=\"${CA_CERTS_PATH}/fingerprint/fingerprint_list.xml\"")
+ADD_DEFINITIONS("-DFINGERPRINT_LIST_EXT_PATH=\"${CA_CERTS_PATH}/fingerprint/fingerprint_list_ext.xml\"")
+ADD_DEFINITIONS("-DFINGERPRINT_LIST_RW_PATH=\"${FINGERPRINT_LIST_RW_PATH}\"")
+ADD_DEFINITIONS("-DFINGERPRINT_LIST_SCHEMA_PATH=\"${CA_CERTS_PATH}/fingerprint/fingerprint_list.xsd\"")
 
-CONFIGURE_FILE(cert-svc.pc.in cert-svc.pc @ONLY)
 CONFIGURE_FILE(cert-svc-vcore.pc.in cert-svc-vcore.pc @ONLY)
-
-INSTALL(TARGETS ${TARGET_CERT_SVC_LIB} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries)
-INSTALL(PROGRAMS ${TARGET_SIGN_TOOL} DESTINATION ${BINDIR})
 INSTALL(FILES
-    ${CMAKE_CURRENT_BINARY_DIR}/cert-svc.pc
     ${CMAKE_CURRENT_BINARY_DIR}/cert-svc-vcore.pc
     DESTINATION ${LIB_INSTALL_DIR}/pkgconfig
 )
-INSTALL(FILES ${PROJECT_SOURCE_DIR}/targetinfo DESTINATION /opt/share/cert-svc/)
-INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cert-service.h DESTINATION ${INCLUDEDIR})
-
-# Now we must create empty directory for certificates.
-# Without this directories rpm package will fail during build.
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /usr/share/cert-svc/ca-certs/code-signing/native
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /usr/share/cert-svc/ca-certs/code-signing/wac
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/code-signing/wac
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/code-signing/tizen
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/sim/operator
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/sim/thirdparty
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/user
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/trusteduser
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/mdm/security
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/certs/mdm/security/cert
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
-INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/etc/empty
-    DESTINATION /opt/share/cert-svc/pkcs12
-    FILES_MATCHING PATTERN THISPATTERNMUSTNOTMATCH
-)
 
-ADD_SUBDIRECTORY(vcore)
+ADD_SUBDIRECTORY(src)
+ADD_SUBDIRECTORY(systemd)
 ADD_SUBDIRECTORY(etc)
+
+IF (DEFINED CERTSVC_TEST_BUILD)
+ADD_DEFINITIONS("-DTESTAPP_RES_DIR=\"${CERT_SVC_TESTS}/\"")
+ADD_SUBDIRECTORY(tests)
+ENDIF (DEFINED CERTSVC_TEST_BUILD)
+
+CONFIGURE_FILE(packaging/cert-svc.manifest.in cert-svc.manifest @ONLY)