Re: [PATCH v2 3/4] cmake: use verbatim arguments when invoking clar commands
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Nov 13, 2024, 15:41 UTC
- Message-ID
- <82d3f3aa-b11c-318f-9d47-35e0ebf3ebce@gmx.de>
- In-Reply-To
- <20241111-pks-clar-build-improvements-v2-3-d4794d8d1b30@pks.im>
Hi Patrick,
On Mon, 11 Nov 2024, Patrick Steinhardt wrote:
> Pass the VERBATIM option to `add_custom_command()`. Like this, all > arguments to the commands will be escaped properly for the build tool so > that the invoked command receives each argument unchanged.
I would not be surprised if this `VERBATIM` was unaware of the quirky escaping that the MSYS2 runtime (and therefore the Bash) requires. See the commit message of ad1559252945 (tests: add a helper to stress test argument quoting, 2019-09-18) for details.
Having said that, this patch certainly does not make things _worse_, even if it probably does not have the intended effect on Windows. But then, it does not matter because most git/git source checkouts live at absolute paths that do not need to be quoted.
Ciao, Johannes
Show 33 quoted lines
>
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
> contrib/buildsystems/CMakeLists.txt | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
> index 2db80b7cc3c6aba840f18ffdc78d2cda1877d8cd..8c71f5a1d0290c9204e094fb266f10c7b70af9fb 100644
> --- a/contrib/buildsystems/CMakeLists.txt
> +++ b/contrib/buildsystems/CMakeLists.txt
> @@ -1009,13 +1009,15 @@ add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h"
> "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h"
> ${clar_test_SUITES}
> DEPENDS ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh
> - ${clar_test_SUITES})
> + ${clar_test_SUITES}
> + VERBATIM)
> add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite"
> COMMAND ${SH_EXE} "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh"
> "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h"
> "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite"
> DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh"
> - "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h")
> + "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h"
> + VERBATIM)
>
> add_library(unit-tests-lib ${clar_test_SUITES}
> "${CMAKE_SOURCE_DIR}/t/unit-tests/clar/clar.c"
>
> --
> 2.47.0.229.g8f8d6eee53.dirty
>
>