diff options
author | Robert Maynard <rmaynard@nvidia.com> | 2022-11-14 15:27:59 (GMT) |
---|---|---|
committer | Robert Maynard <rmaynard@nvidia.com> | 2022-11-14 15:46:17 (GMT) |
commit | 01611f825840553fecdc98edaa128dd8f6ce9801 (patch) | |
tree | b028e54e9f16d80e05cdeb3c028700d68823a9f0 /Source/cmakemain.cxx | |
parent | 0e2a73fefd2899a2d5aa3ed99c71539fa6820b03 (diff) | |
download | CMake-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.cxx | 26 |
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) { |