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

[PATCH 00/24] Reinstate support for Visual Studio

From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
Date
Jul 18, 2019, 13:19 UTC
Message-ID
<pull.287.git.gitgitgadget@gmail.com>

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
Next: Johannes Schindelin via GitGitGadget
Message 1 of 63 in “Reinstate support for Visual Studio”
  1. 00/24 Reinstate support for Visual StudioJohannes Schindelin via GitGitGadget, Jul 18, 2019
  2. 01/24 Vcproj.pm: auto-generate GUIDsJohannes Schindelin via GitGitGadget, Jul 18, 2019
  3. 03/24 Vcproj.pm: do not configure VCWebServiceProxyGeneratorToolJohannes Schindelin via GitGitGadget, Jul 18, 2019
  4. 02/24 Vcproj.pm: list git.exe first to be startup projectPhilip Oakley via GitGitGadget, Jul 18, 2019
  5. 09/24 contrib/buildsystems: ignore gettext stuffPhilip Oakley via GitGitGadget, Jul 18, 2019
  6. 06/24 contrib/buildsystems: ignore irrelevant files in Generators/Johannes Schindelin via GitGitGadget, Jul 18, 2019
  7. 07/24 contrib/buildsystems: fix misleading error messagePhilip Oakley via GitGitGadget, Jul 18, 2019
  8. 05/24 contrib/buildsystems: ignore invalidcontinue.objPhilip Oakley via GitGitGadget, Jul 18, 2019
  9. 10/24 contrib/buildsystems: redirect errors of the dry run into a log filePhilip Oakley via GitGitGadget, Jul 18, 2019
  10. 11/24 contrib/buildsystems: optionally capture the dry-run in a filePhilip Oakley via GitGitGadget, Jul 18, 2019
  11. 15/24 contrib/buildsystems: also handle -lexpatJohannes Schindelin via GitGitGadget, Jul 18, 2019
  12. 13/24 contrib/buildsystems: handle the curl library optionPhilip Oakley via GitGitGadget, Jul 18, 2019
  13. 12/24 contrib/buildsystems: error out on unknown optionJohannes Schindelin via GitGitGadget, Jul 18, 2019
  14. 18/24 msvc: add a Makefile target to pre-generate the Visual Studio solutionJohannes Schindelin via GitGitGadget, Jul 18, 2019
  15. 20/24 .gitignore: touch up the entries regarding Visual StudioPhilip Oakley via GitGitGadget, Jul 18, 2019
  16. 17/24 contrib/buildsystems: add a backend for modern Visual Studio versionsJohannes Schindelin via GitGitGadget, Jul 18, 2019
  17. 22/24 bin-wrappers: append `.exe` to target paths if necessaryJohannes Schindelin via GitGitGadget, Jul 18, 2019
  18. 24/24 git: avoid calling aliased builtins via their dashed formJohannes Schindelin via GitGitGadget, Jul 18, 2019
  19. 23/24 t5505,t5516: create .git/branches/ when neededJohannes Schindelin via GitGitGadget, Jul 18, 2019
  20. Junio C HamanoJul 18, 2019
  21. Johannes SchindelinJul 19, 2019
  22. Junio C HamanoJul 19, 2019
  23. Junio C HamanoJul 19, 2019
  24. Junio C HamanoJul 19, 2019
  25. 14/24 contrib/buildsystems: handle libiconv, tooJohannes Schindelin via GitGitGadget, Jul 18, 2019
  26. 21/24 .gitignore: ignore Visual Studio's temporary/generated filesJohannes Schindelin via GitGitGadget, Jul 18, 2019
  27. 19/24 vcxproj: also link-or-copy builtinsJohannes Schindelin via GitGitGadget, Jul 18, 2019
  28. 16/24 contrib/buildsystems: handle options starting with a slashJohannes Schindelin via GitGitGadget, Jul 18, 2019
  29. 08/24 contrib/buildsystems: handle quoted spaces in filenamesPhilip Oakley via GitGitGadget, Jul 18, 2019
  30. 04/24 Vcproj.pm: urlencode '<' and '>' when generating VC projectsJohannes Schindelin via GitGitGadget, Jul 18, 2019
  31. 00/23 Reinstate support for Visual StudioJohannes Schindelin via GitGitGadget, Jul 29, 2019
  32. 01/23 Vcproj.pm: auto-generate GUIDsJohannes Schindelin via GitGitGadget, Jul 29, 2019
  33. 02/23 Vcproj.pm: list git.exe first to be startup projectPhilip Oakley via GitGitGadget, Jul 29, 2019
  34. 03/23 Vcproj.pm: do not configure VCWebServiceProxyGeneratorToolJohannes Schindelin via GitGitGadget, Jul 29, 2019
  35. 04/23 Vcproj.pm: urlencode '<' and '>' when generating VC projectsJohannes Schindelin via GitGitGadget, Jul 29, 2019
  36. 05/23 contrib/buildsystems: ignore invalidcontinue.objPhilip Oakley via GitGitGadget, Jul 29, 2019
  37. 11/23 contrib/buildsystems: optionally capture the dry-run in a filePhilip Oakley via GitGitGadget, Jul 29, 2019
  38. 12/23 contrib/buildsystems: error out on unknown optionJohannes Schindelin via GitGitGadget, Jul 29, 2019
  39. 16/23 contrib/buildsystems: handle options starting with a slashJohannes Schindelin via GitGitGadget, Jul 29, 2019
  40. 15/23 contrib/buildsystems: also handle -lexpatJohannes Schindelin via GitGitGadget, Jul 29, 2019
  41. 17/23 contrib/buildsystems: add a backend for modern Visual Studio versionsJohannes Schindelin via GitGitGadget, Jul 29, 2019
  42. 20/23 .gitignore: touch up the entries regarding Visual StudioPhilip Oakley via GitGitGadget, Jul 29, 2019
  43. SZEDER GáborAug 25, 2019
  44. Philip OakleyAug 25, 2019
  45. SZEDER GáborAug 25, 2019
  46. Philip OakleyAug 25, 2019
  47. SZEDER GáborAug 26, 2019
  48. Johannes SchindelinAug 28, 2019
  49. Johannes SchindelinAug 26, 2019
  50. Junio C HamanoAug 26, 2019
  51. 21/23 .gitignore: ignore Visual Studio's temporary/generated filesJohannes Schindelin via GitGitGadget, Jul 29, 2019
  52. 23/23 git: avoid calling aliased builtins via their dashed formJohannes Schindelin via GitGitGadget, Jul 29, 2019
  53. 14/23 contrib/buildsystems: handle libiconv, tooJohannes Schindelin via GitGitGadget, Jul 29, 2019
  54. 19/23 vcxproj: also link-or-copy builtinsJohannes Schindelin via GitGitGadget, Jul 29, 2019
  55. 22/23 bin-wrappers: append `.exe` to target paths if necessaryJohannes Schindelin via GitGitGadget, Jul 29, 2019
  56. 18/23 msvc: add a Makefile target to pre-generate the Visual Studio solutionJohannes Schindelin via GitGitGadget, Jul 29, 2019
  57. 10/23 contrib/buildsystems: redirect errors of the dry run into a log filePhilip Oakley via GitGitGadget, Jul 29, 2019
  58. 06/23 contrib/buildsystems: ignore irrelevant files in Generators/Johannes Schindelin via GitGitGadget, Jul 29, 2019
  59. 13/23 contrib/buildsystems: handle the curl library optionPhilip Oakley via GitGitGadget, Jul 29, 2019
  60. 09/23 contrib/buildsystems: ignore gettext stuffPhilip Oakley via GitGitGadget, Jul 29, 2019
  61. 07/23 contrib/buildsystems: fix misleading error messagePhilip Oakley via GitGitGadget, Jul 29, 2019
  62. 08/23 contrib/buildsystems: handle quoted spaces in filenamesPhilip Oakley via GitGitGadget, Jul 29, 2019
  63. Junio C HamanoJul 29, 2019

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.