A long time ago, we added support to build .sln and .vcproj files for use within Visual Studio, so that Git could be built in that popular IDE. This support languished for years and was finally brought back into Git for Windows partially through the jh/msvc branch that was just merged into master. With the tremendous help by Philip Oakley and Jeff Hostetler, this re-adds support for Visual Studio, focusing on VS 2015 and later (older versions are currently unsupported, even if we worked a bit on that front, too; If there are volunteers to add support for older versions, I would be delighted to review PRs to that end on https://github.com/git-for-windows/git). Note: the currently preferred way to contribute using Visual Studio is by using Git for Windows' vs/master branch (which is automatically generated using the make vcxproj build target that this patch series adds, updated every time Git for Windows' master advances). My plan is to provide a similar branch in GitGitGadget, based on top of git.git's master, once this patch series is integrated. Johannes Schindelin (15): Vcproj.pm: auto-generate GUIDs Vcproj.pm: do not configure VCWebServiceProxyGeneratorTool Vcproj.pm: urlencode '<' and '>' when generating VC projects contrib/buildsystems: ignore irrelevant files in Generators/ contrib/buildsystems: error out on unknown option contrib/buildsystems: handle libiconv, too contrib/buildsystems: also handle -lexpat contrib/buildsystems: handle options starting with a slash contrib/buildsystems: add a backend for modern Visual Studio versions msvc: add a Makefile target to pre-generate the Visual Studio solution vcxproj: also link-or-copy builtins .gitignore: ignore Visual Studio's temporary/generated files bin-wrappers: append `.exe` to target paths if necessary t5505,t5516: create .git/branches/ when needed git: avoid calling aliased builtins via their dashed form Philip Oakley (9): Vcproj.pm: list git.exe first to be startup project contrib/buildsystems: ignore invalidcontinue.obj contrib/buildsystems: fix misleading error message contrib/buildsystems: handle quoted spaces in filenames contrib/buildsystems: ignore gettext stuff contrib/buildsystems: redirect errors of the dry run into a log file contrib/buildsystems: optionally capture the dry-run in a file contrib/buildsystems: handle the curl library option .gitignore: touch up the entries regarding Visual Studio .gitignore | 8 +- Makefile | 2 +- compat/vcbuild/README | 23 ++ config.mak.uname | 76 ++++ contrib/buildsystems/Generators.pm | 2 +- contrib/buildsystems/Generators/Vcproj.pm | 119 ++----- contrib/buildsystems/Generators/Vcxproj.pm | 387 +++++++++++++++++++++ contrib/buildsystems/engine.pl | 55 ++- git.c | 3 - t/t5505-remote.sh | 2 + t/t5516-fetch-push.sh | 4 + 11 files changed, 581 insertions(+), 100 deletions(-) create mode 100644 contrib/buildsystems/Generators/Vcxproj.pm base-commit: 9d418600f4d10dcbbfb0b5fdbc71d509e03ba719 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-287%2Fdscho%2Fvisual-studio-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-287/dscho/visual-studio-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/287 -- gitgitgadget