AusweisApp2/CMakeLists.txt

150 lines
3.5 KiB
CMake

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 "&#9400\; 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)