Просмотр исходного кода

Merge topic 'minusCparse'

379e5f93a9 Tests: Add cases for -{C,D,U} without a source tree
5873815fef cmake: distinguish '-Cpath' from '-C path' in source dir parsing

Acked-by: Kitware Robot <[email protected]>
Merge-request: !2517
Brad King 7 лет назад
Родитель
Сommit
4eb77958d2

+ 15 - 0
Source/cmake.cxx

@@ -676,10 +676,25 @@ void cmake::SetArgs(const std::vector<std::string>& args,
 #endif
     else if (arg.find("-D", 0) == 0) {
       // skip for now
+      // in case '-D var=val' is given, also skip the next
+      // in case '-Dvar=val' is given, don't skip the next
+      if (arg.size() == 2) {
+        ++i;
+      }
     } else if (arg.find("-U", 0) == 0) {
       // skip for now
+      // in case '-U var' is given, also skip the next
+      // in case '-Uvar' is given, don't skip the next
+      if (arg.size() == 2) {
+        ++i;
+      }
     } else if (arg.find("-C", 0) == 0) {
       // skip for now
+      // in case '-C path' is given, also skip the next
+      // in case '-Cpath' is given, don't skip the next
+      if (arg.size() == 2) {
+        ++i;
+      }
     } else if (arg.find("-P", 0) == 0) {
       // skip for now
       i++;

+ 1 - 1
Tests/RunCMake/CommandLine/C-no-file-stderr.txt

@@ -1,3 +1,3 @@
 ^CMake Error: Error processing file: nosuchcachefile.txt
-CMake Error: The source directory ".*/Tests/RunCMake/CommandLine/C-no-file-build/nosuchcachefile.txt" does not exist.
+CMake Error: The source directory ".*/Tests/RunCMake/CommandLine/C-no-file-build" does not appear to contain CMakeLists.txt.
 Specify --help for usage, or press the help button on the CMake GUI.$

+ 1 - 0
Tests/RunCMake/CommandLine/Cno-file-result.txt

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

+ 3 - 0
Tests/RunCMake/CommandLine/Cno-file-stderr.txt

@@ -0,0 +1,3 @@
+^CMake Error: Error processing file: nosuchcachefile.txt
+CMake Error: The source directory ".*/Tests/RunCMake/CommandLine/Cno-file-build" does not appear to contain CMakeLists.txt.
+Specify --help for usage, or press the help button on the CMake GUI.$

+ 1 - 0
Tests/RunCMake/CommandLine/D-no-src-result.txt

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

+ 2 - 0
Tests/RunCMake/CommandLine/D-no-src-stderr.txt

@@ -0,0 +1,2 @@
+^CMake Error: The source directory ".*/Tests/RunCMake/CommandLine/D-no-src-build" does not appear to contain CMakeLists.txt.
+Specify --help for usage, or press the help button on the CMake GUI.$

+ 1 - 0
Tests/RunCMake/CommandLine/Dno-src-result.txt

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

+ 2 - 0
Tests/RunCMake/CommandLine/Dno-src-stderr.txt

@@ -0,0 +1,2 @@
+^CMake Error: The source directory ".*/Tests/RunCMake/CommandLine/Dno-src-build" does not appear to contain CMakeLists.txt.
+Specify --help for usage, or press the help button on the CMake GUI.$

+ 5 - 0
Tests/RunCMake/CommandLine/RunCMakeTest.cmake

@@ -6,10 +6,15 @@ run_cmake_command(NoArgs ${CMAKE_COMMAND})
 run_cmake_command(Wizard ${CMAKE_COMMAND} -i)
 run_cmake_command(C-no-arg ${CMAKE_COMMAND} -C)
 run_cmake_command(C-no-file ${CMAKE_COMMAND} -C nosuchcachefile.txt)
+run_cmake_command(Cno-file ${CMAKE_COMMAND} -Cnosuchcachefile.txt)
 run_cmake_command(cache-no-file ${CMAKE_COMMAND} nosuchsubdir/CMakeCache.txt)
 run_cmake_command(lists-no-file ${CMAKE_COMMAND} nosuchsubdir/CMakeLists.txt)
 run_cmake_command(D-no-arg ${CMAKE_COMMAND} -D)
+run_cmake_command(D-no-src ${CMAKE_COMMAND} -D VAR=VALUE)
+run_cmake_command(Dno-src ${CMAKE_COMMAND} -DVAR=VALUE)
 run_cmake_command(U-no-arg ${CMAKE_COMMAND} -U)
+run_cmake_command(U-no-src ${CMAKE_COMMAND} -U VAR)
+run_cmake_command(Uno-src ${CMAKE_COMMAND} -UVAR)
 run_cmake_command(E-no-arg ${CMAKE_COMMAND} -E)
 run_cmake_command(E_capabilities ${CMAKE_COMMAND} -E capabilities)
 run_cmake_command(E_capabilities-arg ${CMAKE_COMMAND} -E capabilities --extra-arg)

+ 1 - 0
Tests/RunCMake/CommandLine/U-no-src-result.txt

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

+ 2 - 0
Tests/RunCMake/CommandLine/U-no-src-stderr.txt

@@ -0,0 +1,2 @@
+^CMake Error: The source directory ".*/Tests/RunCMake/CommandLine/U-no-src-build" does not appear to contain CMakeLists.txt.
+Specify --help for usage, or press the help button on the CMake GUI.$

+ 1 - 0
Tests/RunCMake/CommandLine/Uno-src-result.txt

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

+ 2 - 0
Tests/RunCMake/CommandLine/Uno-src-stderr.txt

@@ -0,0 +1,2 @@
+^CMake Error: The source directory ".*/Tests/RunCMake/CommandLine/Uno-src-build" does not appear to contain CMakeLists.txt.
+Specify --help for usage, or press the help button on the CMake GUI.$