mirror of
https://github.com/git/git.git
synced 2026-01-27 02:48:32 +00:00
This commit contains a GNU Makefile and NuGet configuration scripts to download and install the various third-party libraries that we will need to build/link with when using VS2015 to build Git. The file "compat/vcbuild/README_VS2015.txt" contains instructions for using this. In this commit, "compat/vcbuild/Makefile" contains hard-coded version numbers of the packages we require. These are set to the current versions as of the time of this commit. We use "nuget restore" to install them explicitly using a "package.config". A future improvement would try to use some of the automatic package management functions and eliminate the need to specify exact versions. I tried, but could not get this to work. NuGet was happy dowload "minimum requirements" rather than "lastest" for dependencies -- and only look at one package at a time. For example, both curl and openssl depend upon zlib and have different minimums. It was unclear which version of zlib would be installed and seemed to be dependent on the order of the top-level packages. So, I'm skipping that for now. We need to be very precise when specifying NuGet package versions: while nuget.exe auto-completes a version, say, 1.0.2 to 1.0.2.0, we will want to parse packages.config ourselves, to generate the Visual Studio solution, and there we need the exact version number to be able to generate the exact path to the correct .targets file. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
The Steps of Build Git with VS2008
1. You need the build environment, which contains the Git dependencies
to be able to compile, link and run Git with MSVC.
You can either use the binary repository:
WWW: http://repo.or.cz/w/msvcgit.git
Git: git clone git://repo.or.cz/msvcgit.git
Zip: http://repo.or.cz/w/msvcgit.git?a=snapshot;h=master;sf=zip
and call the setup_32bit_env.cmd batch script before compiling Git,
(see repo/package README for details), or the source repository:
WWW: http://repo.or.cz/w/gitbuild.git
Git: git clone git://repo.or.cz/gitbuild.git
Zip: (None, as it's a project with submodules)
and build the support libs as instructed in that repo/package.
2. Ensure you have the msysgit environment in your path, so you have
GNU Make, bash and perl available.
WWW: http://repo.or.cz/w/msysgit.git
Git: git clone git://repo.or.cz/msysgit.git
Zip: http://repo.or.cz/w/msysgit.git?a=snapshot;h=master;sf=zip
This environment is also needed when you use the resulting
executables, since Git might need to run scripts which are part of
the git operations.
3. Inside Git's directory run the command:
make common-cmds.h
to generate the common-cmds.h file needed to compile git.
4. Then either build Git with the GNU Make Makefile in the Git projects
root
make MSVC=1
or generate Visual Studio solution/projects (.sln/.vcproj) with the
command
perl contrib/buildsystems/generate -g Vcproj
and open and build the solution with the IDE
devenv git.sln /useenv
or build with the IDE build engine directly from the command line
devenv git.sln /useenv /build "Release|Win32"
The /useenv option is required, so Visual Studio picks up the
environment variables for the support libraries required to build
Git, which you set up in step 1.
Done!