144 lines
3.4 KiB
CMake
144 lines
3.4 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.5.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()
|
|
|
|
# "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.14.0 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 OR ANDROID OR IOS)
|
|
SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/dist" CACHE PATH "default install path" FORCE)
|
|
ENDIF()
|
|
SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
|
|
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}")
|
|
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(NOT ${CMAKE_BUILD_TYPE} STREQUAL "DEBUG" AND NOT ${CMAKE_BUILD_TYPE} STREQUAL "RELEASE")
|
|
MESSAGE(FATAL_ERROR "CMAKE_BUILD_TYPE is invalid! Available options: RELEASE, DEBUG")
|
|
ENDIF()
|
|
|
|
SET(CMAKE_AUTOMOC ON)
|
|
SET(CMAKE_AUTOUIC 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(EXECUTABLE_BASE_NAME AusweisApp2)
|
|
SET(EXECUTABLE_NAME ${EXECUTABLE_BASE_NAME}${CMAKE_EXECUTABLE_SUFFIX})
|
|
|
|
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_MODULE_PATH}/CTestCustom.cmake.in" "${CMAKE_BINARY_DIR}/CTestCustom.cmake" COPYONLY)
|
|
ENDIF()
|
|
|
|
IF(BUILD_TESTING)
|
|
ADD_SUBDIRECTORY(test)
|
|
ENDIF()
|
|
|
|
ADD_SUBDIRECTORY(utils)
|
|
|
|
INCLUDE(Packaging)
|