parent
9ce4323380
commit
5395839fbb
23
utils.cmake
23
utils.cmake
|
@ -40,7 +40,7 @@ function(setup_project)
|
|||
cmake_policy(SET CMP0141 NEW)
|
||||
endif()
|
||||
# Introduced by CMP0141.
|
||||
if(MSVC AND NOT DEFINED CMAKE_MSVC_DEBUG_INFORMATION_FORMAT)
|
||||
if(NOT DEFINED CMAKE_MSVC_DEBUG_INFORMATION_FORMAT)
|
||||
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>" PARENT_SCOPE)
|
||||
endif()
|
||||
# Improve language standard and extension selection.
|
||||
|
@ -76,16 +76,16 @@ function(setup_project)
|
|||
cmake_policy(SET CMP0091 NEW)
|
||||
endif()
|
||||
# Introduced by CMP0091.
|
||||
if(MSVC AND NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
|
||||
if(NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL" PARENT_SCOPE)
|
||||
endif()
|
||||
# Add correct link flags for PIE (Position Independent Executable).
|
||||
if(POLICY CMP0083)
|
||||
cmake_policy(SET CMP0083 NEW)
|
||||
endif()
|
||||
#if(NOT DEFINED CMAKE_BUILD_TYPE)
|
||||
# set(CMAKE_BUILD_TYPE "Release" PARENT_SCOPE)
|
||||
#endif()
|
||||
if(NOT DEFINED CMAKE_BUILD_TYPE AND NOT DEFINED CMAKE_CONFIGURATION_TYPES)
|
||||
set(CMAKE_BUILD_TYPE "Release" PARENT_SCOPE)
|
||||
endif()
|
||||
if(PROJ_ARGS_ENABLE_LTO)
|
||||
# MinGW has many bugs when LTO is enabled, and they are all very
|
||||
# hard to workaround, so just don't enable LTO at all for MinGW.
|
||||
|
@ -105,14 +105,15 @@ function(setup_project)
|
|||
endif()
|
||||
endif()
|
||||
endif()
|
||||
include(GNUInstallDirs)
|
||||
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin" PARENT_SCOPE)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}" PARENT_SCOPE)
|
||||
endif()
|
||||
if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib" PARENT_SCOPE)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}" PARENT_SCOPE)
|
||||
endif()
|
||||
if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib" PARENT_SCOPE)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}" PARENT_SCOPE)
|
||||
endif()
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON PARENT_SCOPE)
|
||||
set(CMAKE_LINK_DEPENDS_NO_SHARED ON PARENT_SCOPE)
|
||||
|
@ -120,6 +121,12 @@ function(setup_project)
|
|||
include(CheckPIESupported)
|
||||
check_pie_supported() # This function must be called to ensure CMake adds -fPIE to the linker flags.
|
||||
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON PARENT_SCOPE)
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON PARENT_SCOPE)
|
||||
if(APPLE)
|
||||
set(CMAKE_MACOSX_RPATH ON PARENT_SCOPE)
|
||||
else()
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}" PARENT_SCOPE)
|
||||
endif()
|
||||
if(PROJ_ARGS_QT_PROJECT)
|
||||
set(CMAKE_AUTOUIC ON PARENT_SCOPE)
|
||||
set(CMAKE_AUTOMOC ON PARENT_SCOPE)
|
||||
|
|
Loading…
Reference in New Issue