summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmake.cxx8
-rw-r--r--Tests/RunCMake/CMakePresets/CMakePresets.json.in5
-rw-r--r--Tests/RunCMake/CMakePresets/GoodNoSourceArg.cmake3
-rw-r--r--Tests/RunCMake/CMakePresets/RunCMakeTest.cmake7
4 files changed, 22 insertions, 1 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index f4ab1b0..60a493c 100644
--- a/Source/cmake.cxx
+++ b/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 "
diff --git a/Tests/RunCMake/CMakePresets/CMakePresets.json.in b/Tests/RunCMake/CMakePresets/CMakePresets.json.in
index a347120..54e4140 100644
--- a/Tests/RunCMake/CMakePresets/CMakePresets.json.in
+++ b/Tests/RunCMake/CMakePresets/CMakePresets.json.in
@@ -170,6 +170,11 @@
"binaryDir": "${sourceDir}/build"
},
{
+ "name": "GoodNoSourceArg",
+ "generator": "@RunCMake_GENERATOR@",
+ "binaryDir": "${sourceDir}/build"
+ },
+ {
"name": "GoodInheritanceParentBase",
"hidden": true,
"generator": "@RunCMake_GENERATOR@",
diff --git a/Tests/RunCMake/CMakePresets/GoodNoSourceArg.cmake b/Tests/RunCMake/CMakePresets/GoodNoSourceArg.cmake
new file mode 100644
index 0000000..49e7a25
--- /dev/null
+++ b/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")
diff --git a/Tests/RunCMake/CMakePresets/RunCMakeTest.cmake b/Tests/RunCMake/CMakePresets/RunCMakeTest.cmake
index 2caa66a..1ffda3d 100644
--- a/Tests/RunCMake/CMakePresets/RunCMakeTest.cmake
+++ b/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)