Merge topic 'lto-gnu-apple'

f65a6d2cb1 GNU: Do not use "fat-lto-objects" flags for IPO on Apple platforms

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9461
This commit is contained in:
Brad King
2024-04-25 14:41:50 +00:00
committed by Kitware Robot
2 changed files with 7 additions and 3 deletions

View File

@@ -151,7 +151,7 @@ macro(__compiler_gnu lang)
list(APPEND __lto_flags -flto)
endif()
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7)
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7 AND NOT APPLE)
# '-ffat-lto-objects' introduced since GCC 4.7:
# * https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Option-Summary.html (no)
# * https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Option-Summary.html (yes)

View File

@@ -113,11 +113,15 @@ target_link_libraries(FortranCInterface PUBLIC symbols)
if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND
CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 12)
target_compile_options(FortranCInterface PRIVATE "-fno-lto")
target_compile_options(myfort PRIVATE "-flto=auto" "-ffat-lto-objects")
if(NOT APPLE)
target_compile_options(myfort PRIVATE "-flto=auto" "-ffat-lto-objects")
endif()
endif()
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND
CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12)
target_compile_options(symbols PRIVATE "-flto=auto" "-ffat-lto-objects")
if(NOT APPLE)
target_compile_options(symbols PRIVATE "-flto=auto" "-ffat-lto-objects")
endif()
endif()
file(GENERATE OUTPUT exe-$<CONFIG>.cmake CONTENT [[