1 # Copyright (c) 2017 - 2020 Samsung Electronics Co., Ltd All Rights Reserved
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # @file CMakeLists.txt
16 # @author Dariusz Michaluk <d.michaluk@samsung.com>
17 # @author Jaroslaw Pelczar <j.pelczar@samsung.com>
19 CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
20 PROJECT(device-certificate-manager VERSION 2.1 LANGUAGES C CXX)
22 INCLUDE(GNUInstallDirs)
23 INCLUDE(FindPkgConfig)
25 IF(NOT CMAKE_BUILD_TYPE)
26 SET(CMAKE_BUILD_TYPE "RELEASE")
27 ENDIF(NOT CMAKE_BUILD_TYPE)
29 IF(NOT DEFINED COVERAGE_DIR)
31 "${SHARE_INSTALL_PREFIX}/${PROJECT_NAME}-coverage"
33 "Read-only coverage data directory")
34 ENDIF(NOT DEFINED COVERAGE_DIR)
35 ADD_DEFINITIONS("-DCOVERAGE_DIR=\"${COVERAGE_DIR}\"")
37 SET(CMAKE_C_FLAGS_DEBUG "-std=c11 -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
38 SET(CMAKE_CXX_FLAGS_DEBUG "-std=c++17 -O0 -ggdb -Wp,-U_FORTIFY_SOURCE")
39 SET(CMAKE_C_FLAGS_RELEASE "-std=c11 -O2 -DNDEBUG")
40 SET(CMAKE_CXX_FLAGS_RELEASE "-std=c++17 -O2 -DNDEBUG")
41 SET(CMAKE_C_FLAGS_COVERAGE "-std=c11 -O0 -ggdb --coverage -Wp,-U_FORTIFY_SOURCE")
42 SET(CMAKE_CXX_FLAGS_COVERAGE "-std=c++17 -O0 -ggdb --coverage -Wp,-U_FORTIFY_SOURCE")
44 ADD_DEFINITIONS("-Werror")
45 ADD_DEFINITIONS("-Wall")
46 ADD_DEFINITIONS("-Wextra")
48 SET(CMAKE_POSITION_INDEPENDENT_CODE "True")
49 SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pie")
51 SET(DCM_UNIX_SOCKET_PATH "/run/device-certificate-manager.socket")
52 ADD_DEFINITIONS(-DDCM_UNIX_SOCKET_PATH="${DCM_UNIX_SOCKET_PATH}")
54 INCLUDE_DIRECTORIES(src/shared)
55 ADD_SUBDIRECTORY(src/dcm-client)
56 ADD_SUBDIRECTORY(src/dcm-daemon)
57 ADD_SUBDIRECTORY(pkgconfig)
59 ADD_SUBDIRECTORY(systemd)
60 ADD_SUBDIRECTORY(tests)