1
0
Fork 0

Added support of IPO optimizations.

Signed-off-by: Vitaly Zaitsev <vitaly@easycoding.org>
This commit is contained in:
Vitaly Zaitsev 2020-01-24 14:01:40 +01:00 committed by John Preston
parent 94bdb64c38
commit b944efa1f3
2 changed files with 11 additions and 5 deletions

View file

@ -41,7 +41,7 @@ function(init_target target_name) # init_target(my_target folder_name)
XCODE_ATTRIBUTE_GCC_OPTIMIZATION_LEVEL $<IF:$<CONFIG:Debug>,0,fast>
XCODE_ATTRIBUTE_LLVM_LTO $<IF:$<CONFIG:Debug>,NO,YES>
)
if (WIN32)
if (WIN32 OR DESKTOP_APP_ENABLE_IPO_OPTIMIZATIONS)
set_target_properties(${target_name} PROPERTIES
INTERPROCEDURAL_OPTIMIZATION_RELEASE True
INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO True

View file

@ -25,6 +25,12 @@ option(DESKTOP_APP_DISABLE_CRASH_REPORTS "Disable crash report generation." ${DE
option(DESKTOP_APP_USE_PACKAGED_RLOTTIE "Find rlottie using CMake instead of bundled one." ${DESKTOP_APP_USE_PACKAGED})
option(DESKTOP_APP_USE_PACKAGED_FONTS "Use preinstalled fonts instead of bundled one." ${DESKTOP_APP_USE_PACKAGED})
option(DESKTOP_APP_ENABLE_IPO_OPTIMIZATIONS "Enable IPO build optimizations." OFF)
if (DESKTOP_APP_ENABLE_IPO_OPTIMIZATIONS AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message(WARNING "Clang cannot build Qt applications with IPO enabled due to upstream bug: https://bugreports.qt.io/browse/QTBUG-61710.")
set(DESKTOP_APP_ENABLE_IPO_OPTIMIZATIONS OFF)
endif()
if (DESKTOP_APP_SPECIAL_TARGET STREQUAL ""
OR DESKTOP_APP_SPECIAL_TARGET STREQUAL "uwp"
OR DESKTOP_APP_SPECIAL_TARGET STREQUAL "macstore")
@ -59,10 +65,10 @@ else()
report_bad_special_target()
endif()
endif()
if (NOT DESKTOP_APP_USE_PACKAGED)
set(CMAKE_AR /usr/bin/gcc-ar)
set(CMAKE_RANLIB /usr/bin/gcc-ranlib)
set(CMAKE_NM /usr/bin/gcc-nm)
if (NOT DESKTOP_APP_USE_PACKAGED OR DESKTOP_APP_ENABLE_IPO_OPTIMIZATIONS)
set(CMAKE_AR "gcc-ar")
set(CMAKE_RANLIB "gcc-ranlib")
set(CMAKE_NM "gcc-nm")
endif()
endif()