Refine error/exception handling logic
[platform/core/security/trust-anchor.git] / CMakeLists.txt
1 #  Copyright (c) 2017 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 # @file      CMakeLists.txt
16 # @author    Sangwan kwon (sangwan.kwon@samsung.com)
17 #
18
19 CMAKE_MINIMUM_REQUIRED (VERSION 2.8)
20
21 PROJECT(trust-anchor)
22
23 INCLUDE(FindPkgConfig)
24 INCLUDE(GNUInstallDirs)
25
26 IF(NOT CMAKE_BUILD_TYPE)
27         SET(CMAKE_BUILD_TYPE "DEBUG")
28 ENDIF(NOT CMAKE_BUILD_TYPE)
29
30 STRING(REGEX MATCH "([^.]*)" API_VERSION "${LIB_VERSION}")
31 SET(TANCHOR_INCLUDE ${PROJECT_SOURCE_DIR}/api)
32 SET(TANCHOR_SRC ${PROJECT_SOURCE_DIR}/src)
33 SET(TARGET_TANCHOR_LIB ${LIB_NAME})
34 SET(TARGET_TANCHOR_TEST ${LIB_NAME}-test)
35
36 ADD_DEFINITIONS("-DTANCHOR_USR_DIR=\"${TANCHOR_USR}\"")
37 ADD_DEFINITIONS("-DTANCHOR_GLOBAL_DIR=\"${TANCHOR_GLOBAL}\"")
38 ADD_DEFINITIONS("-DTANCHOR_TEST_DIR=\"${TANCHOR_TEST}\"")
39 ADD_DEFINITIONS("-DTANCHOR_BUNDLE=\"${TANCHOR_BUNDLE}\"")
40 ADD_DEFINITIONS("-DTZ_SYS_CA_CERTS=\"${TZ_SYS_CA_CERTS}\"")
41 ADD_DEFINITIONS("-DTZ_SYS_CA_BUNDLE=\"${TZ_SYS_CA_BUNDLE}\"")
42
43 IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
44         SET(CXX_STD "c++0x")
45 else()
46         SET(CXX_STD "c++11")
47 endif()
48
49 ADD_DEFINITIONS("-fPIC")
50 ADD_DEFINITIONS("-Werror")
51 ADD_DEFINITIONS("-Wall")
52 ADD_DEFINITIONS("-Wextra")
53 ADD_DEFINITIONS("-pedantic")
54 ADD_DEFINITIONS("-pedantic-errors")
55
56 SET(CMAKE_C_FLAGS_PROFILING "-g -O0 -pg")
57 SET(CMAKE_CXX_FLAGS_PROFILING "-g -O0 -pg -std=${CXX_STD} -fno-rtti")
58 SET(CMAKE_C_FLAGS_DEBUG "-g -O0 -ggdb")
59 SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -ggdb -std=${CXX_STD} -fno-rtti")
60 SET(CMAKE_C_FLAGS_RELEASE "-g -O2 -DNDEBUG")
61 SET(CMAKE_CXX_FLAGS_RELEASE "-g -O2 -DNDEBUG -std=${CXX_STD} -fno-rtti")
62 SET(CMAKE_C_FLAGS_CCOV "-g -O0 --coverage")
63 SET(CMAKE_CXX_FLAGS_CCOV "-g -O0 --coverage -std=${CXX_STD} -fno-rtti")
64
65 SET(CMAKE_SHARED_LINKER_FLAGS  "-Wl,--as-needed")
66 SET(CMAKE_EXE_LINKER_FLAGS     "-Wl,--as-needed")
67
68 IF(NOT DEFINED LIB_INSTALL_DIR)
69         SET(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
70 ENDIF(NOT DEFINED LIB_INSTALL_DIR)
71
72 IF(NOT DEFINED INCLUDE_INSTALL_DIR)
73         SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}")
74 ENDIF(NOT DEFINED INCLUDE_INSTALL_DIR)
75
76 IF(NOT DEFINED BIN_INSTALL_DIR)
77         SET(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
78 ENDIF(NOT DEFINED BIN_INSTALL_DIR)
79
80 CONFIGURE_FILE(packaging/trust-anchor.manifest.in trust-anchor.manifest @ONLY)
81
82 ADD_SUBDIRECTORY(api)
83 ADD_SUBDIRECTORY(lib)
84 ADD_SUBDIRECTORY(src)
85 ADD_SUBDIRECTORY(tests)