Subject: [PATCH v2 0/3] cmake: fix autogenerated clar headers

From: Patrick Steinhardt <[email-masked]>
Date: Tue, 15 Oct 2024 11:46:08 +0200

Hi,

this is the second version of this patch series that fixes building clar
with the CMake build system.

Changes compared to v1:

  - Use a for loop instead of `while; shift`.

  - Provide a bit more context around the PRIVATE/PUBLIC switch in the
    commit message.

Thanks!

Patrick

Patrick Steinhardt (3):
  Makefile: extract script to generate clar declarations
  cmake: fix compilation of clar-based unit tests
  cmake: set up proper dependencies for generated clar headers

 Makefile                            |  4 +--
 contrib/buildsystems/CMakeLists.txt | 52 ++++++++---------------------
 t/unit-tests/generate-clar-decls.sh | 16 +++++++++
 3 files changed, 30 insertions(+), 42 deletions(-)
 create mode 100755 t/unit-tests/generate-clar-decls.sh

Range-diff against v1:
1:  346aa2f0830 ! 1:  7a619677c7a Makefile: extract script to generate clar declarations
    @@ t/unit-tests/generate-clar-decls.sh (new)
     +OUTPUT="$1"
     +shift
     +
    -+while test "$#" -ne 0
    ++for suite in "$@"
     +do
    -+	suite="$1"
    -+	shift
     +	sed -ne "s/^\(void test_$suite__[a-zA-Z_0-9][a-zA-Z_0-9]*(void)$\)/extern \1;/p" "$suite" ||
     +	exit 1
     +done >"$OUTPUT"
2:  b9afeffda29 ! 2:  447afc4a0f3 cmake: fix compilation of clar-based unit tests
    @@ Commit message
         "clar.suite" files as include directories. Instead, we accidentally set
         up the source directory as include directory.
     
    -    Fix this and propagate the include directories of "unit-tests.lib" to
    -    the "unit-tests" executable so that the latter uses the same include
    -    directories.
    +    Fix this by including the binary directory instead of the source
    +    directory. Furthermore, set up the include directories as PUBLIC instead
    +    of PRIVATE such that they propagate from "unit-tests.lib" to the
    +    "unit-tests" executable, which needs to include the same directory.
     
         Reported-by: Ed Reel <[email-masked]>
         Signed-off-by: Patrick Steinhardt <[email-masked]>
3:  129d28ae48a = 3:  cf4955b2ddc cmake: set up proper dependencies for generated clar headers
-- 
2.47.0.72.gef8ce8f3d4.dirty