CheckIPOSupported
Check whether the compiler supports an interprocedural optimization (IPO/LTO). Use this before enabling the INTERPROCEDURAL_OPTIMIZATION target property.
-
check_ipo_supported -
check_ipo_supported([RESULT <result>] [OUTPUT <output>] [LANGUAGES <lang>...])Options are:
-
RESULT <result> - Set
<result>variable toYESif IPO is supported by the compiler andNOotherwise. If this option is not given then the command will issue a fatal error if IPO is not supported. -
OUTPUT <output> - Set
<output>variable with details about any error. -
LANGUAGES <lang>... - Specify languages whose compilers to check. Languages
C,CXX, andFortranare supported.
-
It makes no sense to use this module when CMP0069 is set to OLD so module will return error in this case. See policy CMP0069 for details.
Examples
check_ipo_supported() # fatal error if IPO is not supported set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
# Optional IPO. Do not use IPO if it's not supported by compiler.
check_ipo_supported(RESULT result OUTPUT output)
if(result)
set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
else()
message(WARNING "IPO is not supported: ${output}")
endif()
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/module/CheckIPOSupported.html