瀏覽代碼

Merge topic 'cmake-presets-no-path-arg-warning'

cb2d01c182 CMakePresets.json: Don't warn if no path argument is given

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5455
Brad King 5 年之前
父節點
當前提交
db02ccf406

+ 7 - 1
Source/cmake.cxx

@@ -1005,9 +1005,15 @@ void cmake::SetArgs(const std::vector<std::string>& args)
 
   const bool haveSourceDir = !this->GetHomeDirectory().empty();
   const bool haveBinaryDir = !this->GetHomeOutputDirectory().empty();
+  const bool havePreset =
+#ifdef CMAKE_BOOTSTRAP
+    false;
+#else
+    !presetName.empty();
+#endif
 
   if (this->CurrentWorkingMode == cmake::NORMAL_MODE && !haveSourceDir &&
-      !haveBinaryDir) {
+      !haveBinaryDir && !havePreset) {
     this->IssueMessage(
       MessageType::WARNING,
       "No source or binary directory provided. Both will be assumed to be "

+ 5 - 0
Tests/RunCMake/CMakePresets/CMakePresets.json.in

@@ -169,6 +169,11 @@
       "generator": "@RunCMake_GENERATOR@",
       "binaryDir": "${sourceDir}/build"
     },
+    {
+      "name": "GoodNoSourceArg",
+      "generator": "@RunCMake_GENERATOR@",
+      "binaryDir": "${sourceDir}/build"
+    },
     {
       "name": "GoodInheritanceParentBase",
       "hidden": true,

+ 3 - 0
Tests/RunCMake/CMakePresets/GoodNoSourceArg.cmake

@@ -0,0 +1,3 @@
+include(${CMAKE_CURRENT_LIST_DIR}/TestVariable.cmake)
+
+test_variable(CMAKE_BINARY_DIR "" "${CMAKE_SOURCE_DIR}/build")

+ 7 - 0
Tests/RunCMake/CMakePresets/RunCMakeTest.cmake

@@ -179,6 +179,13 @@ unset(RunCMake_TEST_NO_CLEAN)
 unset(CMakePresets_SOURCE_ARG)
 unset(RunCMake_TEST_BINARY_DIR)
 unset(CMakePresets_NO_S_ARG)
+set(CMakePresets_NO_SOURCE_ARGS 1)
+set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/GoodNoSourceArg")
+set(RunCMake_TEST_NO_CLEAN 1)
+run_cmake_presets(GoodNoSourceArg)
+unset(RunCMake_TEST_NO_CLEAN)
+unset(RunCMake_TEST_BINARY_DIR)
+unset(CMakePresets_NO_SOURCE_ARGS)
 run_cmake_presets(GoodInheritanceParent)
 run_cmake_presets(GoodInheritanceChild)
 run_cmake_presets(GoodInheritanceOverride)