summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-02-23 13:50:40 (GMT)
committerBrad King <brad.king@kitware.com>2021-02-23 14:11:44 (GMT)
commit3357d377612fc238ff9da61666041764792034bb (patch)
tree36d7e26521e0a613f2f5ee74d0b3c798a23ee01f
parent2f13fdef0a9471165751f628cb4b2ba7b83b1ae1 (diff)
downloadCMake-3357d377612fc238ff9da61666041764792034bb.zip
CMake-3357d377612fc238ff9da61666041764792034bb.tar.gz
CMake-3357d377612fc238ff9da61666041764792034bb.tar.bz2
cmake: Add support for '--build --prefix=<prefix>' form of the argument
The main `cmake --preset` argument for configure presets supports both forms, so support it for `cmake --build --preset` too. Issue: #21855
-rw-r--r--Help/manual/cmake.1.rst2
-rw-r--r--Source/cmakemain.cxx3
-rw-r--r--Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake12
3 files changed, 13 insertions, 4 deletions
diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst
index 1759b9d..157ea5f 100644
--- a/Help/manual/cmake.1.rst
+++ b/Help/manual/cmake.1.rst
@@ -416,7 +416,7 @@ following options:
Project binary directory to be built. This is required (unless a preset
is specified) and must be first.
-``--preset <preset>``
+``--preset <preset>``, ``--preset=<preset>``
Use a build preset to specify build options. The project binary directory
is inferred from the ``configurePreset`` key. The current working directory
must contain CMake preset files.
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 4260ca2..88ba011 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -511,6 +511,7 @@ int do_build(int ac, char const* const* av)
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;
@@ -584,7 +585,7 @@ int do_build(int ac, char const* const* av)
"Usage: cmake --build [<dir> | --preset <preset>] [options] [-- [native-options]]\n"
"Options:\n"
" <dir> = Project binary directory to be built.\n"
- " --preset <preset>\n"
+ " --preset <preset>, --preset=<preset>\n"
" = Specify a build preset.\n"
" --list-presets\n"
" = List available build presets.\n"
diff --git a/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake b/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake
index 9491524..fd95c2c 100644
--- a/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake
@@ -40,6 +40,7 @@ function(run_cmake_build_presets name CMakePresetsBuild_CONFIGURE_PRESETS CMakeP
endforeach()
endif()
+ set(eq 0)
foreach(BUILD_PRESET ${CMakePresetsBuild_BUILD_PRESETS})
if (EXISTS "${RunCMake_SOURCE_DIR}/${name}-build-${BUILD_PRESET}-check.cmake")
set(RunCMake-check-file "${name}-build-${BUILD_PRESET}-check.cmake")
@@ -47,8 +48,15 @@ function(run_cmake_build_presets name CMakePresetsBuild_CONFIGURE_PRESETS CMakeP
set(RunCMake-check-file "check.cmake")
endif()
- run_cmake_command(${name}-build-${BUILD_PRESET}
- ${CMAKE_COMMAND} "--build" "--preset" "${BUILD_PRESET}" ${ARGN})
+ if(eq)
+ run_cmake_command(${name}-build-${BUILD_PRESET}
+ ${CMAKE_COMMAND} "--build" "--preset=${BUILD_PRESET}" ${ARGN})
+ set(eq 0)
+ else()
+ run_cmake_command(${name}-build-${BUILD_PRESET}
+ ${CMAKE_COMMAND} "--build" "--preset" "${BUILD_PRESET}" ${ARGN})
+ set(eq 1)
+ endif()
endforeach()
endfunction()