浏览代码

execute_process: Warn on unknown ENCODING value

Brad King 1 年之前
父节点
当前提交
20f059d025

+ 5 - 0
Source/cmExecuteProcessCommand.cxx

@@ -308,6 +308,11 @@ bool cmExecuteProcessCommand(std::vector<std::string> const& args,
     if (cm::optional<cmProcessOutput::Encoding> 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);

+ 5 - 0
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\.$

+ 1 - 0
Tests/RunCMake/execute_process/EncodingUnknown.cmake

@@ -0,0 +1 @@
+execute_process(ENCODING unknown COMMAND ${CMAKE_COMMAND} -E true)

+ 1 - 0
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})