From: Patrick Steinhardt <ps@pks.im>
To: Justin Tobler <jltobler@gmail.com>
Cc: git@vger.kernel.org,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Phillip Wood <phillip.wood123@gmail.com>,
Junio C Hamano <gitster@pobox.com>
Subject: Re: [PATCH v3 2/4] cmake: use SH_EXE to execute clar scripts
Date: Tue, 19 Nov 2024 07:13:01 +0100 [thread overview]
Message-ID: <ZzwsZfNgJck3V45F@pks.im> (raw)
In-Reply-To: <j5dohg2u5vguiffj3dkqimach725ca2yhyzu4cookd6gvjoav2@qizyg7mazhyz>
On Mon, Nov 18, 2024 at 12:47:32PM -0600, Justin Tobler wrote:
> On 24/11/15 08:32AM, Patrick Steinhardt wrote:
> > In 30bf9f0aaa (cmake: set up proper dependencies for generated clar
> > headers, 2024-10-21), we have deduplicated the logic to generate our
> > clar headers by reusing the same scripts that our Makefile does. Despite
> > the deduplication, this refactoring also made us rebuild the headers in
> > case the source files change, which didn't happen previously.
> >
> > The commit also introduced an issue though: we execute the scripts
> > directly, so when the host does not have "/bin/sh" available they will
> > fail. This is for example the case on Windows when importing the CMake
> > project into Microsoft Visual Studio.
> >
> > Address the issue by invoking the scripts with `SH_EXE`, which contains
> > the discovered path of the shell interpreter.
> >
> > While at it, wrap the overly long lines in the CMake build instructions.
> >
> > Signed-off-by: Patrick Steinhardt <ps@pks.im>
> > ---
> > contrib/buildsystems/CMakeLists.txt | 9 ++++++---
> > 1 file changed, 6 insertions(+), 3 deletions(-)
> >
> > diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
> > index da99dc3087a218d30e0fd1044567d7148d0d80a9..2db80b7cc3c6aba840f18ffdc78d2cda1877d8cd 100644
> > --- a/contrib/buildsystems/CMakeLists.txt
> > +++ b/contrib/buildsystems/CMakeLists.txt
> > @@ -1005,10 +1005,13 @@ 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
>
> In the previous patch we used `${SHELL_PATH}` to execute the
> "generate-clar-suites.sh". Here we use `${SH_EXE}` to execute
> "generate-clar-decls.sh". From my understanding this is done to help
> discover the shell on different platforms. Naive question, would this
> also be useful in the former patch?
Yes, it would. I decided to bundle the use of SH_EXE in our CMake build
instructions into a single patch though, which is the third patch, so
that I don't have to explain the change twice.
Patrick
next prev parent reply other threads:[~2024-11-19 6:13 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
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 [this message]
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=ZzwsZfNgJck3V45F@pks.im \
--to=ps@pks.im \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jltobler@gmail.com \
--cc=phillip.wood123@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.