1 # Copyright (c) 2014 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.
16 # @file CMakeLists.txt
17 # @author Jan Olszak (j.olszak@samsung.com)
20 CMAKE_MINIMUM_REQUIRED (VERSION 2.6.2)
21 PROJECT(security-containers)
24 ## pkgconfig ###################################################################
25 INCLUDE(FindPkgConfig)
28 ## default CMAKE_INSTALL_* variables ###########################################
29 INCLUDE(GNUInstallDirs)
32 ## Compiler flags, depending on the build type #################################
33 IF(NOT CMAKE_BUILD_TYPE)
34 SET(CMAKE_BUILD_TYPE "DEBUG")
35 ENDIF(NOT CMAKE_BUILD_TYPE)
36 MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
38 SET(CMAKE_C_FLAGS_PROFILING "-g -O0 -pg")
39 SET(CMAKE_CXX_FLAGS_PROFILING "-g -std=c++11 -O0 -pg")
40 SET(CMAKE_C_FLAGS_DEBUG "-g -O0 -ggdb")
41 SET(CMAKE_CXX_FLAGS_DEBUG "-g -std=c++11 -O0 -ggdb")
42 SET(CMAKE_C_FLAGS_RELEASE "-g -O2 -DNDEBUG")
43 SET(CMAKE_CXX_FLAGS_RELEASE "-g -std=c++11 -O2 -DNDEBUG")
44 SET(CMAKE_C_FLAGS_CCOV "-g -O2 --coverage")
45 SET(CMAKE_CXX_FLAGS_CCOV "-g -std=c++11 -O2 --coverage")
47 ADD_DEFINITIONS("-fPIC") # Position Independent Code
48 ADD_DEFINITIONS("-Werror") # Make all warnings into errors
49 ADD_DEFINITIONS("-Wall") # Generate all warnings
50 ADD_DEFINITIONS("-Wextra") # Generate even more extra warnings
51 ADD_DEFINITIONS("-pedantic") # Be pedantic
52 ADD_DEFINITIONS("-pedantic-errors") # Make pedantic warnings into errors
53 ADD_DEFINITIONS(-DPROGRAM_VERSION="${VERSION}")
54 ADD_DEFINITIONS(-DPROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}")
57 ## Subdirectories ##############################################################
58 SET(COMMON_FOLDER ${PROJECT_SOURCE_DIR}/common)
59 SET(CLIENT_FOLDER ${PROJECT_SOURCE_DIR}/client)
60 SET(SERVER_FOLDER ${PROJECT_SOURCE_DIR}/server)
61 SET(UNIT_TESTS_FOLDER ${PROJECT_SOURCE_DIR}/unit_tests)
63 IF(NOT DEFINED SYSCONF_INSTALL_DIR)
64 SET(SYSCONF_INSTALL_DIR "/etc")
65 ENDIF(NOT DEFINED SYSCONF_INSTALL_DIR)
67 IF(NOT DEFINED LIB_INSTALL_DIR)
68 SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
69 ENDIF(NOT DEFINED LIB_INSTALL_DIR)
71 IF(NOT DEFINED INCLUDE_INSTALL_DIR)
72 SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
73 ENDIF(NOT DEFINED INCLUDE_INSTALL_DIR)
75 IF(NOT DEFINED SCRIPT_INSTALL_DIR)
76 SET(SCRIPT_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/sbin")
77 ENDIF(NOT DEFINED SCRIPT_INSTALL_DIR)
79 SET(SC_CONFIG_INSTALL_DIR ${SYSCONF_INSTALL_DIR}/security-containers)
81 ADD_SUBDIRECTORY(${CLIENT_FOLDER})
82 ADD_SUBDIRECTORY(${SERVER_FOLDER})
83 ADD_SUBDIRECTORY(${UNIT_TESTS_FOLDER})