Ver código fonte

Merge topic 'file-GENERATE-arg-parsing'

88f90a72f1 file(GENERATE): Restore INPUT|CONTENT parse checking

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Merge-request: !8694
Brad King 2 anos atrás
pai
commit
c05d06c6ed

+ 2 - 1
Source/cmFileCommand.cxx

@@ -2606,8 +2606,9 @@ bool HandleGenerateCommand(std::vector<std::string> const& args,
     return false;
   }
   const bool inputIsContent = arguments.ParsedKeywords[1] == "CONTENT"_s;
-  if (!inputIsContent && arguments.ParsedKeywords[1] == "INPUT") {
+  if (!inputIsContent && arguments.ParsedKeywords[1] != "INPUT") {
     status.SetError("Unknown argument to GENERATE subcommand.");
+    return false;
   }
   std::string const& input =
     inputIsContent ? *arguments.Content : *arguments.Input;

+ 1 - 0
Tests/RunCMake/File_Generate/OutOfOrderArgs-result.txt

@@ -0,0 +1 @@
+1

+ 4 - 0
Tests/RunCMake/File_Generate/OutOfOrderArgs-stderr.txt

@@ -0,0 +1,4 @@
+^CMake Error at OutOfOrderArgs\.cmake:[0-9]+ \(file\):
+  file Unknown argument to GENERATE subcommand\.
+Call Stack \(most recent call first\):
+  CMakeLists\.txt:[0-9]+ \(include\)$

+ 4 - 0
Tests/RunCMake/File_Generate/OutOfOrderArgs.cmake

@@ -0,0 +1,4 @@
+file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/output.txt"
+     CONDITION 1
+     CONTENT "CONTENT argument"
+     )

+ 1 - 0
Tests/RunCMake/File_Generate/RunCMakeTest.cmake

@@ -15,6 +15,7 @@ endif()
 run_cmake(EmptyCondition1)
 run_cmake(EmptyCondition2)
 run_cmake(BadCondition)
+run_cmake(OutOfOrderArgs)
 run_cmake(DebugEvaluate)
 run_cmake(GenerateSource)
 run_cmake(InputAndContent)