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

Re: Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)

From
Marius Storm-Olsen <mstormo@gmail.com>
Date
Sep 24, 2009, 06:05 UTC
Message-ID
<4ABB0C16.4030103@gmail.com>
In-Reply-To
<alpine.DEB.1.00.0909232236490.4985@pacific.mpi-cbg.de>
Johannes Schindelin said the following on 23.09.2009 22:37:
Show 27 quoted lines
> Hi,
> 
> On Wed, 23 Sep 2009, Sebastian Schuberth wrote:
> 
>> On Sep 16, 10:20 am, Marius Storm-Olsen <mstormo@gmail.com> wrote:
>>
>>> These scripts generate projects for the MSVC IDE (.vcproj files) or
>>> QMake (.pro files), based on the output of a 'make -n MSVC=1 V=1' run.
>>>
>>> This enables us to simply do the necesarry changes in the Makefile, and you
>>> can update the other buildsystems by regenerating the files. Keeping the
>>> other buildsystems up-to-date with main development.
>> I know I'm a little late with my comments as this patch set has
>> already been merged to master. However, for future reference I'd like
>> to point out that something similar could be archived by using e.g.
>> CMake, and only maintaining the CMake project file. I'm not suggesting
>> to actually switch to CMake at this time, but I wanted to point out
>> that a guy called Pau Garcia i Quiles already seems to have created a
>> preliminary CMakeLists.txt file for Git [1], and also tried to build
>> Git for Windows using his CMake-generated MSVC project files.
>>
>> [1] "CMake-ifying git", http://www.elpauer.org/?p=324
> 
> We actually discussed this, and I challenged Pau to provide a recipe (a la 
> /src/openssl/release.sh) that builds, installs and commits CMake.
> 
> There was no response after that challenge.

Also, the buildsystem scripts I added to contrib/buildsystem is made in such a way that creating a CMake generator would be very little overhead. And since it's very unlikely that any other buildsystem will replace the default Makefile anytime soon, I think that is the way to go, to generate files for all the other buildsystems based on the output of the Makefile. Not optimal, sure, but follows main development.

Note that the contrib/buildsystem scripts could need a major overhaul by a Perl guru, as they are currently tuned only for Windows consumption (and Msys Perl being the only Perl distribution tested). But they work as intended for the use-case in mind.

-- .marius

Previous: Johannes SchindelinNext: Sebastian Schuberth
Message 24 of 50 in “Build Git with MSVC”
  1. 00/15 Build Git with MSVCMarius Storm-Olsen, Sep 16, 2009
  2. 01/15 Avoid declaration after statementMarius Storm-Olsen, Sep 16, 2009
  3. 02/15 Add define guards to compat/win32.hMarius Storm-Olsen, Sep 16, 2009
  4. 03/15 Change regerror() declaration from K&R style to ANSI C (C89)Marius Storm-Olsen, Sep 16, 2009
  5. 04/15 Set _O_BINARY as default fmode for both MinGW and MSVCMarius Storm-Olsen, Sep 16, 2009
  6. 05/15 Fix __stdcall placement and function prototypeMarius Storm-Olsen, Sep 16, 2009
  7. 06/15 Test for WIN32 instead of __MINGW32_Marius Storm-Olsen, Sep 16, 2009
  8. 07/15 Add empty header files for MSVC portMarius Storm-Olsen, Sep 16, 2009
  9. 08/15 Add MinGW header files to build git with MSVCMarius Storm-Olsen, Sep 16, 2009
  10. 09/15 Add platform files for MSVC portingMarius Storm-Olsen, Sep 16, 2009
  11. 10/15 Make usage of windows.h lean and meanMarius Storm-Olsen, Sep 16, 2009
  12. 11/15 Define strncasecmp and ftruncate for MSVCMarius Storm-Olsen, Sep 16, 2009
  13. 12/15 Add MSVC to MakefileMarius Storm-Olsen, Sep 16, 2009
  14. 13/15 Add README for MSVC buildMarius Storm-Olsen, Sep 16, 2009
  15. 14/15 Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)Marius Storm-Olsen, Sep 16, 2009
  16. 15/15 Tag GIT_VERSION when Git is built with MSVCMarius Storm-Olsen, Sep 16, 2009
  17. Johannes SixtSep 17, 2009
  18. Marius Storm-OlsenSep 18, 2009
  19. Johannes SixtSep 17, 2009
  20. Marius Storm-OlsenSep 18, 2009
  21. Johannes SixtSep 18, 2009
  22. Sebastian SchuberthSep 23, 2009
  23. Johannes SchindelinSep 23, 2009
  24. Marius Storm-OlsenSep 24, 2009
  25. Sebastian SchuberthSep 23, 2009
  26. Marius Storm-OlsenSep 23, 2009
  27. Frank LiSep 25, 2009
  28. Johannes SixtSep 16, 2009
  29. Alexey BorzenkovSep 16, 2009
  30. Johannes SixtSep 17, 2009
  31. Junio C HamanoSep 17, 2009
  32. Marius Storm-OlsenSep 17, 2009
  33. Johannes SixtSep 17, 2009
  34. Marius Storm-OlsenSep 17, 2009
  35. Johannes SixtSep 17, 2009
  36. Marius Storm-OlsenSep 17, 2009
  37. Alexey BorzenkovSep 17, 2009
  38. Marius Storm-OlsenSep 17, 2009
  39. Alexey BorzenkovSep 17, 2009
  40. Johannes SixtSep 17, 2009
  41. Marius Storm-OlsenSep 17, 2009
  42. Alexey BorzenkovSep 17, 2009
  43. Johannes SixtSep 17, 2009
  44. 04/15 Set _O_BINARY as default fmode for both MinGW and MSVCMarius Storm-Olsen, Sep 17, 2009
  45. Johannes SixtSep 17, 2009
  46. Erik Faye-LundSep 16, 2009
  47. Marius Storm-OlsenSep 16, 2009
  48. Sebastian SchuberthSep 23, 2009
  49. Erik Faye-LundSep 25, 2009
  50. 04/15 Set _O_BINARY as default fmode for both MinGW and MSVCMarius Storm-Olsen, Sep 17, 2009

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.