git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: git@vger.kernel.org
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	 Phillip Wood <phillip.wood123@gmail.com>,
	 Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v3 2/4] cmake: use SH_EXE to execute clar scripts
Date: Fri, 15 Nov 2024 08:32:42 +0100	[thread overview]
Message-ID: <20241115-pks-clar-build-improvements-v3-2-29672bf65ec6@pks.im> (raw)
In-Reply-To: <20241115-pks-clar-build-improvements-v3-0-29672bf65ec6@pks.im>

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
+		"${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})
 add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite"
-	COMMAND "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh"
+	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"

-- 
2.47.0.251.gb31fb630c0.dirty


  parent reply	other threads:[~2024-11-15  7:33 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   ` Patrick Steinhardt [this message]
2024-11-18 18:47     ` [PATCH v3 2/4] cmake: use SH_EXE to execute clar scripts 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=20241115-pks-clar-build-improvements-v3-2-29672bf65ec6@pks.im \
    --to=ps@pks.im \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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 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).