21 lines
653 B
CMake
21 lines
653 B
CMake
# SPDX-FileCopyrightText: Copyright 2025 crueter
|
|
# SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
## UseLTO ##
|
|
|
|
# Enable Interprocedural Optimization (IPO).
|
|
# Self-explanatory.
|
|
|
|
option(ENABLE_LTO "Enable Link-Time Optimization (LTO)" OFF)
|
|
|
|
if (ENABLE_LTO)
|
|
include(CheckIPOSupported)
|
|
check_ipo_supported(RESULT COMPILER_SUPPORTS_LTO)
|
|
if(NOT COMPILER_SUPPORTS_LTO)
|
|
message(FATAL_ERROR
|
|
"Your compiler does not support interprocedural optimization"
|
|
" (IPO). Disable ENABLE_LTO and try again.")
|
|
endif()
|
|
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
|
|
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ${COMPILER_SUPPORTS_LTO})
|
|
endif() |