exec_program(): Remove by policy CMP0153

This commit is contained in:
Kyle Edwards 2023-07-24 16:59:28 -04:00
parent 89a692aa18
commit ff12a57d5e
18 changed files with 61 additions and 2 deletions

View File

@ -1,6 +1,10 @@
exec_program
------------
.. versionchanged:: 3.28
This command is available only if policy :policy:`CMP0153` is not set to ``NEW``.
Port projects to the :command:`execute_process` command.
.. deprecated:: 3.0
Use the :command:`execute_process` command instead.

View File

@ -57,6 +57,7 @@ Policies Introduced by CMake 3.28
.. toctree::
:maxdepth: 1
CMP0153: The exec_program command should not be called. </policy/CMP0153>
CMP0152: file(REAL_PATH) resolves symlinks before collapsing ../ components. </policy/CMP0152>
Policies Introduced by CMake 3.27

12
Help/policy/CMP0153.rst Normal file
View File

@ -0,0 +1,12 @@
CMP0153
-------
The :command:`exec_program` command should not be called.
This command has long been superseded by the :command:`execute_process`
command and has been deprecated since CMake 3.0.
.. |disallowed_version| replace:: 3.28
.. include:: DISALLOWED_COMMAND.txt
.. include:: DEPRECATED.txt

View File

@ -0,0 +1,6 @@
exec_program-policy
-------------------
* The :command:`exec_program` command, which has been deprecated since CMake
3.0, has been removed by policy :policy:`CMP0153`. Use the
:command:`execute_process` command instead.

View File

@ -135,7 +135,6 @@ void GetScriptingCommands(cmState* state)
state->AddBuiltinCommand("cmake_path", cmCMakePathCommand);
state->AddBuiltinCommand("cmake_policy", cmCMakePolicyCommand);
state->AddBuiltinCommand("configure_file", cmConfigureFileCommand);
state->AddBuiltinCommand("exec_program", cmExecProgramCommand);
state->AddBuiltinCommand("execute_process", cmExecuteProcessCommand);
state->AddBuiltinCommand("file", cmFileCommand);
state->AddBuiltinCommand("find_file", cmFindFile);
@ -220,6 +219,9 @@ void GetScriptingCommands(cmState* state)
state->AddDisallowedCommand(
"use_mangled_mesa", cmUseMangledMesaCommand, cmPolicies::CMP0030,
"The use_mangled_mesa command should not be called; see CMP0030.");
state->AddDisallowedCommand(
"exec_program", cmExecProgramCommand, cmPolicies::CMP0153,
"The exec_program command should not be called; see CMP0153.");
#endif
}

View File

@ -463,7 +463,9 @@ class cmMakefile;
SELECT( \
POLICY, CMP0152, \
"file(REAL_PATH) resolves symlinks before collapsing ../ components.", 3, \
28, 0, cmPolicies::WARN)
28, 0, cmPolicies::WARN) \
SELECT(POLICY, CMP0153, "The exec_program command should not be called.", \
3, 28, 0, cmPolicies::WARN)
#define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1)
#define CM_FOR_EACH_POLICY_ID(POLICY) \

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,3 @@
^CMake Error at [^
]*/Tests/RunCMake/CMP0153/CMP0153-NEW\.cmake:[0-9]+ \(exec_program\):
The exec_program command should not be called; see CMP0153\.$

View File

@ -0,0 +1 @@
^$

View File

@ -0,0 +1,2 @@
cmake_policy(SET CMP0153 NEW)
exec_program("${CMAKE_COMMAND}" ARGS "-E echo \"exec_program() called\"")

View File

@ -0,0 +1 @@
exec_program\(\) called

View File

@ -0,0 +1,2 @@
cmake_policy(SET CMP0153 OLD)
exec_program("${CMAKE_COMMAND}" ARGS "-E echo \"exec_program() called\"")

View File

@ -0,0 +1,6 @@
^CMake Warning \(dev\) at [^
]*/Tests/RunCMake/CMP0153/CMP0153-WARN\.cmake:[0-9]+ \(exec_program\):
Policy CMP0153 is not set: The exec_program command should not be called\.
Run "cmake --help-policy CMP0153" for policy details\. Use the cmake_policy
command to set the policy and suppress this warning\.
This warning is for project developers\. Use -Wno-dev to suppress it\.$

View File

@ -0,0 +1 @@
exec_program\(\) called

View File

@ -0,0 +1 @@
exec_program("${CMAKE_COMMAND}" ARGS "-E echo \"exec_program() called\"")

View File

@ -0,0 +1,3 @@
cmake_minimum_required(VERSION 3.27)
project(${RunCMake_TEST} NONE)
include(${RunCMake_TEST}.cmake)

View File

@ -0,0 +1,9 @@
include(RunCMake)
function(run_cmp0153 name)
run_cmake_command(${name} ${CMAKE_COMMAND} -P "${RunCMake_SOURCE_DIR}/${name}.cmake")
endfunction()
run_cmp0153(CMP0153-WARN)
run_cmp0153(CMP0153-OLD)
run_cmp0153(CMP0153-NEW)

View File

@ -169,6 +169,8 @@ if(NOT WIN32 OR CYGWIN)
add_RunCMake_test(CMP0152)
endif()
add_RunCMake_test(CMP0153)
# The test for Policy 65 requires the use of the
# CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS variable, which both the VS and Xcode
# generators ignore. The policy will have no effect on those generators.