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 <edreel@xxxxxxxxx> Signed-off-by: Patrick Steinhardt <ps@xxxxxx> 3: 129d28ae48a = 3: cf4955b2ddc cmake: set up proper dependencies for generated clar headers -- 2.47.0.72.gef8ce8f3d4.dirty