On 18/10/2024 13:23, Patrick Steinhardt wrote: > Hi, > > this is the third version of my patch series that aims to modernize our > build system infrastructure. It refactors our existing build infra to be > ready for out-of-tree builds and then wires up Meson. > > Changes compared to v2: > > - I have split out semi-related changes like the platform > compatibility fixes into separate series. More on that further down > below, where I explain the current base. > > - I have polished the CMake-related changes I've been doing as prereqs > while refactoring our build system. Some of the changes weren't > tested before, but now CMake works as expected. Just curious, does the cmake build system work on Linux now? (cmake is another system that I don't really know, except in a 'monkey-see monkey-do' kinda way) > > - Fixed up some dependencies in our Makefile, as I didn't amend them > to depend on the new generator scripts. > > - I have extracted some more scripts to massage our Perl library code, > shells cripts and gitweb.cgi such that they can be used by Make, > CMake and Meson. This also fixes generation of "gitweb.cgi" on > Meson as reported by Ramsay. I haven't had time to test this yet (I haven't even properly read the patches), but from a quick squint, this looks similar to my attempts to do the same thing the other night (minus the cmake stuff, of course). However, I didn't notice anything in the commit message about changing the format of the GITWEB-BUILD-OPTIONS file, which already exists before that commit. I did the same, btw, but it seems that file was only used to 'notice' when the configuration changed to enable the re-build of gitweb.cgi. In which case, the change in format (rather than content) was not an issue. > > - I have fixed the cyclic dependency in our Makefile that I have > introduced with v2. > > - I have addressed some feedback regarding "build-systems.txt". > > - I have made things work with OpenBSD 7.6. > > - Things now work on Cygwin and MinGW64 as expected, no more test > failures except for t9700, which also fails with our Makefile. This caused me some concern for a little while, since I don't recall that the t9700 test has ever failed for me on cygwin. I have the test output files for all versions of git (each rc and rel) from v2.12.0-rc0 (5th Feb 2017) to today (all 143 of them) and none of them show that test failing. (I remove files from that directory on occasion when it takes up too much disk space). However, you qualify that statement in the commit message to make clear that it works on cygwin, but fails on other windows 'targets'. phew! :) > - I have improved how we set up the required tooling on Windows such > that we detect Git for Windows-provided tools as we do with CMake. > Like this, VS Code can now trivially import the Meson project and > configure it. Furthermore, generation of the Visual Studio solution > is trivial as well. So overall, things work fine now on all the > important Windows environments that I'm aware of. > > - Several smaller fixes all over the place. > > I've included a range-diff, but it's quite crowded overall. > > In general I think that this is in a pretty good shape now. I have > tested things on NixOS, macOS 10.15, OpenBSD 7.6, FreeBSD 14.1, Windows > 10 with MSVC, VS Code, MinGW and Cygwin, and things are generally smooth > and just work. I'm sure there's still going to be weirdnesses on some > platforms regardless of that. I had a very quick attempt on cygwin the other night, and it behaved differently at the 'ninja test' stage. It printed something like '[0/1] all tests' and then seemed to do nothing, except 'python3.9' was hovering up all cycles (well over 75% anyway) with no indication of any progress. This was nothing like the behaviour on Linux (which also looked a bit strange, but at least showed progress on each test as it ran). I ^C-ed it, since I didn't want to wait 6 hours before it (hopefully) finished running. Thanks! ATB, Ramsay Jones