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

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

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 11, 2024, 01:34 UTC
Message-ID
<xmqqiksuk0yk.fsf@gitster.g>
In-Reply-To
<890b423c-9756-4e1b-a6d0-3990f1091f5b@gmail.com>
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 6 quoted lines
> 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.

Show 36 quoted lines
>
> 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: Phillip WoodNext: Patrick Steinhardt
Message 6 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.