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

Re: [PATCH 0/9] cmake: fix *nix & general issues, no test-lib.sh editing, ctest in CI

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Oct 21, 2022, 15:55 UTC
Message-ID
<221021.86zgdpdud6.gmgdl@evledraar.gmail.com>
In-Reply-To
<49d65210-583b-67a2-1ad5-c7166e81396e@dunelm.org.uk>
On Fri, Oct 21 2022, Phillip Wood wrote:
> On 21/10/2022 10:44, Ævar Arnfjörð Bjarmason wrote:
>
> I think this series contains a couple of interesting ideas[...]

c'mon :) Getting it to a 100%[1] pass rate on *nix from 76%[2] & having "ctest" running in CI now is a bit more than an interesting idea :)

> but I'm not sure hard coding the build directory or removing the
> default test options are improvements on dscho's series.

I replied to most of that in [3], but wanted to add that while I think it makes sense to get bugfixes for the system in first before behavior changes (especially Makefile-divergent behavior changes) I'm not going to pick that particular hill to die on.

So if the consensus is that we want it too I'd be happy to bundle it all together in a way that one-to-one maps to the features / behavior changes Johannes submitted (especially as he's short on time[4]).

I started looking at this because I have changes locally that make the Makefile much faster by replacing all that FORCE shell-out stuff with built-in Makefile functions, which really cuts down on the fixed cost of running "make" (really helpful in large interactive rebases).

Sneaking a "while generating this file, let's remove this other file" into the Makefile dependency DAG is pretty much free as long as everything's a FORCE'd shellscript, but that approach would block representing that data in Make's native way of viewing dependencies (which is much faster).

But anyway, if there's an insistance on the GIT-BUILD-DIR approach that can be made to work with that also, in a way that I believe satisfies the stated use-case.

> Combining fixes for cmake and linux with changes for running ctest on
> windows is not particularly helpful and would be better as two
> separate series.
I guess, in summary (G = general, N = *nix, W = Windows) fix:
 1/9: G
 2/9: N
 3/9: G
 5/9: G
 6/9: G
 7/9: G
 8/9: G
 9/9: G

So, aside from the "chmod +x" which we need on *nix it's all general fixes (and 9/9 while adding an Ubuntu job will stress CMake paths used on Windows too).

Show 6 quoted lines
> We really need to have a clear policy of what the
> status of building with cmake on linux is. I think having a usable
> cmake build on linux could be useful for anyone making changes to
> CMakeLists.txt as they can do some testing and debugging locally
> before running our ci to check it works on windows but I'm not sure
> we need to support it as an alternative to the Makefile.

I wish we didn't have it at all, but I also don't use Windows/VS, or anything that benefits from cmake's IDE integration over plain old make, so it doesn't scratch my itch.

I'm not advocating for removing it, mind you, that's just my knee-jerk reaction.

But I think it's clearly here to stay, so we're going to have to live with it, and seemingly maintain both in perpetuity.

Given that it's staying, and that our answer to "cmake is broken" has by default been "it needs fixing before the topic breaking it is merged" (and not "people who use this cmake contrib thing should fix it eventually") this series makes it *much* easier to deal with it for those of us who use *nix for development.

I had a few local topics that broke cmake in one minor way or another, which I knew about. But before this (and f31b6244950 (Merge branch 'yw/cmake-updates', 2022-06-07) earlier this year) seeing why it was breaking involved long ping-pongs with the GitHub Windows CI.

But once I got this working I could fix several of those issues in a few minutes, because I could run the full cmake/ctest featureset locally.

So I think this makes it much more useful, and as the above "G/N/W" summary shows it's really not a burden to make CMakeLists.txt portable.

1. https://github.com/avar/git/actions/runs/3294344038/jobs/5432094502#step:4:2787
2. https://github.com/avar/git/actions/runs/3294352976/jobs/5432095664#step:4:2785
3. https://lore.kernel.org/git/221021.864jvxfa3c.gmgdl@evledraar.gmail.com/
4. https://lore.kernel.org/git/s42p6rn0-s5oo-2874-636p-2541n475p045@tzk.qr/
Show 192 quoted lines
>> On Tue, Oct 18 2022, Johannes Schindelin wrote:
>> [For context:
>> https://lore.kernel.org/git/on2q3qos-sr0n-0p8p-606p-5pq39n46qq4q@tzk.qr/
>> is upthread of here, but spinning this off into another thread]
>> 
>>>> Re my earlier feedback, I came up with this as an alternative, which
>>>> nicely allows us to have "cmake" and "make" play together, you can even
>>>> run them concurrently!:
>>>>
>>>>       https://github.com/avar/git/commit/30f2265fd07aee97ea66f6e84a824d85d241e245
>>>
>>> This approach _still_ modifies the `test-lib.sh`, which is the entire
>>> reason for the patch under review.
>>>
>>> I hope you find an elegant, user-friendly alternative that leaves
>>> `test-lib.sh` unmodified even when building via CMake. I would gladly take
>>> that and drop my `GIT-BUILD-DIR` patch.
>> You did ask for it :)
>> To clarify, what I had upthread was a patch on the way towards a
>> solution that didn't edit t/test-lib.sh at all, but that patch itself
>> wasn't sufficient. It's the equivalent of 3/9 here.
>> This series:
>>   * Can be grabbed at
>>     https://github.com/avar/git/tree/avar/cmake-test-path
>>   * Conflicts with js/cmake-updates[1], although I've seen it go in
>> &
>>     out of {gitster,git}/seen (currently in gitster/seen, not in
>>     git.git's "seen".
>>     But the conflict is easily fixed to keep both, see below.
>>   * Fixes numerous bugs in the current cmake recipe, running "ctest"
>>     was a dumpster fire on Linux, after this with 9/9 we can run our
>>     whole test suite in CI on ubuntu-latest:
>>     https://github.com/avar/git/actions/runs/3293378319/jobs/5431721245
>>   * Handles the case where you want to build with cmake and have
>> "(cd t
>>     && ./t0001-init.sh)" just work, i.e. we spot that we have a built
>>     "contrib/buildsystems/out" and use that.
>>   * I pushed out a "js/cmake-update-ci" in my repo, which is a
>> (rebased
>>     on master) "js/cmake-updates" plus the 9/9 here:
>>     https://github.com/avar/git/actions/runs/3294352976/jobs/5432095664
>>     Some of those failures are due to orthagonal fixes here,
>> e.g. you
>>     clearly haven't been testing cmake+ctest on Linux, or you'd have
>>     seen the issue 2/9 fixes, a lot of failures are due to a missing
>>     "chmod +x".
>>     But others are due to e.g. your [2] missing a lot of cases. 3/9
>> and
>>     8/9 cover some of those, i.e. the Windows CI skips a lot of tests
>>     (e.g. all Perl + Python stuff), no libpcre2 etc. So a lot of
>>     failures were related to that.
>>   * I also merged this with yours at
>>     https://github.com/avar/git/tree/avar/cmake-test-path-plus-js/cmake-updates
>>     The --remerge-diff of the resulting merge commit is, with
>>     un-indented inline commentary:
>> 	diff --git a/.gitignore b/.gitignore
>> 	index cb0231fb401..62720c6135d 100644
>> 	--- a/.gitignore
>> 	+++ b/.gitignore
>> 	@@ -1,5 +1,4 @@
>> 	 /fuzz_corpora
>> 	-/GIT-BUILD-DIR
>> 	 /GIT-BUILD-OPTIONS
>> 	 /GIT-CFLAGS
>> 	 /GIT-LDFLAGS
>> 	diff --git a/Makefile b/Makefile
>> 	index 9e3c4588e7d..d93ad956e58 100644
>> 	--- a/Makefile
>> 	+++ b/Makefile
>> 	@@ -3041,7 +3041,6 @@ else
>> 	 	@echo RUNTIME_PREFIX=\'false\' >>$@+
>> 	 endif
>> 	 	@if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi
>> 	-	@if test -f GIT-BUILD-DIR; then rm GIT-BUILD-DIR; fi
>> 
>>     As yuo asked for: We can get what you want without
>>     GIT-BUILD-DIR. When we run via "ctest" we pass
>>     GIT_TEST_BUILD_DIR=${CMAKE_BINARY_DIR}, and when we run ad-hoc the
>>     test-lib.sh checks "contrib/buildsystems/out" and uses it if we
>>     have a built git there, but not in ../git.
>> 	 ### Detect Python interpreter path changes
>> 	 ifndef NO_PYTHON
>> 	diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
>> 	remerge CONFLICT (content): Merge conflict in contrib/buildsystems/CMakeLists.txt
>> 	index bfc4d87026b..fafe6d9cb95 100644
>> 	--- a/contrib/buildsystems/CMakeLists.txt
>> 	+++ b/contrib/buildsystems/CMakeLists.txt
>> 	@@ -1081,24 +1081,6 @@ if(USE_VCPKG)
>> 	 	file(APPEND ${CMAKE_BINARY_DIR}/GIT-BUILD-OPTIONS "PATH=\"$PATH:$TEST_DIRECTORY/../compat/vcbuild/vcpkg/installed/x64-windows/bin\"\n")
>> 	 endif()
>> 	-<<<<<<< b81f18dec61 (CI: add a "linux-cmake-test" to run
>> cmake & ctest on linux)
>> 	-=======
>> 	-#Make the tests work when building out of the source tree
>> 	-get_filename_component(CACHE_PATH ${CMAKE_CURRENT_LIST_DIR}/../../CMakeCache.txt ABSOLUTE)
>> 	-if(NOT ${CMAKE_BINARY_DIR}/CMakeCache.txt STREQUAL ${CACHE_PATH})
>> 	-	#Setting the build directory in test-lib.sh before running tests
>> 	-	file(WRITE ${CMAKE_BINARY_DIR}/CTestCustom.cmake
>> 	-		"file(WRITE ${CMAKE_SOURCE_DIR}/GIT-BUILD-DIR \"${CMAKE_BINARY_DIR}\")")
>> 	-	#misc copies
>> 	-	file(COPY ${CMAKE_SOURCE_DIR}/t/chainlint.pl DESTINATION ${CMAKE_BINARY_DIR}/t/)
>> 	-	file(COPY ${CMAKE_SOURCE_DIR}/po/is.po DESTINATION ${CMAKE_BINARY_DIR}/po/)
>> 	-	file(GLOB mergetools "${CMAKE_SOURCE_DIR}/mergetools/*")
>> 	-	file(COPY ${mergetools} DESTINATION ${CMAKE_BINARY_DIR}/mergetools/)
>> 	-	file(COPY ${CMAKE_SOURCE_DIR}/contrib/completion/git-prompt.sh DESTINATION ${CMAKE_BINARY_DIR}/contrib/completion/)
>> 	-	file(COPY ${CMAKE_SOURCE_DIR}/contrib/completion/git-completion.bash DESTINATION ${CMAKE_BINARY_DIR}/contrib/completion/)
>> 	-endif()
>> 	-
>> 	->>>>>>> 27870f309d0 (cmake: increase time-out for a long-running test)
>> 	 file(GLOB test_scipts "${CMAKE_SOURCE_DIR}/t/t[0-9]*.sh")
>>     This whole "copy stuff and munge test-lib.sh" part is gone in my
>>     version. Rather than copy over mergetools/* the relevant tests know
>>     where to find it (it doesn't need to be built at all).
>> 	 #test
>> 	@@ -1106,11 +1088,7 @@ set(GIT_TEST_OPTS "$ENV{GIT_TEST_OPTS}")
>> 	 separate_arguments(GIT_TEST_OPTS)
>> 	 foreach(tsh ${test_scipts})
>> 	 	add_test(NAME ${tsh}
>> 	-<<<<<<< b81f18dec61 (CI: add a "linux-cmake-test" to run cmake & ctest on linux)
>> 	-		COMMAND env GIT_TEST_BUILD_DIR=${CMAKE_BINARY_DIR} ${SH_EXE} ${tsh} ${GIT_TEST_OPTS}
>> 	-=======
>> 	-		COMMAND ${SH_EXE} ${tsh} --no-bin-wrappers --no-chain-lint -vx
>> 	->>>>>>> 27870f309d0 (cmake: increase time-out for a long-running test)
>> 	+		COMMAND env GIT_TEST_BUILD_DIR=${CMAKE_BINARY_DIR} ${SH_EXE} ${tsh} --no-bin-wrappers --no-chain-lint -vx ${GIT_TEST_OPTS}
>> 	 		WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/t)
>> 	 endforeach()
>>     I did not include your "--no-bin-wrappers --no-chain-lint -vx"
>>     change.
>>     As 7/9 here shows I pick up GIT_TEST_OPTS from the environment,
>> so
>>     if you want to set these you can set them in the environment.
>>     But your 1/5[3] adds these partially for speeding up things on
>>     Windows, but as this series shows this also runs on
>>     Linux. Therefore if we still want this I'd think we'd at least want
>>     to make it specific to that platform (per [4]).
>> 	diff --git a/t/test-lib.sh b/t/test-lib.sh
>> 	index 333079d9127..284b619708a 100644
>> 	--- a/t/test-lib.sh
>> 	+++ b/t/test-lib.sh
>> 	@@ -69,16 +69,6 @@ then
>> 	 	echo "PANIC: Running in a $TEST_DIRECTORY that doesn't end in '/t'?" >&2
>> 	 	exit 1
>> 	 fi
>> 	-if test -f "$GIT_BUILD_DIR/GIT-BUILD-DIR"
>> 	-then
>> 	-	GIT_BUILD_DIR="$(cat "$GIT_BUILD_DIR/GIT-BUILD-DIR")" || exit 1
>> 	-	# On Windows, we must convert Windows paths lest they contain a colon
>> 	-	case "$(uname -s)" in
>> 	-	*MINGW*)
>> 	-		GIT_BUILD_DIR="$(cygpath -au "$GIT_BUILD_DIR")"
>> 	-		;;
>> 	-	esac
>> 	-fi
>>     The changes I needed to the test-lib.sh are above this context.
>> 	 # Prepend a string to a VAR using an arbitrary ":" delimiter,
>> not
>> 	 # adding the delimiter if VAR or VALUE is empty. I.e. a generalized:
>>     Elided here is the inclusion of your 5/5[5], which didn't
>>     conflict. If we'd like to keep it it probably makes sense to make
>>     it Windows-specific too, I don't see that being needed on Linux.
>>     Aside from this topic I'd be curious to know if you see the same
>>     slowdown with my [6], i.e. once git-submodule.sh has gone away. For
>>     me it's ~25% faster than "master", but I'd expect on a system with
>>     high fork overhead that would be a lot higher.
>> 1. https://lore.kernel.org/git/pull.1320.v3.git.1666090745.gitgitgadget@gmail.com/
>> 2. https://lore.kernel.org/git/9faca9d5cbe706c00d03ca2a125f2e113294a548.1666090745.git.gitgitgadget@gmail.com/
>> 3. https://lore.kernel.org/git/356b2e9a1007bcd1382f26f333926ff0d5b9abe2.1666090745.git.gitgitgadget@gmail.com/
>> 4. https://lore.kernel.org/git/221018.865yghi6nv.gmgdl@evledraar.gmail.com/
>> 5. https://lore.kernel.org/git/40cf872f48386f8eca0fa814e4cdfb0ded915ed8.1666090745.git.gitgitgadget@gmail.com/
>> 6. https://lore.kernel.org/git/cover-00.10-00000000000-20221017T115544Z-avarab@gmail.com/
>> Ævar Arnfjörð Bjarmason (9):
>>    cmake: don't copy chainlint.pl to build directory
>>    cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4
>>    cmake & test-lib.sh: add a $GIT_SOURCE_DIR variable
>>    cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.sh
>>    test-lib.sh: support a "GIT_TEST_BUILD_DIR"
>>    cmake: use GIT_TEST_BUILD_DIR instead of editing hack
>>    cmake: support using GIT_TEST_OPTS from the environment
>>    cmake: copy over git-p4.py for t983[56] perforce test
>>    CI: add a "linux-cmake-test" to run cmake & ctest on linux
>>   .github/workflows/main.yml          |  3 +++
>>   ci/run-build-and-tests.sh           | 13 +++++++++--
>>   contrib/buildsystems/CMakeLists.txt | 33 +++++++++++----------------
>>   t/README                            |  3 +++
>>   t/lib-gettext.sh                    |  2 +-
>>   t/lib-gitweb.sh                     |  2 +-
>>   t/t7609-mergetool--lib.sh           |  2 +-
>>   t/t9902-completion.sh               | 14 ++++++------
>>   t/t9903-bash-prompt.sh              |  2 +-
>>   t/test-lib.sh                       | 35 +++++++++++++++++++++++++++--
>>   10 files changed, 74 insertions(+), 35 deletions(-)
>> 
Previous: Phillip WoodNext: Phillip Wood
Message 22 of 113 in “cmake: fix *nix & general issues, no test-lib.sh editing, ctest in CI”
  1. 0/9 cmake: fix *nix & general issues, no test-lib.sh editing, ctest in CIÆvar Arnfjörð Bjarmason, Oct 21, 2022
  2. 1/9 cmake: don't copy chainlint.pl to build directoryÆvar Arnfjörð Bjarmason, Oct 21, 2022
  3. 2/9 cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4Ævar Arnfjörð Bjarmason, Oct 21, 2022
  4. Phillip WoodOct 21, 2022
  5. Ævar Arnfjörð BjarmasonOct 21, 2022
  6. 4/9 cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.shÆvar Arnfjörð Bjarmason, Oct 21, 2022
  7. 5/9 test-lib.sh: support a "GIT_TEST_BUILD_DIR"Ævar Arnfjörð Bjarmason, Oct 21, 2022
  8. 6/9 cmake: use GIT_TEST_BUILD_DIR instead of editing hackÆvar Arnfjörð Bjarmason, Oct 21, 2022
  9. Phillip WoodOct 21, 2022
  10. Ævar Arnfjörð BjarmasonOct 21, 2022
  11. Phillip WoodOct 25, 2022
  12. 3/9 cmake & test-lib.sh: add a $GIT_SOURCE_DIR variableÆvar Arnfjörð Bjarmason, Oct 21, 2022
  13. 7/9 cmake: support using GIT_TEST_OPTS from the environmentÆvar Arnfjörð Bjarmason, Oct 21, 2022
  14. Phillip WoodOct 21, 2022
  15. Ævar Arnfjörð BjarmasonOct 21, 2022
  16. Phillip WoodOct 25, 2022
  17. Ævar Arnfjörð BjarmasonOct 25, 2022
  18. 8/9 cmake: copy over git-p4.py for t983[56] perforce testÆvar Arnfjörð Bjarmason, Oct 21, 2022
  19. 9/9 CI: add a "linux-cmake-test" to run cmake & ctest on linuxÆvar Arnfjörð Bjarmason, Oct 21, 2022
  20. Johannes SchindelinOct 21, 2022
  21. Phillip WoodOct 21, 2022
  22. Ævar Arnfjörð BjarmasonOct 21, 2022
  23. Phillip WoodOct 25, 2022
  24. 00/11 cmake: document, fix on *nix, add CIÆvar Arnfjörð Bjarmason, Oct 27, 2022
  25. 01/11 cmake: don't "mkdir -p" and "cd" in build instructionsÆvar Arnfjörð Bjarmason, Oct 27, 2022
  26. 02/11 cmake: update instructions for portable CMakeLists.txtÆvar Arnfjörð Bjarmason, Oct 27, 2022
  27. Eric SunshineOct 27, 2022
  28. 03/11 cmake: don't copy chainlint.pl to build directoryÆvar Arnfjörð Bjarmason, Oct 27, 2022
  29. 05/11 cmake & test-lib.sh: add a $GIT_SOURCE_DIR variableÆvar Arnfjörð Bjarmason, Oct 27, 2022
  30. 04/11 cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4Ævar Arnfjörð Bjarmason, Oct 27, 2022
  31. 06/11 cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.shÆvar Arnfjörð Bjarmason, Oct 27, 2022
  32. 08/11 Makefile + cmake: use environment, not GIT-BUILD-DIRÆvar Arnfjörð Bjarmason, Oct 27, 2022
  33. 07/11 test-lib.sh: support a "GIT_TEST_BUILD_DIR"Ævar Arnfjörð Bjarmason, Oct 27, 2022
  34. 09/11 cmake: support GIT_TEST_OPTS, abstract away WIN32 defaultsÆvar Arnfjörð Bjarmason, Oct 27, 2022
  35. 10/11 cmake: copy over git-p4.py for t983[56] perforce testÆvar Arnfjörð Bjarmason, Oct 27, 2022
  36. 11/11 CI: add a "linux-cmake-test" to run cmake & ctest on linuxÆvar Arnfjörð Bjarmason, Oct 27, 2022
  37. 00/12 cmake: document, fix on *nix, add CIÆvar Arnfjörð Bjarmason, Nov 1, 2022
  38. 01/12 cmake: don't "mkdir -p" and "cd" in build instructionsÆvar Arnfjörð Bjarmason, Nov 1, 2022
  39. Phillip WoodNov 3, 2022
  40. 02/12 cmake: update instructions for portable CMakeLists.txtÆvar Arnfjörð Bjarmason, Nov 1, 2022
  41. Eric SunshineNov 1, 2022
  42. Phillip WoodNov 3, 2022
  43. Ævar Arnfjörð BjarmasonNov 3, 2022
  44. 03/12 cmake: don't copy chainlint.pl to build directoryÆvar Arnfjörð Bjarmason, Nov 1, 2022
  45. 04/12 cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4Ævar Arnfjörð Bjarmason, Nov 1, 2022
  46. 05/12 cmake & test-lib.sh: add a $GIT_SOURCE_DIR variableÆvar Arnfjörð Bjarmason, Nov 1, 2022
  47. 06/12 cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.shÆvar Arnfjörð Bjarmason, Nov 1, 2022
  48. 07/12 test-lib.sh: support a "GIT_TEST_BUILD_DIR"Ævar Arnfjörð Bjarmason, Nov 1, 2022
  49. 08/12 Makefile + cmake: use environment, not GIT-BUILD-DIRÆvar Arnfjörð Bjarmason, Nov 1, 2022
  50. 09/12 cmake: support GIT_TEST_OPTS, abstract away WIN32 defaultsÆvar Arnfjörð Bjarmason, Nov 1, 2022
  51. Phillip WoodNov 3, 2022
  52. Ævar Arnfjörð BjarmasonNov 3, 2022
  53. 11/12 cmake: copy over git-p4.py for t983[56] perforce testÆvar Arnfjörð Bjarmason, Nov 1, 2022
  54. 10/12 cmake: increase test timeout on Windows onlyÆvar Arnfjörð Bjarmason, Nov 1, 2022
  55. 12/12 CI: add a "linux-cmake-test" to run cmake & ctest on linuxÆvar Arnfjörð Bjarmason, Nov 1, 2022
  56. 00/14 cmake: document, fix on *nix, add CIÆvar Arnfjörð Bjarmason, Nov 3, 2022
  57. 02/14 cmake: use "-S" and "-B" to specify source and build directoriesÆvar Arnfjörð Bjarmason, Nov 3, 2022
  58. 05/14 cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4Ævar Arnfjörð Bjarmason, Nov 3, 2022
  59. 04/14 cmake: don't copy chainlint.pl to build directoryÆvar Arnfjörð Bjarmason, Nov 3, 2022
  60. 01/14 cmake: don't invoke msgfmt with --statisticsÆvar Arnfjörð Bjarmason, Nov 3, 2022
  61. 03/14 cmake: update instructions for portable CMakeLists.txtÆvar Arnfjörð Bjarmason, Nov 3, 2022
  62. 06/14 cmake & test-lib.sh: add a $GIT_SOURCE_DIR variableÆvar Arnfjörð Bjarmason, Nov 3, 2022
  63. 07/14 cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.shÆvar Arnfjörð Bjarmason, Nov 3, 2022
  64. 13/14 cmake: copy over git-p4.py for t983[56] perforce testÆvar Arnfjörð Bjarmason, Nov 3, 2022
  65. 09/14 Makefile + cmake: use environment, not GIT-BUILD-DIRÆvar Arnfjörð Bjarmason, Nov 3, 2022
  66. 08/14 test-lib.sh: support a "GIT_TEST_BUILD_DIR"Ævar Arnfjörð Bjarmason, Nov 3, 2022
  67. 11/14 cmake: increase test timeout on Windows onlyÆvar Arnfjörð Bjarmason, Nov 3, 2022
  68. 12/14 cmake: only look for "sh" in "C:/Program Files" on WindowsÆvar Arnfjörð Bjarmason, Nov 3, 2022
  69. 14/14 CI: add a "linux-cmake-test" to run cmake & ctest on linuxÆvar Arnfjörð Bjarmason, Nov 3, 2022
  70. 10/14 cmake: support GIT_TEST_OPTS, abstract away WIN32 defaultsÆvar Arnfjörð Bjarmason, Nov 3, 2022
  71. Taylor BlauNov 5, 2022
  72. Phillip WoodNov 8, 2022
  73. 00/15 cmake: document, fix on *nix, add CIÆvar Arnfjörð Bjarmason, Dec 2, 2022
  74. 01/15 cmake: don't invoke msgfmt with --statisticsÆvar Arnfjörð Bjarmason, Dec 2, 2022
  75. 03/15 cmake: update instructions for portable CMakeLists.txtÆvar Arnfjörð Bjarmason, Dec 2, 2022
  76. 02/15 cmake: use "-S" and "-B" to specify source and build directoriesÆvar Arnfjörð Bjarmason, Dec 2, 2022
  77. Eric SunshineDec 3, 2022
  78. 04/15 cmake: don't copy chainlint.pl to build directoryÆvar Arnfjörð Bjarmason, Dec 2, 2022
  79. 05/15 cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4Ævar Arnfjörð Bjarmason, Dec 2, 2022
  80. 07/15 cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.shÆvar Arnfjörð Bjarmason, Dec 2, 2022
  81. 06/15 cmake & test-lib.sh: add a $GIT_SOURCE_DIR variableÆvar Arnfjörð Bjarmason, Dec 2, 2022
  82. 08/15 Makefile + test-lib.sh: don't prefer cmake-built to make-built gitÆvar Arnfjörð Bjarmason, Dec 2, 2022
  83. 09/15 test-lib.sh: support a "GIT_TEST_BUILD_DIR"Ævar Arnfjörð Bjarmason, Dec 2, 2022
  84. Eric SunshineDec 3, 2022
  85. 10/15 cmake: optionally be able to run tests before "ctest"Ævar Arnfjörð Bjarmason, Dec 2, 2022
  86. 11/15 cmake: support GIT_TEST_OPTS, abstract away WIN32 defaultsÆvar Arnfjörð Bjarmason, Dec 2, 2022
  87. Eric SunshineDec 3, 2022
  88. Ævar Arnfjörð BjarmasonDec 3, 2022
  89. Eric SunshineDec 3, 2022
  90. 12/15 cmake: increase test timeout on Windows onlyÆvar Arnfjörð Bjarmason, Dec 2, 2022
  91. 13/15 cmake: only look for "sh" in "C:/Program Files" on WindowsÆvar Arnfjörð Bjarmason, Dec 2, 2022
  92. 14/15 cmake: copy over git-p4.py for t983[56] perforce testÆvar Arnfjörð Bjarmason, Dec 2, 2022
  93. 15/15 CI: add a "linux-cmake-test" to run cmake & ctest on linuxÆvar Arnfjörð Bjarmason, Dec 2, 2022
  94. Eric SunshineDec 3, 2022
  95. 00/15 cmake: document, fix on *nix, add CIÆvar Arnfjörð Bjarmason, Dec 6, 2022
  96. 01/15 cmake: don't invoke msgfmt with --statisticsÆvar Arnfjörð Bjarmason, Dec 6, 2022
  97. 02/15 cmake: use "-S" and "-B" to specify source and build directoriesÆvar Arnfjörð Bjarmason, Dec 6, 2022
  98. 04/15 cmake: don't copy chainlint.pl to build directoryÆvar Arnfjörð Bjarmason, Dec 6, 2022
  99. 03/15 cmake: update instructions for portable CMakeLists.txtÆvar Arnfjörð Bjarmason, Dec 6, 2022
  100. 05/15 cmake: chmod +x the bin-wrappers/* & SCRIPT_{SH,PERL} & git-p4Ævar Arnfjörð Bjarmason, Dec 6, 2022
  101. 06/15 cmake & test-lib.sh: add a $GIT_SOURCE_DIR variableÆvar Arnfjörð Bjarmason, Dec 6, 2022
  102. 07/15 cmake: set "USE_LIBPCRE2" in "GIT-BUILD-OPTIONS" for test-lib.shÆvar Arnfjörð Bjarmason, Dec 6, 2022
  103. 08/15 Makefile + test-lib.sh: don't prefer cmake-built to make-built gitÆvar Arnfjörð Bjarmason, Dec 6, 2022
  104. 09/15 test-lib.sh: support a "GIT_TEST_BUILD_DIR"Ævar Arnfjörð Bjarmason, Dec 6, 2022
  105. 10/15 cmake: optionally be able to run tests before "ctest"Ævar Arnfjörð Bjarmason, Dec 6, 2022
  106. 11/15 cmake: support GIT_TEST_OPTS, abstract away WIN32 defaultsÆvar Arnfjörð Bjarmason, Dec 6, 2022
  107. 12/15 cmake: increase test timeout on Windows onlyÆvar Arnfjörð Bjarmason, Dec 6, 2022
  108. 14/15 cmake: copy over git-p4.py for t983[56] perforce testÆvar Arnfjörð Bjarmason, Dec 6, 2022
  109. 13/15 cmake: only look for "sh" in "C:/Program Files" on WindowsÆvar Arnfjörð Bjarmason, Dec 6, 2022
  110. 15/15 CI: add a "linux-cmake-test" to run cmake & ctest on linuxÆvar Arnfjörð Bjarmason, Dec 6, 2022
  111. Phillip WoodDec 7, 2022
  112. Ævar Arnfjörð BjarmasonDec 8, 2022
  113. Phillip WoodNov 3, 2022

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.