ebebc5b2a7
with CMake >= 3.24 use the parent project compiler settings for check_ipo_supported as it might fail otherwise.
35 lines
1.1 KiB
CMake
35 lines
1.1 KiB
CMake
option(CMAKE_COLOR_MAKEFILE "colorful CMake makefile" ON)
|
|
option(CMAKE_VERBOSE_MAKEFILE "verbose CMake makefile" ON)
|
|
option(CMAKE_POSITION_INDEPENDENT_CODE "build with position independent code (-fPIC or -fPIE)" ON)
|
|
option(WITH_LIBRARY_VERSIONING "Use library version triplet" ON)
|
|
option(WITH_BINARY_VERSIONING "Use binary versioning" OFF)
|
|
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
|
|
|
# known issue on android, thus disabled until we support newer CMake
|
|
# https://github.com/android/ndk/issues/1444
|
|
if (NOT ANDROID)
|
|
cmake_policy(SET CMP0069 NEW)
|
|
if(CMAKE_VERSION GREATER_EQUAL "3.24.0")
|
|
cmake_policy(SET CMP0138 NEW)
|
|
endif()
|
|
include(CheckIPOSupported)
|
|
check_ipo_supported(RESULT supported OUTPUT error)
|
|
if (NOT supported)
|
|
message(WARNING "LTO not supported, got ${error}")
|
|
endif()
|
|
|
|
option(CMAKE_INTERPROCEDURAL_OPTIMIZATION "build with link time optimization" ${supported})
|
|
endif()
|
|
|
|
# Default to release build type
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "project default")
|
|
endif()
|
|
|
|
include(PreventInSourceBuilds)
|
|
include(GNUInstallDirsWrapper)
|
|
include(MSVCRuntime)
|
|
include(ConfigureRPATH)
|
|
include(ClangTidy)
|
|
|