summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-06-10 15:05:35 (GMT)
committerKitware Robot <kwrobot@kitware.com>2022-06-10 15:05:44 (GMT)
commitdfd06aa101c3cfcc5588b9f9ecc7eab9cb361965 (patch)
treefd3ecc4b7a7b262a051b13abdd71c71d7c20c70c /Help
parent32607abd0ba2e97b15889c081080515aaab484db (diff)
parentec08bc17526a7e22c1a18d5262ca0ca0c391ec6e (diff)
downloadCMake-dfd06aa101c3cfcc5588b9f9ecc7eab9cb361965.zip
CMake-dfd06aa101c3cfcc5588b9f9ecc7eab9cb361965.tar.gz
CMake-dfd06aa101c3cfcc5588b9f9ecc7eab9cb361965.tar.bz2
Merge topic 'CheckIPOSupported-honor-flags'
ec08bc1752 CheckIPOSupported: Compile check using flags of calling project Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !7343
Diffstat (limited to 'Help')
-rw-r--r--Help/manual/cmake-policies.7.rst2
-rw-r--r--Help/policy/CMP0138.rst20
-rw-r--r--Help/release/3.24.rst5
3 files changed, 25 insertions, 2 deletions
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst
index d99afe3..43eb200 100644
--- a/Help/manual/cmake-policies.7.rst
+++ b/Help/manual/cmake-policies.7.rst
@@ -59,7 +59,7 @@ Policies Introduced by CMake 3.24
:maxdepth: 1
CMP0139: The if() command supports path comparisons using PATH_EQUAL operator. </policy/CMP0139>
- CMP0138: Placeholder for reverted policy. </policy/CMP0138>
+ CMP0138: CheckIPOSupported uses flags from calling project. </policy/CMP0138>
CMP0137: try_compile() passes platform variables in project mode. </policy/CMP0137>
CMP0136: Watcom runtime library flags are selected by an abstraction. </policy/CMP0136>
CMP0135: ExternalProject ignores timestamps in archives by default for the URL download method. </policy/CMP0135>
diff --git a/Help/policy/CMP0138.rst b/Help/policy/CMP0138.rst
index c7f0e2d..a86849d 100644
--- a/Help/policy/CMP0138.rst
+++ b/Help/policy/CMP0138.rst
@@ -3,7 +3,25 @@ CMP0138
.. versionadded:: 3.24
-Placeholder for reverted policy.
+:module:`CheckIPOSupported` uses flags from calling project.
+
+The :module:`CheckIPOSupported` module :command:`check_ipo_supported`
+command compiles a test project to determine whether the toolchain
+supports :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION`. CMake 3.23 and
+below run the check with the default values of the
+:variable:`CMAKE_<LANG>_FLAGS` and :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>`
+variables for the current environment and toolchain settings.
+However, some projects may modify these flag variables to add
+flags that affect availability of the toolchain's IPO features.
+CMake 3.24 and above prefer to honor the calling project's values
+for these variables. This policy provides compatibility for projects
+that have not been updated to expect this behavior.
+
+The ``OLD`` behavior for this policy is to ignore the calling
+project's values of :variable:`CMAKE_<LANG>_FLAGS` and
+:variable:`CMAKE_<LANG>_FLAGS_<CONFIG>`. The ``NEW`` behavior
+for this policy is to use the values of those variables as
+compiler flags in the test project.
This policy was introduced in CMake version 3.24. Use the
:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
diff --git a/Help/release/3.24.rst b/Help/release/3.24.rst
index f347acb..4bde23f 100644
--- a/Help/release/3.24.rst
+++ b/Help/release/3.24.rst
@@ -323,6 +323,11 @@ Other Changes
etc. when enabling the corresponding language during the first CMake run in
a build directory. See policy :policy:`CMP0132`.
+* The :module:`CheckIPOSupported` module :command:`check_ipo_supported`
+ command now uses the caller's :variable:`CMAKE_<LANG>_FLAGS`
+ and :variable:`CMAKE_<LANG>_FLAGS_<CONFIG>` values.
+ See policy :policy:`CMP0138`.
+
* The :generator:`MSYS Makefiles` and :generator:`MinGW Makefiles`
generators, when a compiler is not explicitly specified, now select
the first compiler (of any name) found in directories listed by the