CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(cryptsvc) INCLUDE(FindPkgConfig) STRING(REGEX MATCH "([^.]*)" SO_VERSION "${VERSION}") SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} -std=c++0x") SET(CMAKE_C_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE") SET(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -Wp,-U_FORTIFY_SOURCE ${EXTRA_CXXFLAGS}") SET(CMAKE_C_FLAGS_DEBUG "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE") SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -ggdb -Wp,-U_FORTIFY_SOURCE ${EXTRA_CXXFLAGS}") SET(CMAKE_C_FLAGS_RELEASE "-g -O2") SET(CMAKE_CXX_FLAGS_RELEASE "-g -O2 ${EXTRA_CXXFLAGS}") # Set compiler warning flags ADD_DEFINITIONS("-Werror") # Make all warnings into errors. ADD_DEFINITIONS("-Wall") # Generate all warnings ADD_DEFINITIONS("-Wextra") # Generate even more extra warnings SET(TARGET_CRYPTSVC ${PROJECT_NAME}) SET(TARGET_DEVICE_INFO "device_info") SET(TARGET_GADGET "duid-gadget") IF("${ARCH}" MATCHES "arm") ADD_DEFINITIONS("-DCRYPTOSVC_TARGET") ENDIF("${ARCH}" MATCHES "arm") ######################################################################################## # for libcryptsvc.so SET(CRYPTSVC_REQUIRES "openssl3 dlog") SET(DEVICE_INFO_REQUIRES "dlog capi-system-info") PKG_CHECK_MODULES(CS_DEP REQUIRED ${CRYPTSVC_REQUIRES}) SET(CS_SRCS srcs/SecCryptoSvc.c) INCLUDE_DIRECTORIES( ${CS_DEP_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/include ) ADD_LIBRARY(${TARGET_CRYPTSVC} SHARED ${CS_SRCS}) SET_TARGET_PROPERTIES( ${TARGET_CRYPTSVC} PROPERTIES COMPILE_FLAGS "-fPIC -fvisibility=hidden" SOVERSION ${SO_VERSION} VERSION ${VERSION} ) TARGET_LINK_LIBRARIES(${TARGET_CRYPTSVC} ${CS_DEP_LIBRARIES}) INSTALL(TARGETS ${TARGET_CRYPTSVC} DESTINATION ${LIB_INSTALL_DIR}) ######################################################################################### # for libdevice_info.so PKG_CHECK_MODULES(DEVICE_INFO_DEP REQUIRED ${DEVICE_INFO_REQUIRES}) SET(DEVICE_INFO_SRCS srcs/device_info.c) INCLUDE_DIRECTORIES( ${DEVICE_INFO_DEP_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/include ) ADD_LIBRARY(${TARGET_DEVICE_INFO} SHARED ${DEVICE_INFO_SRCS}) SET_TARGET_PROPERTIES( ${TARGET_DEVICE_INFO} PROPERTIES COMPILE_FLAGS "-fPIC -fvisibility=hidden" SOVERSION ${SO_VERSION} VERSION ${VERSION} ) TARGET_LINK_LIBRARIES(${TARGET_DEVICE_INFO} ${TARGET_CRYPTSVC} ${DEVICE_INFO_DEP_LIBRARIES} -lpthread ) INSTALL(TARGETS ${TARGET_DEVICE_INFO} DESTINATION ${LIB_INSTALL_DIR}) ######################################################################################### CONFIGURE_FILE(${TARGET_CRYPTSVC}.pc.in ${TARGET_CRYPTSVC}.pc @ONLY) INSTALL(FILES ${TARGET_CRYPTSVC}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${INCLUDE_INSTALL_DIR}) ADD_SUBDIRECTORY(gadget) ADD_SUBDIRECTORY(test)