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

Re: [PATCH 0/3] Build improvements for clar

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Nov 10, 2024, 14:30 UTC
Message-ID
<890b423c-9756-4e1b-a6d0-3990f1091f5b@gmail.com>
In-Reply-To
<20241108-pks-clar-build-improvements-v1-0-25c1fe65ce37@pks.im>
Hi Patrick
On 08/11/2024 13:16, Patrick Steinhardt wrote:
Show 6 quoted lines
> Hi,
> 
> Dscho has reported in [1] that the CMake build instructions for clar do
> not work well on Windows/MSVC because we execute the shell scripts
> directly instead of using the discovered `SH_EXE`. This small patch
> series fixes the issue.

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

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"
Previous: Patrick SteinhardtNext: Junio C Hamano
Message 5 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.