summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-06-15 14:04:55 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-06-15 14:05:02 (GMT)
commitd3b981ab3ec7a0f66d408aa33700dfe4d570adff (patch)
treecf98d8d75aae1db10f1cf84944794bab338e9a5d /Modules
parentdf6f3ef9a6a2de945f43bf1f60e19d60f3137188 (diff)
parentba247ccabab05c0aad4fe7f56dd020bfa8ff4583 (diff)
downloadCMake-d3b981ab3ec7a0f66d408aa33700dfe4d570adff.zip
CMake-d3b981ab3ec7a0f66d408aa33700dfe4d570adff.tar.gz
CMake-d3b981ab3ec7a0f66d408aa33700dfe4d570adff.tar.bz2
Merge topic 'ipo-per-lang'
ba247cca IPO: Consider support for each language separately Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !964
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CheckIPOSupported.cmake18
-rw-r--r--Modules/Compiler/Clang.cmake4
-rw-r--r--Modules/Compiler/GNU.cmake6
-rw-r--r--Modules/Compiler/QCC.cmake4
-rw-r--r--Modules/Platform/Linux-Intel.cmake8
5 files changed, 21 insertions, 19 deletions
diff --git a/Modules/CheckIPOSupported.cmake b/Modules/CheckIPOSupported.cmake
index 6bbde13..e04ab1c 100644
--- a/Modules/CheckIPOSupported.cmake
+++ b/Modules/CheckIPOSupported.cmake
@@ -207,15 +207,17 @@ function(check_ipo_supported)
endif()
endif()
- if(NOT _CMAKE_IPO_SUPPORTED_BY_CMAKE)
- _ipo_not_supported("CMake doesn't support IPO for current compiler")
- return()
- endif()
+ foreach(lang ${languages})
+ if(NOT _CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE)
+ _ipo_not_supported("CMake doesn't support IPO for current ${lang} compiler")
+ return()
+ endif()
- if(NOT _CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER)
- _ipo_not_supported("Compiler doesn't support IPO")
- return()
- endif()
+ if(NOT _CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER)
+ _ipo_not_supported("${lang} compiler doesn't support IPO")
+ return()
+ endif()
+ endforeach()
if(CMAKE_GENERATOR MATCHES "^Visual Studio ")
_ipo_not_supported("CMake doesn't support IPO for current generator")
diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake
index ef7ff2e..7d476f9 100644
--- a/Modules/Compiler/Clang.cmake
+++ b/Modules/Compiler/Clang.cmake
@@ -30,8 +30,8 @@ else()
set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=")
endif()
- set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES)
- set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
string(COMPARE EQUAL "${CMAKE_${lang}_COMPILER_ID}" "AppleClang" __is_apple_clang)
diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake
index e2739a8..675e505 100644
--- a/Modules/Compiler/GNU.cmake
+++ b/Modules/Compiler/GNU.cmake
@@ -48,14 +48,14 @@ macro(__compiler_gnu lang)
set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
endif()
- set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES)
- set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
# '-flto' introduced since GCC 4.5:
# * https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/Option-Summary.html (no)
# * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Option-Summary.html (yes)
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.5)
- set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
set(__lto_flags -flto)
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7)
diff --git a/Modules/Compiler/QCC.cmake b/Modules/Compiler/QCC.cmake
index 695a138..0da7050 100644
--- a/Modules/Compiler/QCC.cmake
+++ b/Modules/Compiler/QCC.cmake
@@ -13,8 +13,8 @@ macro(__compiler_qcc lang)
set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-Wp,-isystem,")
set(CMAKE_DEPFILE_FLAGS_${lang} "-Wc,-MD,<DEPFILE>,-MT,<OBJECT>,-MF,<DEPFILE>")
- set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO)
- set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE NO)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO)
unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO)
diff --git a/Modules/Platform/Linux-Intel.cmake b/Modules/Platform/Linux-Intel.cmake
index 6e2978a..ee9aac2 100644
--- a/Modules/Platform/Linux-Intel.cmake
+++ b/Modules/Platform/Linux-Intel.cmake
@@ -30,7 +30,7 @@ macro(__linux_compiler_intel lang)
# executables that use dlopen but do not set ENABLE_EXPORTS.
set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-rdynamic")
- set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES)
+ set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES)
if(XIAR)
# INTERPROCEDURAL_OPTIMIZATION
@@ -38,10 +38,10 @@ macro(__linux_compiler_intel lang)
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY_IPO
"${XIAR} cr <TARGET> <LINK_FLAGS> <OBJECTS> "
"${XIAR} -s <TARGET> ")
- set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
- set(_CMAKE_IPO_LEGACY_BEHAVIOR YES)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES)
+ set(_CMAKE_${lang}_IPO_LEGACY_BEHAVIOR YES)
else()
- set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
+ set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO)
endif()
if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 12.0)