Rewrite cmake infrastructure 34/234234/10
authorDariusz Michaluk <d.michaluk@samsung.com>
Tue, 26 May 2020 12:09:00 +0000 (14:09 +0200)
committerDariusz Michaluk <d.michaluk@samsung.com>
Mon, 6 Jul 2020 09:59:38 +0000 (11:59 +0200)
Change-Id: Ic5a94dc9c188e5e26a6b0c42647c77f03ab2d59e

CMakeLists.txt
cmake/CheckFrameworks.cmake [deleted file]
dcm-client/CMakeLists.txt
dcm-client/dcmclient.cpp
dcm-daemon/CMakeLists.txt
dcm-daemon/dcmsession.h
dcm-daemon/main.cpp
systemd/CMakeLists.txt
tests/CMakeLists.txt

index 4ca963e5ec11ad85ce67e97fa0c4c833ddcabd84..d58a65806fc860d71630098bf09422b88daa24f8 100644 (file)
@@ -33,10 +33,9 @@ ELSE()
 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")
@@ -54,15 +53,13 @@ ADD_DEFINITIONS("-Wextra")
 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)
diff --git a/cmake/CheckFrameworks.cmake b/cmake/CheckFrameworks.cmake
deleted file mode 100644 (file)
index 15611c0..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-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()
index adf55ff5c87be9a81da79676565b4e62ff06242a..0a81a6a97f8bb6bd58f0beb1f573076757f97d3d 100644 (file)
 # @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
@@ -45,44 +42,34 @@ add_library(device-certificate-manager
        ${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)
index 7a6d4e03c7ab25eeebcbf2dd73e5502630365274..322420b9a77ee62210b8ff6610ceeb7d4ba1de05 100644 (file)
@@ -22,7 +22,7 @@
 #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>
 
index fb89979baba618f6c0da207e46d159ac3ac984b5..65b31de41a68c4124ae8c7f7e3f50176b8e164fd 100644 (file)
 # @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
@@ -64,30 +50,20 @@ add_executable(device-certificate-managerd
        ../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)
index 4f6d4746d046be764e59faa5dbe829f43bd8bed6..abddb29eadd5ec2dc4fe242e4f78747b21897f67 100644 (file)
@@ -25,7 +25,7 @@
 #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"
 
index 2cae3d2a46b7093af504340a93cc61b37a32c841..09183e8e1e445e5a5eeace00173319e96a35c887 100644 (file)
@@ -33,7 +33,7 @@
 #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>
 
index 77847b06afbbd96e259d6706b1954a4528e31f7e..f5e7950c8d16fe26d238cc742efef553e29b2a80 100644 (file)
 # @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})
index fb35fbd10cd6156f097d9a04789f9723ef488678..eddb159eb8b439e330516b43f6872712664e6c2e 100644 (file)
 # @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)