From 20f059d0254f2271db4232c8e7009bee1aa748e7 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 17 Sep 2024 09:20:58 -0400 Subject: [PATCH] execute_process: Warn on unknown ENCODING value --- Source/cmExecuteProcessCommand.cxx | 5 +++++ Tests/RunCMake/execute_process/EncodingUnknown-stderr.txt | 5 +++++ Tests/RunCMake/execute_process/EncodingUnknown.cmake | 1 + Tests/RunCMake/execute_process/RunCMakeTest.cmake | 1 + 4 files changed, 12 insertions(+) create mode 100644 Tests/RunCMake/execute_process/EncodingUnknown-stderr.txt create mode 100644 Tests/RunCMake/execute_process/EncodingUnknown.cmake diff --git a/Source/cmExecuteProcessCommand.cxx b/Source/cmExecuteProcessCommand.cxx index 97d0afe8b3..555977c135 100644 --- a/Source/cmExecuteProcessCommand.cxx +++ b/Source/cmExecuteProcessCommand.cxx @@ -308,6 +308,11 @@ bool cmExecuteProcessCommand(std::vector const& args, if (cm::optional maybeEncoding = cmProcessOutput::FindEncoding(*arguments.Encoding)) { encoding = *maybeEncoding; + } else { + status.GetMakefile().IssueMessage( + MessageType::AUTHOR_WARNING, + cmStrCat("ENCODING option given unknown value \"", *arguments.Encoding, + "\". Ignoring.")); } } cmProcessOutput processOutput(encoding); diff --git a/Tests/RunCMake/execute_process/EncodingUnknown-stderr.txt b/Tests/RunCMake/execute_process/EncodingUnknown-stderr.txt new file mode 100644 index 0000000000..43c250f9e7 --- /dev/null +++ b/Tests/RunCMake/execute_process/EncodingUnknown-stderr.txt @@ -0,0 +1,5 @@ +^CMake Warning \(dev\) at EncodingUnknown\.cmake:[0-9]+ \(execute_process\): + ENCODING option given unknown value "unknown"\. Ignoring\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) +This warning is for project developers\. Use -Wno-dev to suppress it\.$ diff --git a/Tests/RunCMake/execute_process/EncodingUnknown.cmake b/Tests/RunCMake/execute_process/EncodingUnknown.cmake new file mode 100644 index 0000000000..2a8f65fb53 --- /dev/null +++ b/Tests/RunCMake/execute_process/EncodingUnknown.cmake @@ -0,0 +1 @@ +execute_process(ENCODING unknown COMMAND ${CMAKE_COMMAND} -E true) diff --git a/Tests/RunCMake/execute_process/RunCMakeTest.cmake b/Tests/RunCMake/execute_process/RunCMakeTest.cmake index 2516de08a2..dad6322ee2 100644 --- a/Tests/RunCMake/execute_process/RunCMakeTest.cmake +++ b/Tests/RunCMake/execute_process/RunCMakeTest.cmake @@ -8,6 +8,7 @@ run_cmake_command(MergeOutputFile ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/Mer run_cmake_command(MergeOutputVars ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/MergeOutputVars.cmake) run_cmake(EncodingMissing) +run_cmake(EncodingUnknown) if(TEST_ENCODING_EXE) run_cmake_script(EncodingCMP0176-NEW -DTEST_ENCODING_EXE=${TEST_ENCODING_EXE}) run_cmake_script(EncodingCMP0176-OLD -DTEST_ENCODING_EXE=${TEST_ENCODING_EXE})