summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2023-11-02 16:48:15 (GMT)
committerBrad King <brad.king@kitware.com>2023-12-19 15:00:55 (GMT)
commitca5a300d7fee308a0f32bf677e4bb5d74ebbd0cc (patch)
tree47870643781ec741b668a8dd0403e0d2d34dba31 /Help
parentdaf8da8c8007229490dbdf0b2cd32f0b575f3c00 (diff)
downloadCMake-ca5a300d7fee308a0f32bf677e4bb5d74ebbd0cc.zip
CMake-ca5a300d7fee308a0f32bf677e4bb5d74ebbd0cc.tar.gz
CMake-ca5a300d7fee308a0f32bf677e4bb5d74ebbd0cc.tar.bz2
add_test: Honor CROSSCOMPILING_EMULATOR only when cross-compiling
Add policy CMP0158 to provide compatibility for existing projects. Fixes: #23672
Diffstat (limited to 'Help')
-rw-r--r--Help/command/add_test.rst6
-rw-r--r--Help/manual/cmake-policies.7.rst1
-rw-r--r--Help/policy/CMP0158.rst27
-rw-r--r--Help/release/dev/cmake-test-launcher.rst4
4 files changed, 38 insertions, 0 deletions
diff --git a/Help/command/add_test.rst b/Help/command/add_test.rst
index 37b9563..557c858 100644
--- a/Help/command/add_test.rst
+++ b/Help/command/add_test.rst
@@ -42,6 +42,12 @@ directory the test is created in.
<emulator> <command>
+ .. versionchanged:: 3.29
+
+ The emulator is used only when
+ :variable:`cross-compiling <CMAKE_CROSSCOMPILING>`.
+ See policy :policy:`CMP0158`.
+
* .. versionadded:: 3.29
The target's :prop_tgt:`TEST_LAUNCHER`, if set, will be
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst
index ddde877..35b4497 100644
--- a/Help/manual/cmake-policies.7.rst
+++ b/Help/manual/cmake-policies.7.rst
@@ -57,6 +57,7 @@ Policies Introduced by CMake 3.29
.. toctree::
:maxdepth: 1
+ CMP0158: add_test() honors CMAKE_CROSSCOMPILING_EMULATOR only when cross-compiling. </policy/CMP0158>
CMP0157: Swift compilation mode is selected by an abstraction. </policy/CMP0157>
CMP0156: De-duplicate libraries on link lines based on linker capabilities. </policy/CMP0156>
diff --git a/Help/policy/CMP0158.rst b/Help/policy/CMP0158.rst
new file mode 100644
index 0000000..4289c6d
--- /dev/null
+++ b/Help/policy/CMP0158.rst
@@ -0,0 +1,27 @@
+CMP0158
+-------
+
+.. versionadded:: 3.29
+
+:command:`add_test` honors :variable:`CMAKE_CROSSCOMPILING_EMULATOR` only
+when :variable:`cross-compiling <CMAKE_CROSSCOMPILING>`.
+
+In CMake 3.28 and below, :command:`add_test` unconditionally used the
+:prop_tgt:`CROSSCOMPILING_EMULATOR` target property (initialized by the
+:variable:`CMAKE_CROSSCOMPILING_EMULATOR` variable) to run test commands
+naming executable targets. CMake 3.29 and above prefer to use the emulator
+only when the :variable:`CMAKE_CROSSCOMPILING` variable is enabled. The
+:variable:`CMAKE_TEST_LAUNCHER` variable may be used instead when not
+cross-compiling. This policy provides compatibility for projects that
+have not been updated.
+
+The ``OLD`` behavior for this policy is for :command:`add_test` to use
+the :prop_tgt:`CROSSCOMPILING_EMULATOR` target property unconditionally.
+The ``NEW`` behavior for this policy is for :command:`add_test` to use
+the :prop_tgt:`CROSSCOMPILING_EMULATOR` target property only when
+:variable:`cross-compiling <CMAKE_CROSSCOMPILING>`.
+
+This policy was introduced in CMake version 3.29. Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+Unlike many policies, CMake version |release| does *not* warn
+when this policy is not set and simply uses ``OLD`` behavior.
diff --git a/Help/release/dev/cmake-test-launcher.rst b/Help/release/dev/cmake-test-launcher.rst
index e97498d..a82a8ad 100644
--- a/Help/release/dev/cmake-test-launcher.rst
+++ b/Help/release/dev/cmake-test-launcher.rst
@@ -5,3 +5,7 @@ cmake-test-launcher
:prop_tgt:`TEST_LAUNCHER` target property were added to specify
a launcher to be used by executable targets when invoked by
tests added by the :command:`add_test` command.
+
+* The :command:`add_test` command now honors
+ :variable:`CMAKE_CROSSCOMPILING_EMULATOR` only when cross-compiling.
+ See policy :policy:`CMP0158`.