summaryrefslogtreecommitdiffstats
path: root/Source/cmakemain.cxx
diff options
context:
space:
mode:
authorRobert Maynard <rmaynard@nvidia.com>2022-11-14 15:27:59 (GMT)
committerRobert Maynard <rmaynard@nvidia.com>2022-11-14 15:46:17 (GMT)
commit01611f825840553fecdc98edaa128dd8f6ce9801 (patch)
treeb028e54e9f16d80e05cdeb3c028700d68823a9f0 /Source/cmakemain.cxx
parent0e2a73fefd2899a2d5aa3ed99c71539fa6820b03 (diff)
downloadCMake-01611f825840553fecdc98edaa128dd8f6ce9801.zip
CMake-01611f825840553fecdc98edaa128dd8f6ce9801.tar.gz
CMake-01611f825840553fecdc98edaa128dd8f6ce9801.tar.bz2
cmake: --build improve detection of no build dir
Fixes #24157
Diffstat (limited to 'Source/cmakemain.cxx')
-rw-r--r--Source/cmakemain.cxx26
1 files changed, 7 insertions, 19 deletions
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 43bebc1..9f23667 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -522,25 +522,8 @@ int do_build(int ac, char const* const* av)
if (ac >= 3) {
std::vector<std::string> inputArgs;
- bool hasPreset = false;
- for (int i = 2; i < ac; ++i) {
- if (strcmp(av[i], "--list-presets") == 0 ||
- cmHasLiteralPrefix(av[i], "--preset=") ||
- strcmp(av[i], "--preset") == 0) {
- hasPreset = true;
- break;
- }
- }
-
- if (hasPreset) {
- inputArgs.reserve(ac - 2);
- cm::append(inputArgs, av + 2, av + ac);
- } else {
- dir = cmSystemTools::CollapseFullPath(av[2]);
-
- inputArgs.reserve(ac - 3);
- cm::append(inputArgs, av + 3, av + ac);
- }
+ inputArgs.reserve(ac - 2);
+ cm::append(inputArgs, av + 2, av + ac);
decltype(inputArgs.size()) i = 0;
for (; i < inputArgs.size() && !nativeOptionsPassed; ++i) {
@@ -555,6 +538,11 @@ int do_build(int ac, char const* const* av)
break;
}
}
+ if (!matched && i == 0) {
+ dir = cmSystemTools::CollapseFullPath(arg);
+ matched = true;
+ parsed = true;
+ }
if (!(matched && parsed)) {
dir.clear();
if (!matched) {