IPC: Signals
[platform/core/security/vasum.git] / CMakeLists.txt
1 #Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
2 #
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
6 #
7 #        http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14 #
15 #
16 # @file   CMakeLists.txt
17 # @author Jan Olszak (j.olszak@samsung.com)
18 #
19
20 CMAKE_MINIMUM_REQUIRED (VERSION 2.6.2)
21 PROJECT(security-containers)
22
23
24 ## pkgconfig ###################################################################
25 INCLUDE(FindPkgConfig)
26
27
28 ## default CMAKE_INSTALL_* variables ###########################################
29 INCLUDE(GNUInstallDirs)
30
31
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}")
37
38 # special case for a GCC < 4.7, assume rest is fine
39 IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
40     SET(CXX_11_STD "c++0x")
41 else()
42     SET(CXX_11_STD "c++11")
43 endif()
44
45 SET(CMAKE_C_FLAGS_PROFILING    "-g -O0 -pg")
46 SET(CMAKE_CXX_FLAGS_PROFILING  "-g -std=${CXX_11_STD} -O0 -pg")
47 SET(CMAKE_C_FLAGS_DEBUG        "-g -O0 -ggdb")
48 SET(CMAKE_CXX_FLAGS_DEBUG      "-g -std=${CXX_11_STD} -O0 -ggdb")
49 SET(CMAKE_C_FLAGS_RELEASE      "-g -O2 -DNDEBUG")
50 SET(CMAKE_CXX_FLAGS_RELEASE    "-g -std=${CXX_11_STD} -O2 -DNDEBUG")
51 SET(CMAKE_C_FLAGS_CCOV         "-g -O2 --coverage")
52 SET(CMAKE_CXX_FLAGS_CCOV       "-g -std=${CXX_11_STD} -O2 --coverage")
53
54 ADD_DEFINITIONS("-fPIC")   # Position Independent Code
55 ADD_DEFINITIONS("-Werror") # Make all warnings into errors
56 ADD_DEFINITIONS("-Wall")   # Generate all warnings
57 ADD_DEFINITIONS("-Wextra") # Generate even more extra warnings
58 ADD_DEFINITIONS("-pedantic") # Be pedantic
59 ADD_DEFINITIONS("-pedantic-errors") # Make pedantic warnings into errors
60 ADD_DEFINITIONS(-DPROGRAM_VERSION="${VERSION}")
61 ADD_DEFINITIONS(-DPROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}")
62
63 IF(NOT DEFINED SECURITY_CONTAINERS_USER)
64     SET(SECURITY_CONTAINERS_USER "security-containers")
65 ENDIF(NOT DEFINED SECURITY_CONTAINERS_USER)
66 IF(NOT DEFINED INPUT_EVENT_GROUP)
67     SET(INPUT_EVENT_GROUP "input")
68 ENDIF(NOT DEFINED INPUT_EVENT_GROUP)
69 IF(NOT DEFINED DISK_GROUP)
70     SET(DISK_GROUP "disk")
71 ENDIF(NOT DEFINED DISK_GROUP)
72 IF(NOT DEFINED TTY_GROUP)
73     SET(TTY_GROUP "tty")
74 ENDIF(NOT DEFINED TTY_GROUP)
75
76 ADD_DEFINITIONS(-DSECURITY_CONTAINERS_USER="${SECURITY_CONTAINERS_USER}")
77 ADD_DEFINITIONS(-DINPUT_EVENT_GROUP="${INPUT_EVENT_GROUP}")
78 ADD_DEFINITIONS(-DDISK_GROUP="${DISK_GROUP}")
79 ADD_DEFINITIONS(-DTTY_GROUP="${TTY_GROUP}")
80
81 ## Python packages directory ###################################################
82
83 IF(NOT DEFINED PYTHON_SITELIB)
84     EXECUTE_PROCESS(COMMAND python -c
85     "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib())"
86     OUTPUT_VARIABLE PYTHON_SITELIB)
87 ENDIF(NOT DEFINED PYTHON_SITELIB)
88
89
90 ## Subdirectories ##############################################################
91 SET(COMMON_FOLDER ${PROJECT_SOURCE_DIR}/common)
92 SET(CLIENT_FOLDER ${PROJECT_SOURCE_DIR}/client)
93 SET(SERVER_FOLDER ${PROJECT_SOURCE_DIR}/server)
94 SET(CONTAINER_SUPPORT_FOLDER ${PROJECT_SOURCE_DIR}/container-support)
95 SET(CONTAINER_DAEMON_FOLDER ${PROJECT_SOURCE_DIR}/container-daemon)
96 SET(TESTS_FOLDER ${PROJECT_SOURCE_DIR}/tests)
97 SET(UNIT_TESTS_FOLDER ${TESTS_FOLDER}/unit_tests)
98 SET(CLI_FOLDER ${PROJECT_SOURCE_DIR}/cli)
99
100 IF(NOT DEFINED SYSCONF_INSTALL_DIR)
101     SET(SYSCONF_INSTALL_DIR "/etc")
102 ENDIF(NOT DEFINED SYSCONF_INSTALL_DIR)
103
104 IF(NOT DEFINED LIB_INSTALL_DIR)
105     SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
106 ENDIF(NOT DEFINED LIB_INSTALL_DIR)
107
108 IF(NOT DEFINED INCLUDE_INSTALL_DIR)
109     SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
110 ENDIF(NOT DEFINED INCLUDE_INSTALL_DIR)
111
112 IF(NOT DEFINED SCRIPT_INSTALL_DIR)
113     SET(SCRIPT_INSTALL_DIR "${CMAKE_INSTALL_FULL_SBINDIR}")
114 ENDIF(NOT DEFINED SCRIPT_INSTALL_DIR)
115
116 IF(NOT DEFINED SHARE_INSTALL_PREFIX)
117     SET(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_FULL_DATAROOTDIR}")
118 ENDIF(NOT DEFINED SHARE_INSTALL_PREFIX)
119
120 IF(NOT DEFINED SYSTEMD_UNIT_DIR)
121     SET(SYSTEMD_UNIT_DIR "${LIB_INSTALL_DIR}/systemd/system")
122 ENDIF(NOT DEFINED SYSTEMD_UNIT_DIR)
123
124 SET(SC_CONFIG_INSTALL_DIR ${SYSCONF_INSTALL_DIR}/security-containers)
125 SET(SC_DATA_INSTALL_DIR ${SHARE_INSTALL_PREFIX}/security-containers)
126
127 ADD_SUBDIRECTORY(${CLIENT_FOLDER})
128 ADD_SUBDIRECTORY(${SERVER_FOLDER})
129 ADD_SUBDIRECTORY(${CONTAINER_SUPPORT_FOLDER})
130 ADD_SUBDIRECTORY(${CONTAINER_DAEMON_FOLDER})
131 ADD_SUBDIRECTORY(${TESTS_FOLDER})
132 ADD_SUBDIRECTORY(${CLI_FOLDER})
133