Re: Add scripts to generate projects for other buildsystems (MSVC vcproj, QMake)
From: Marius Storm-Olsen <hidden>
Date: 2016-06-15 22:47:26
Johannes Schindelin said the following on 23.09.2009 22:37:
Hi, On Wed, 23 Sep 2009, Sebastian Schuberth wrote:quoted
On Sep 16, 10:20 am, Marius Storm-Olsen [off-list ref] wrote:quoted
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=324We 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