ENDIF()
INCLUDE(GNUInstallDirs)
-
-find_package(Threads REQUIRED)
-
-INCLUDE(cmake/CheckFrameworks.cmake)
+INCLUDE(FindPkgConfig)
+INCLUDE(CheckLibraryExists)
+INCLUDE(GenerateExportHeader)
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE "RELEASE")
SET(CMAKE_POSITION_INDEPENDENT_CODE "True")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
-include_directories(${CMAKE_CURRENT_BINARY_DIR})
-include_directories(shared)
-
SET(DCM_UNIX_SOCKET_PATH "/run/device-certificate-manager.socket")
-add_definitions(-DDCM_UNIX_SOCKET_PATH="${DCM_UNIX_SOCKET_PATH}")
+ADD_DEFINITIONS(-DDCM_UNIX_SOCKET_PATH="${DCM_UNIX_SOCKET_PATH}")
-add_subdirectory(dcm-client)
-add_subdirectory(dcm-daemon)
-add_subdirectory(pkgconfig)
-add_subdirectory(rpm)
-add_subdirectory(systemd)
-add_subdirectory(tests)
+INCLUDE_DIRECTORIES(shared)
+ADD_SUBDIRECTORY(dcm-client)
+ADD_SUBDIRECTORY(dcm-daemon)
+ADD_SUBDIRECTORY(pkgconfig)
+ADD_SUBDIRECTORY(rpm)
+ADD_SUBDIRECTORY(systemd)
+ADD_SUBDIRECTORY(tests)
+++ /dev/null
-INCLUDE(CheckIncludeFile)
-INCLUDE(CheckIncludeFileCXX)
-INCLUDE(CheckLibraryExists)
-INCLUDE(CheckFunctionExists)
-INCLUDE(CheckIncludeFiles)
-
-FIND_PACKAGE(Boost REQUIRED
- COMPONENTS
- serialization
- log
- thread
- system
- unit_test_framework)
-
-FIND_PACKAGE(PkgConfig REQUIRED)
-
-PKG_CHECK_MODULES(DLOG REQUIRED dlog)
-
-find_package(Protobuf REQUIRED)
-
-#### Find mbedtls ####
-
-find_library(MBEDTLS_LIB
- mbedtls)
-
-find_library(MBEDCRYPTO_LIB
- mbedcrypto)
-
-find_library(MBEDX509_LIB
- mbedx509)
-
-IF(MBEDTLS_LIB-NOTFOUND)
- message(FATAL_ERROR "mbedtls not found ...")
-ENDIF()
-
-IF(MBEDCRYPTO_LIB-NOTFOUND)
- message(FATAL_ERROR "mbedcrypto not found ...")
-ENDIF()
-
-IF(MBEDX509_LIB-NOTFOUND)
- message(FATAL_ERROR "mbedx509 not found ...")
-ENDIF()
-
-CHECK_INCLUDE_FILES("mbedtls/rsa.h;mbedtls/ecdsa.h" MBEDTLS_HEADERS_OK)
-
-IF(NOT MBEDTLS_HEADERS_OK)
- message(FATAL_ERROR "No mbedtls headers")
-ENDIF()
# @author Dariusz Michaluk <d.michaluk@samsung.com>
# @author Jaroslaw Pelczar <j.pelczar@samsung.com>
-include(GenerateExportHeader)
+FIND_PACKAGE(Threads REQUIRED)
+FIND_PACKAGE(Protobuf REQUIRED)
-###### Include and library directories ######
+FIND_LIBRARY(MBEDTLS_LIB mbedtls)
-INCLUDE_DIRECTORIES(${DLOG_INCLUDE_DIRS})
-LINK_DIRECTORIES(${DLOG_LIBRARY_DIRS})
+FIND_PACKAGE(Boost REQUIRED
+ COMPONENTS
+ system)
-include_directories(${PROTOBUF_INCLUDE_DIRS})
-link_directories(${PROTOBUF_LIBRARY_DIRS})
+PKG_CHECK_MODULES(CLIENT_DEPS REQUIRED dlog)
-include_directories(${Boost_INCLUDE_DIRS})
-link_directories(${Boost_LIBRARY_DIRS})
-
-include_directories(${CMAKE_CURRENT_BINARY_DIR})
-
-###### Protobuf generator #######
+INCLUDE_DIRECTORIES(SYSTEM ${CLIENT_DEPS_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
+LINK_DIRECTORIES(${CLIENT_DEPS_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS})
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS dcm_support.proto)
-###### Library sources ######
-
-add_library(device-certificate-manager
+SET(TARGET_CLIENT "device-certificate-manager")
+ADD_LIBRARY(${TARGET_CLIENT}
SHARED
dcmclient.cpp
device_certificate_manager.cpp
${PROTO_SRCS}
${PROTO_HDRS})
-###### Export header generation ######
-
-GENERATE_EXPORT_HEADER(device-certificate-manager
- BASE_NAME DEVICE_CERTIFICATE_MANAGER
- PREFIX_NAME API_
- )
+GENERATE_EXPORT_HEADER(${TARGET_CLIENT}
+ BASE_NAME DEVICE_CERTIFICATE_MANAGER
+ PREFIX_NAME API_)
-###### Linking ######
-target_link_libraries(device-certificate-manager
+TARGET_LINK_LIBRARIES(${TARGET_CLIENT}
${Boost_SYSTEM_LIBRARY}
- ${CMAKE_THREAD_LIBS_INIT}
${PROTOBUF_LITE_LIBRARIES}
${MBEDTLS_LIB}
- ${MBEDCRYPTO_LIB}
- ${DLOG_LIBRARIES})
-
-set_property(TARGET device-certificate-manager APPEND PROPERTY LINK_FLAGS "-Wl,--no-undefined -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/version_script.lds")
-
-###### Properties of library ######
-
-set_property(TARGET device-certificate-manager PROPERTY DEFINE_SYMBOL DEVICE_CERTIFICATE_MANAGER_EXPORT)
-set_property(TARGET device-certificate-manager PROPERTY VISIBILITY_INLINES_HIDDEN TRUE)
-set_property(TARGET device-certificate-manager PROPERTY VERSION 2.0)
-set_property(TARGET device-certificate-manager PROPERTY C_VISIBILITY_PRESET hidden)
-set_property(TARGET device-certificate-manager PROPERTY CXX_VISIBILITY_PRESET hidden)
+ ${CLIENT_DEPS_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT})
-###### Installation ######
+SET_PROPERTY(TARGET ${TARGET_CLIENT} APPEND PROPERTY LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/version_script.lds")
+SET_PROPERTY(TARGET ${TARGET_CLIENT} PROPERTY DEFINE_SYMBOL DEVICE_CERTIFICATE_MANAGER_EXPORT)
+SET_PROPERTY(TARGET ${TARGET_CLIENT} PROPERTY VISIBILITY_INLINES_HIDDEN TRUE)
+SET_PROPERTY(TARGET ${TARGET_CLIENT} PROPERTY VERSION 2.0)
+SET_PROPERTY(TARGET ${TARGET_CLIENT} PROPERTY C_VISIBILITY_PRESET hidden)
+SET_PROPERTY(TARGET ${TARGET_CLIENT} PROPERTY CXX_VISIBILITY_PRESET hidden)
-install(TARGETS device-certificate-manager
+INSTALL(TARGETS ${TARGET_CLIENT}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
-install(FILES
+INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/device_certificate_manager_export.h
dcm_client.h
device_certificate_manager.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/device-certificate-manager)
-install(FILES
+INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/dcm_support.pb.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/device-certificate-manager-backend)
#include <cassert>
#include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/io/coded_stream.h>
-#include <protobuf_asio.h>
+#include "protobuf_asio.h"
#include <inttypes.h>
#include <mbedtls/ssl.h>
# @author Dariusz Michaluk <d.michaluk@samsung.com>
# @author Jaroslaw Pelczar <j.pelczar@samsung.com>
-###### Protobuf generator #######
+FIND_PACKAGE(Threads REQUIRED)
+FIND_PACKAGE(Protobuf REQUIRED)
-PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ../dcm-client/dcm_support.proto)
-
-add_custom_target(protobuf_generated
- DEPENDS ${PROTO_SRCS} ${PROTO_HDRS})
-
-###### Setup include paths and library directories #######
-
-ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK)
-
-INCLUDE_DIRECTORIES(${DLOG_INCLUDE_DIRS})
-LINK_DIRECTORIES(${DLOG_LIBRARY_DIRS})
-ADD_DEFINITIONS(${DLOG_CFLAGS_OTHER})
+FIND_PACKAGE(Boost REQUIRED
+ COMPONENTS
+ log
+ thread
+ system)
-PKG_CHECK_MODULES(SYSTEMD
- REQUIRED
- libsystemd)
-
-INCLUDE_DIRECTORIES(${SYSTEMD_INCLUDE_DIRS})
-LINK_DIRECTORIES(${SYSTEMD_LIBRARY_DIRS})
-ADD_DEFINITIONS(${SYSTEMD_CFLAGS_OTHER})
-
-PKG_CHECK_MODULES(CYNARA
+PKG_CHECK_MODULES(DAEMON_DEPS
REQUIRED
+ libsystemd
cynara-client
cynara-creds-socket
- cynara-session)
-
-INCLUDE_DIRECTORIES(${CYNARA_INCLUDE_DIRS})
-LINK_DIRECTORIES(${CYNARA_LIBRARY_DIRS})
-ADD_DEFINITIONS(${CYNARA_CFLAGS_OTHER})
+ cynara-session
+ dlog)
-include_directories(${Boost_INCLUDE_DIRS})
-link_directories(${Boost_LIBRARY_DIRS})
+INCLUDE_DIRECTORIES(SYSTEM ${DAEMON_DEPS_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS})
+LINK_DIRECTORIES(${DAEMON_DEPS_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS})
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+PROTOBUF_GENERATE_CPP(PROTO_SRCS PROTO_HDRS ../dcm-client/dcm_support.proto)
-###### Main executable #######
+ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK)
-add_executable(device-certificate-managerd
+SET(TARGET_DAEMON "device-certificate-managerd")
+ADD_EXECUTABLE(${TARGET_DAEMON}
main.cpp
dcmserver.cpp
dcmsession.cpp
../shared/protobuf_asio.cpp
soresolver.cpp
${PROTO_SRCS}
- ${PROTO_HDRS}
- )
+ ${PROTO_HDRS})
-add_dependencies(device-certificate-managerd protobuf_generated)
-
-###### Framework linking #######
-
-target_link_libraries(device-certificate-managerd
+TARGET_LINK_LIBRARIES(${TARGET_DAEMON}
${Boost_LOG_LIBRARY}
${Boost_THREAD_LIBRARY}
${Boost_SYSTEM_LIBRARY}
+ ${PROTOBUF_LITE_LIBRARIES}
+ ${DAEMON_DEPS_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
- ${DLOG_LIBRARIES}
- ${CYNARA_LIBRARIES}
- ${SYSTEMD_LIBRARIES}
- device-certificate-manager
dl)
-###### Installation #######
-
-INSTALL(TARGETS device-certificate-managerd
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-)
+INSTALL(TARGETS ${TARGET_DAEMON}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-INSTALL(FILES dcm-backend-api.h
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/device-certificate-manager-backend
-)
+INSTALL(FILES
+ dcm-backend-api.h
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/device-certificate-manager-backend)
#include <boost/asio.hpp>
#include <boost/noncopyable.hpp>
#include "dcm_support.pb.h"
-#include <protobuf_asio.h>
+#include "protobuf_asio.h"
#include "dcm-backend-api.h"
#include "soresolver.h"
#include <boost/log/sinks.hpp>
#include <boost/log/support/date_time.hpp>
-#include <boost_log_dlog_sink.h>
+#include "boost_log_dlog_sink.h"
#include <cynara-client.h>
# @author Dariusz Michaluk <d.michaluk@samsung.com>
# @author Jaroslaw Pelczar <j.pelczar@samsung.com>
-configure_file(device-certificate-manager.service.in device-certificate-manager.service @ONLY)
-configure_file(device-certificate-manager.socket.in device-certificate-manager.socket @ONLY)
+CONFIGURE_FILE(device-certificate-manager.service.in device-certificate-manager.service @ONLY)
+CONFIGURE_FILE(device-certificate-manager.socket.in device-certificate-manager.socket @ONLY)
-install(FILES
+INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/device-certificate-manager.service
${CMAKE_CURRENT_BINARY_DIR}/device-certificate-manager.socket
DESTINATION ${SYSTEMD_UNIT_DIR})
# @author Dariusz Michaluk <d.michaluk@samsung.com>
# @author Jaroslaw Pelczar <j.pelczar@samsung.com>
-INCLUDE_DIRECTORIES(../dcm-client ../shared ${CMAKE_BINARY_DIR}/dcm-client)
+FIND_PACKAGE(Boost REQUIRED
+ COMPONENTS
+ unit_test_framework)
-INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES(SYSTEM ${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
+INCLUDE_DIRECTORIES(../dcm-client ../shared ${CMAKE_BINARY_DIR}/dcm-client)
ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK)
ADD_DEFINITIONS(-DBOOST_TEST_DYN_LINK)