git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/3] cmake: use SH_EXE to execute clar scripts

From
Patrick Steinhardt <ps@pks.im>
Date
Nov 8, 2024, 13:16 UTC
Message-ID
<20241108-pks-clar-build-improvements-v1-2-25c1fe65ce37@pks.im>
In-Reply-To
<20241108-pks-clar-build-improvements-v1-0-25c1fe65ce37@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.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 contrib/buildsystems/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
index f31936e5c8dea76a4bc1eba75d87468c809f59ee..041967e2e187476cb9d26b329deb388765c48420 100644
--- a/contrib/buildsystems/CMakeLists.txt
+++ b/contrib/buildsystems/CMakeLists.txt
@@ -1005,10 +1005,10 @@ 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}
+	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" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" "${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")
 
 add_library(unit-tests-lib ${clar_test_SUITES}
-- 
2.47.0.229.g8f8d6eee53.dirty
Previous: Patrick SteinhardtNext: Patrick Steinhardt
Message 3 of 27 in “Build improvements for clar”
  1. 0/3 Build improvements for clarPatrick Steinhardt, Nov 8, 2024
  2. 1/3 t/unit-tests: convert "clar-generate.awk" into a shell scriptPatrick Steinhardt, Nov 8, 2024
  3. 2/3 cmake: use SH_EXE to execute clar scriptsPatrick Steinhardt, Nov 8, 2024
  4. 3/3 Makefile: let clar header targets depend on their scriptsPatrick Steinhardt, Nov 8, 2024
  5. Phillip WoodNov 10, 2024
  6. Junio C HamanoNov 11, 2024
  7. Patrick SteinhardtNov 11, 2024
  8. Junio C HamanoNov 11, 2024
  9. 0/4 Build improvements for clarPatrick Steinhardt, Nov 11, 2024
  10. 1/4 t/unit-tests: convert "clar-generate.awk" into a shell scriptPatrick Steinhardt, Nov 11, 2024
  11. Junio C HamanoNov 11, 2024
  12. Patrick SteinhardtNov 12, 2024
  13. 2/4 cmake: use SH_EXE to execute clar scriptsPatrick Steinhardt, Nov 11, 2024
  14. 3/4 cmake: use verbatim arguments when invoking clar commandsPatrick Steinhardt, Nov 11, 2024
  15. Johannes SchindelinNov 13, 2024
  16. Phillip WoodNov 14, 2024
  17. 4/4 Makefile: let clar header targets depend on their scriptsPatrick Steinhardt, Nov 11, 2024
  18. Phillip WoodNov 11, 2024
  19. 0/4 Build improvements for clarPatrick Steinhardt, Nov 15, 2024
  20. 2/4 cmake: use SH_EXE to execute clar scriptsPatrick Steinhardt, Nov 15, 2024
  21. Justin ToblerNov 18, 2024
  22. Patrick SteinhardtNov 19, 2024
  23. 1/4 t/unit-tests: convert "clar-generate.awk" into a shell scriptPatrick Steinhardt, Nov 15, 2024
  24. 3/4 cmake: use verbatim arguments when invoking clar commandsPatrick Steinhardt, Nov 15, 2024
  25. 4/4 Makefile: let clar header targets depend on their scriptsPatrick Steinhardt, Nov 15, 2024
  26. Justin ToblerNov 19, 2024
  27. Junio C HamanoNov 20, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.