CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0) IF(POLICY CMP0020) CMAKE_POLICY(SET CMP0020 NEW) ENDIF() IF(POLICY CMP0046) CMAKE_POLICY(SET CMP0046 NEW) ENDIF() IF(POLICY CMP0048) CMAKE_POLICY(SET CMP0048 NEW) ENDIF() IF(POLICY CMP0054) CMAKE_POLICY(SET CMP0054 NEW) ENDIF() IF(POLICY CMP0063) CMAKE_POLICY(SET CMP0063 NEW) ENDIF() IF(POLICY CMP0071) CMAKE_POLICY(SET CMP0071 NEW) ENDIF() IF(POLICY CMP0074) CMAKE_POLICY(SET CMP0074 NEW) ENDIF() # "tools.only" can be defined to disable the normal build and enable # cmdline "tools" only. For example: "make format" or "make package_source" IF(tools.only) SET(LANGUAGES NONE) ELSE() SET(LANGUAGES CXX) ENDIF() PROJECT(AusweisApp2 VERSION 1.18.2 LANGUAGES ${LANGUAGES}) # Set TWEAK if not defined in PROJECT_VERSION above to # have a valid tweak version without propagating it IF(NOT PROJECT_VERSION_TWEAK) SET(PROJECT_VERSION_TWEAK 0) ENDIF() IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/dist" CACHE PATH "default install path" FORCE) ENDIF() SET(CMAKE_DIR "${PROJECT_SOURCE_DIR}/cmake") SET(CMAKE_MODULE_PATH "${CMAKE_DIR}") OPTION(BUILD_SHARED_LIBS "Enable build of shared libraries") INCLUDE(Helper) IF(NOT VENDOR) SET(VENDOR_FILE "${PROJECT_SOURCE_DIR}/vendor.txt") IF(EXISTS "${VENDOR_FILE}") FILE(READ "${VENDOR_FILE}" VENDOR) STRING(STRIP "${VENDOR}" VENDOR) ELSE() SET(VENDOR AusweisApp2_CE) # CommunityEdition ENDIF() ENDIF() IF(VENDOR MATCHES "Governikus") SET(VENDOR_GOVERNIKUS TRUE) ENDIF() MESSAGE(STATUS "VENDOR: ${VENDOR}") MESSAGE(STATUS "VERSION: ${PROJECT_VERSION}") IF(ANDROID) GET_ANDROID_TOOLCHAIN_VARS(ANDROID_TOOLCHAIN_PREFIX ANDROID_TOOLCHAIN_MACHINE_NAME) IF(NOT BUILD_PREVIEW) SET(BUILD_PREVIEW false) ENDIF() MESSAGE(STATUS "BUILD_PREVIEW: ${BUILD_PREVIEW}") IF(NOT ANDROID_VERSION_CODE) SET(ANDROID_VERSION_CODE 0) ENDIF() MESSAGE(STATUS "ANDROID_VERSION_CODE: ${ANDROID_VERSION_CODE}") ENDIF() IF(IOS) IF(NOT USE_DISTRIBUTION_PROFILE) SET(USE_DISTRIBUTION_PROFILE false) ENDIF() MESSAGE(STATUS "USE_DISTRIBUTION_PROFILE: ${USE_DISTRIBUTION_PROFILE}") ENDIF() IF("${PROJECT_BINARY_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}" AND NOT FORCE_SOURCE_BUILD) MESSAGE(FATAL_ERROR "in tree building is not supported!") ENDIF() IF(CMAKE_BUILD_TYPE) STRING(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE) ELSE() SET(CMAKE_BUILD_TYPE "DEBUG" CACHE STRING "build type configuration" FORCE) ENDIF() IF(DESKTOP) SET(CMAKE_AUTOUIC ON) ENDIF() SET(CMAKE_AUTOMOC ON) SET(CMAKE_INCLUDE_CURRENT_DIR ON) SET(SRC_DIR ${PROJECT_SOURCE_DIR}/src) SET(TEST_DIR ${PROJECT_SOURCE_DIR}/test) SET(RESOURCES_DIR ${PROJECT_SOURCE_DIR}/resources) SET(PACKAGING_DIR ${RESOURCES_DIR}/packaging) SET(COPYRIGHT_TEXT "Ⓒ\; 2014-2019 ${VENDOR}") STRING(REPLACE " \& " " \& " COPYRIGHT_TEXT ${COPYRIGHT_TEXT}) INCLUDE(Tools) INCLUDE(DVCS) ADD_SUBDIRECTORY(docs) INCLUDE(DefaultFiles) INCLUDE(Appcast) INCLUDE(Messages) IF(tools.only) INCLUDE(Packaging) RETURN() ENDIF() INCLUDE(Libraries) INCLUDE(CompilerFlags) ADD_SUBDIRECTORY(resources) ADD_SUBDIRECTORY(src) IF("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG") INCLUDE(CTest) CONFIGURE_FILE("${CMAKE_DIR}/CTestCustom.cmake.in" "${CMAKE_BINARY_DIR}/CTestCustom.cmake" @ONLY) CONFIGURE_FILE("${RESOURCES_DIR}/sonar-project.properties.in" "${CMAKE_BINARY_DIR}/sonar-project.properties" @ONLY) ENDIF() IF(BUILD_TESTING) ADD_SUBDIRECTORY(test) ENDIF() IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/utils") ADD_SUBDIRECTORY(utils) ENDIF() INCLUDE(Packaging)