1 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
3 ##### Configure project version when using
4 ##### outdated tools like CMake v2
7 CMAKE_POLICY(SET CMP0048 NEW)
11 CMAKE_POLICY(SET CMP0069 NEW)
14 IF(CMAKE_VERSION VERSION_LESS 3.0)
15 PROJECT(device-certificate-manager CXX C)
16 SET(PROJECT_VERSION "2.0")
18 PROJECT(device-certificate-manager VERSION 2.0 LANGUAGES C CXX)
21 INCLUDE(GNUInstallDirs)
23 IF(NOT (CMAKE_VERSION VERSION_LESS 3.9))
24 INCLUDE(CheckIPOSupported)
25 check_ipo_supported(RESULT IPO_ALLOWED)
30 find_package(Threads REQUIRED)
32 INCLUDE(cmake/CheckFrameworks.cmake)
33 INCLUDE(cmake/CStandard.cmake)
35 ADD_DEFINITIONS("-Werror")
36 ADD_DEFINITIONS("-Wall")
37 ADD_DEFINITIONS("-Wextra")
39 SET(CMAKE_POSITION_INDEPENDENT_CODE "True")
40 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
42 option(ENABLE_SYSTEMD_SUPPORT "Enable support for systemd" ON)
44 IF(ENABLE_SYSTEMD_SUPPORT AND NOT SYSTEMD_FOUND)
45 message(FATAL_ERROR "systemd support required but systemd not found")
48 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/dcm_build_config.h.in
49 ${CMAKE_CURRENT_BINARY_DIR}/dcm_build_config.h)
51 include_directories(${CMAKE_CURRENT_BINARY_DIR})
52 include_directories(shared)
54 SET(DCM_UNIX_SOCKET_PATH "/run/device-certificate-manager.socket")
55 add_definitions(-DDCM_UNIX_SOCKET_PATH="${DCM_UNIX_SOCKET_PATH}")
57 add_subdirectory(dcm-client)
58 add_subdirectory(dcm-daemon)
59 add_subdirectory(pkgconfig)
61 add_subdirectory(systemd)
62 add_subdirectory(tests)
63 add_subdirectory(tools)