kdelibs/cmake/modules/KDE4Defaults.cmake

59 lines
2.2 KiB
CMake
Raw Normal View History

# this is required by cmake >=2.6
cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
# CMP0000: don't require cmake_minimum_version() directly in the top level
# CMakeLists.txt, KDELibs4Config.cmake is good enough
cmake_policy(SET CMP0000 OLD)
# CMP0003: add the link paths to the link command as with cmake 2.4
cmake_policy(SET CMP0003 OLD)
if(NOT CMAKE_VERSION VERSION_LESS "3.3.0")
# CMP0003: enable symbols visibility preset for all targets
cmake_policy(SET CMP0063 NEW)
endif()
if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
cmake_policy(SET CMP0071 OLD)
endif()
2015-09-03 05:08:47 +03:00
# let cmake handle mocking and UI compiling
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
# always include srcdir and builddir in include path, this saves typing
2015-09-03 05:08:47 +03:00
# ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} in about every subdir
2014-11-13 01:04:59 +02:00
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2015-09-03 05:08:47 +03:00
# put the include dirs which are in the source or build tree before all other
# include dirs, so the headers in the sources are preferred over the already
# installed ones
2014-11-13 01:04:59 +02:00
set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON)
# do not duplicate interface includes as system from projects providing
# imported targets in case the include directories are already included
# explicitly (via include_directories() which always uses non-system style),
# reduces the command-line arguments that have to be passed to the compiler and
# most likely the build times
set(CMAKE_NO_SYSTEM_FROM_IMPORTED ON)
# do not export symbols that are not public
set(CMAKE_C_VISIBILITY_PRESET "hidden")
set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
# place all binaries in the same directory
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
# place all libraries, static and shared, in the same directory
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib")
# big number, ensures all source files are included from one unity file
set(CMAKE_UNITY_BUILD_BATCH_SIZE 200)
2015-09-03 05:08:47 +03:00
# define the generic version of the libraries here, this makes it easy to
# advance it when the next KDE release comes. Use this version number for
# libraries
set(GENERIC_LIB_VERSION "4.23")
2014-11-13 01:04:59 +02:00
set(GENERIC_LIB_SOVERSION "4")
if(ENABLE_TESTING)
enable_testing()
endif()