# Copyright (c) 2012-2020 Samsung Electronics Co., Ltd. All rights reserved # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # @file CMakeLists.txt # @author Bartlomiej Grzelewski (b.grzelewski@samsung.com) # @author Pawel Polawski (p.polawski@partner.samsung.com) # @author Piotr Sawicki (p.sawicki2@partner.samsung.com) # @brief # ############################# Check minimum CMake version ##################### CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT("security-tests") ############################# cmake packages ################################## INCLUDE(FindPkgConfig) ############################# compilation defines ############################# # EMPTY ############################# compiler flags ################################## SET(CMAKE_C_FLAGS "-g") SET(CMAKE_CXX_FLAGS "-g -std=c++17") SET(CMAKE_C_FLAGS_PROFILING "-O0 -pg") SET(CMAKE_CXX_FLAGS_PROFILING "-O0 -pg") SET(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") SET(CMAKE_C_FLAGS_RELEASE "-O2") SET(CMAKE_CXX_FLAGS_RELEASE "-O2") SET(SMACK_ENABLE ON) OPTION(DPL_LOG "DPL logs status" ON) OPTION(DPL_WITH_DLOG "DPL DLOG backend" OFF) IF(DPL_LOG) MESSAGE(STATUS "Logging enabled for DPL") ADD_DEFINITIONS("-DDPL_LOGS_ENABLED") IF(DPL_WITH_DLOG) MESSAGE(STATUS "Enable DLOG backend") ADD_DEFINITIONS("-DDPL_DLOG_ENABLED") ENDIF(DPL_WITH_DLOG) ELSE(DPL_LOG) MESSAGE(STATUS "Logging disabled for DPL") ENDIF(DPL_LOG) OPTION(BUILD_ALL_TESTS "Build all tests" ON) IF(BUILD_ALL_TESTS) SET(BUILD_CKM ON) SET(BUILD_SM ON) SET(BUILD_CYNARA ON) SET(BUILD_WEB ON) SET(BUILD_YACA ON) SET(BUILD_NETHER ON) SET(BUILD_ODE ON) SET(BUILD_E2EE_ADAPTATION_LAYER ON) ENDIF(BUILD_ALL_TESTS) # If supported for the target machine, emit position-independent code,suitable # for dynamic linking and avoiding any limit on the size of the global offset # table. This option makes a difference on the m68k, PowerPC and SPARC. # (BJ: our ARM too?) ADD_DEFINITIONS("-fPIC") # Set the default ELF image symbol visibility to hidden - all symbols will be # marked with this unless overridden within the code. #ADD_DEFINITIONS("-fvisibility=hidden") # Set compiler warning flags ADD_DEFINITIONS("-Werror") # Make all warnings into errors. ADD_DEFINITIONS("-Wall") # Generate all warnings ADD_DEFINITIONS("-Wextra") # Generate even more extra warnings ADD_DEFINITIONS("-Wno-variadic-macros") # Inhibit variadic macros warnings (needed for ORM) ADD_DEFINITIONS("-Wno-deprecated") # No warnings about deprecated features ADD_DEFINITIONS("-Wno-deprecated-declarations") # No warnings about deprecated features ADD_DEFINITIONS("-Wno-implicit-fallthrough") # No warnings about switc() statements, often done on purpose ADD_DEFINITIONS("-DCYNARA_DB_DIR=\"${CYNARA_DB_DIR}\"") ADD_DEFINITIONS("-DAPP_USER=\"${APP_USER}\"") # Enabler for popups; this should be done on system-level somewhere, but since it isn't # and we already have such definition in security-manager, lets have it also here ADD_DEFINITIONS("-DASKUSER_ENABLED") IF(SMACK_ENABLE) ADD_DEFINITIONS("-DWRT_SMACK_ENABLED") ENDIF(SMACK_ENABLE) IF(NOT DEFINED SHARE_INSTALL_PREFIX) SET(SHARE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/share") ENDIF(NOT DEFINED SHARE_INSTALL_PREFIX) ############################# Targets names ################################### SET(TARGET_CKM_TEST_COMMON "ckm-test-common") SET(TARGET_CKM_TESTS "ckm-tests") SET(TARGET_CKM_PRIVILEGED_TESTS "ckm-privileged-tests") SET(TARGET_CKMI_TESTS "ckm-integration-tests") SET(COMMON_TARGET_TEST "tests-common") SET(TARGET_E2EE_TESTS "e2ee-tests") ############################# subdirectories ################################## ADD_SUBDIRECTORY(src) IF(BUILD_ALL_TESTS) ADD_SUBDIRECTORY(tests) ENDIF(BUILD_ALL_TESTS)