Enable CMake LTO/IPO support (WITH_LTO option)

Makefiles already support an option to enable link time optimizations.
This is now also possible in CMake by using the WITH_LTO option.
It's turned on by default if the compiler supports these flags.
Note: LTO is part of the inter-procedural optimization (IPO).

Signed-off-by: Kai Buschulte <kai.buschulte@cedalo.com>
pull/2615/head
Kai Buschulte 3 years ago
parent e5cb3d0d58
commit 47d6530ddf

@ -99,6 +99,17 @@ if(WITH_CJSON)
endif()
endif()
option(WITH_LTO "Build with link time optimizations (IPO) / interprocedural optimization (IPO) enabled." ON)
if(WITH_LTO)
include(CheckIPOSupported)
check_ipo_supported(RESULT is_ipo_supported OUTPUT output)
if(is_ipo_supported)
set_property(TARGET common-options PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
else()
message(WARNING "LTO/IPO is not supported: ${output}")
endif()
endif()
# ========================================
# Include projects
# ========================================

@ -158,6 +158,7 @@ Clients:
Build:
- Increased CMake minimal required version to 3.14, which is required for the
preinstalled SQLite3 find module.
- Add an CMake option `WITH_LTO` to enable/disable link time optimization.
2.0.14 - 2021-11-17

Loading…
Cancel
Save