| The Steps to Build Git with VS2015 or VS2017 from the command line. | |
| 1. Install the "vcpkg" open source package manager and build essential | |
| third-party libraries. The steps for this have been captured in a | |
| set of convenience scripts. These can be run from a stock Command | |
| Prompt or from an SDK bash window: | |
| $ cd <repo_root> | |
| $ ./compat/vcbuild/vcpkg_install.bat | |
| The vcpkg tools and all of the third-party sources will be installed | |
| in this folder: | |
| <repo_root>/compat/vcbuild/vcpkg/ | |
| A file will be created with a set of Makefile macros pointing to a | |
| unified "include", "lib", and "bin" directory (release and debug) for | |
| all of the required packages. This file will be included by the main | |
| Makefile: | |
| <repo_root>/compat/vcbuild/MSVC-DEFS-GEN | |
| 2. OPTIONALLY copy the third-party *.dll and *.pdb files into the repo | |
| root to make it easier to run and debug git.exe without having to | |
| manipulate your PATH. This is especially true for debug sessions in | |
| Visual Studio. | |
| Use ONE of the following forms which should match how you want to | |
| compile git.exe. | |
| $ ./compat/vcbuild/vcpkg_copy_dlls.bat debug | |
| $ ./compat/vcbuild/vcpkg_copy_dlls.bat release | |
| 3. Build git using MSVC from an SDK bash window using one of the | |
| following commands: | |
| $ make MSVC=1 | |
| $ make MSVC=1 DEBUG=1 | |
| ================================================================ | |
| Alternatively, run `make vcxproj` and then load the generated `git.sln` in | |
| Visual Studio. The initial build will install the vcpkg system and build the | |
| dependencies automatically. This will take a while. | |
| Instead of generating the `git.sln` file yourself (which requires a full Git | |
| for Windows SDK), you may want to consider fetching the `vs/master` branch of | |
| https://github.com/git-for-windows/git instead (which is updated automatically | |
| via CI running `make vcxproj`). The `vs/master` branch does not require a Git | |
| for Windows to build, but you can run the test scripts in a regular Git Bash. | |
| Note that `make vcxproj` will automatically add and commit the generated `.sln` | |
| and `.vcxproj` files to the repo. This is necessary to allow building a | |
| fully-testable Git in Visual Studio, where a regular Git Bash can be used to | |
| run the test scripts (as opposed to a full Git for Windows SDK): a number of | |
| build targets, such as Git commands implemented as Unix shell scripts (where | |
| `@@SHELL_PATH@@` and other placeholders are interpolated) require a full-blown | |
| Git for Windows SDK (which is about 10x the size of a regular Git for Windows | |
| installation). | |
| If your plan is to open a Pull Request with Git for Windows, it is a good idea | |
| to drop this commit before submitting. | |
| ================================================================ | |
| 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 generated-hdrs | |
| to generate the header 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! |