From: Junio C Hamano <gitster@pobox.com>
To: Phillip Wood <phillip.wood123@gmail.com>
Cc: Patrick Steinhardt <ps@pks.im>,
git@vger.kernel.org,
Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: Re: [PATCH 0/3] Build improvements for clar
Date: Mon, 11 Nov 2024 10:34:27 +0900 [thread overview]
Message-ID: <xmqqiksuk0yk.fsf@gitster.g> (raw)
In-Reply-To: <890b423c-9756-4e1b-a6d0-3990f1091f5b@gmail.com> (Phillip Wood's message of "Sun, 10 Nov 2024 14:30:59 +0000")
Phillip Wood <phillip.wood123@gmail.com> writes:
> I've been using the CMake build in Visual Studio the last couple of days
> as my hard drive with linux on it died. I ended up with a slightly
> different fix using "sh -c" rather than putting the awk script inside
> a shell script. See the diff below. I don't have a strong preference
> either way but it would be nice to fix the line wrapping and add
> VERBATIM so that paths containing special characters are quoted correctly
Thanks for comments.
I've committed the same sin number of times, but a scriptlet written
in a third language as a string literal in a shell script is
somewhat awkward to maintain, so I may have slight preference for
your variant. Either way, we are now letting the shell, and not
CMake, to spawn "awk", so if that was the reason why the file needs
to be changed (i.e. CMake perhaps failed to or found a wrong awk),
either of your two approaches would solve that by delegating the
task to the shell.
>
> Best Wishes
>
> Phillip
>
> ---- >8 ----
>
> diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
> index f0a1a75382a..b8a37b3870d 100644
> --- a/contrib/buildsystems/CMakeLists.txt
> +++ b/contrib/buildsystems/CMakeLists.txt
> @@ -989,11 +989,21 @@ parse_makefile_for_scripts(clar_test_SUITES "CLAR_TEST_SUITES" "")
> list(TRANSFORM clar_test_SUITES PREPEND "${CMAKE_SOURCE_DIR}/t/unit-tests/")
> list(TRANSFORM clar_test_SUITES APPEND ".c")
> add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h"
> - COMMAND ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh "${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})
> + COMMAND ${SH_EXE}
> + "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh"
> + "${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}
> + VERBATIM)
> add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite"
> - COMMAND awk -f "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" > "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite"
> - DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h")
> + COMMAND ${SH_EXE} "-c" [[awk -f "$1" "$2" >"$3"]] awk
> + "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk"
> + "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h"
> + "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite"
> + DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk"
> + "${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"
next prev parent reply other threads:[~2024-11-11 1:34 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-08 13:16 [PATCH 0/3] Build improvements for clar Patrick Steinhardt
2024-11-08 13:16 ` [PATCH 1/3] t/unit-tests: convert "clar-generate.awk" into a shell script Patrick Steinhardt
2024-11-08 13:16 ` [PATCH 2/3] cmake: use SH_EXE to execute clar scripts Patrick Steinhardt
2024-11-08 13:16 ` [PATCH 3/3] Makefile: let clar header targets depend on their scripts Patrick Steinhardt
2024-11-10 14:30 ` [PATCH 0/3] Build improvements for clar Phillip Wood
2024-11-11 1:34 ` Junio C Hamano [this message]
2024-11-11 8:29 ` Patrick Steinhardt
2024-11-11 22:52 ` Junio C Hamano
2024-11-11 8:24 ` [PATCH v2 0/4] " Patrick Steinhardt
2024-11-11 8:24 ` [PATCH v2 1/4] t/unit-tests: convert "clar-generate.awk" into a shell script Patrick Steinhardt
2024-11-11 22:58 ` Junio C Hamano
2024-11-12 5:56 ` Patrick Steinhardt
2024-11-11 8:24 ` [PATCH v2 2/4] cmake: use SH_EXE to execute clar scripts Patrick Steinhardt
2024-11-11 8:24 ` [PATCH v2 3/4] cmake: use verbatim arguments when invoking clar commands Patrick Steinhardt
2024-11-13 15:41 ` Johannes Schindelin
2024-11-14 10:28 ` Phillip Wood
2024-11-11 8:25 ` [PATCH v2 4/4] Makefile: let clar header targets depend on their scripts Patrick Steinhardt
2024-11-11 10:09 ` [PATCH v2 0/4] Build improvements for clar Phillip Wood
2024-11-15 7:32 ` [PATCH v3 " Patrick Steinhardt
2024-11-15 7:32 ` [PATCH v3 1/4] t/unit-tests: convert "clar-generate.awk" into a shell script Patrick Steinhardt
2024-11-15 7:32 ` [PATCH v3 2/4] cmake: use SH_EXE to execute clar scripts Patrick Steinhardt
2024-11-18 18:47 ` Justin Tobler
2024-11-19 6:13 ` Patrick Steinhardt
2024-11-15 7:32 ` [PATCH v3 3/4] cmake: use verbatim arguments when invoking clar commands Patrick Steinhardt
2024-11-15 7:32 ` [PATCH v3 4/4] Makefile: let clar header targets depend on their scripts Patrick Steinhardt
2024-11-19 16:51 ` [PATCH v3 0/4] Build improvements for clar Justin Tobler
2024-11-20 1:24 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqiksuk0yk.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=phillip.wood123@gmail.com \
--cc=ps@pks.im \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).