All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 00/17] Fix MSVC support, at long last
Date: Tue, 18 Jun 2019 05:23:55 -0700 (PDT)	[thread overview]
Message-ID: <pull.149.git.gitgitgadget@gmail.com> (raw)

Philip Oakley and Jeff Hostetler worked quite a bit on getting Git to
compile with MS Visual C again, and this patch series is the culmination of
those efforts. With these patches, it is as easy as

make MSVC=1

Note: the patches went through quite the number of iterations. For example,
for a long time we targeted Visual Studio 2015, and used NuGet packages for
the dependencies (such as OpenSSL, cURL, etc), while the current iteration
targets Visual Studio 2017 and uses vcpkg
[https://docs.microsoft.com/en-us/cpp/vcpkg?view=vs-2017] for dependencies.
Hopefully I did not forget to remove any remnants of those previous
versions.

Please also note that this patch series is part 1 of 3 in a bigger story:
the next patch series will add support to build Git in Microsoft Visual
Studio, and the third patch series will add Continuous Testing by adding an
MSVC build and a corresponding parallelized test job to our Azure Pipeline.

Jeff Hostetler (8):
  cache-tree.c: avoid reusing the DEBUG constant
  msvc: mark a variable as non-const
  msvc: do not re-declare the timespec struct
  msvc: define ftello()
  msvc: fix detect_msys_tty()
  msvc: support building Git using MS Visual C++
  msvc: do not pretend to support all signals
  msvc: ignore .dll and incremental compile output

Johannes Schindelin (6):
  Mark .bat files as requiring CR/LF endings
  t0001 (mingw): do not expect a specific order of stdout/stderr
  obstack: fix compiler warning
  mingw: replace mingw_startup() hack
  msvc: fix dependencies of compat/msvc.c
  msvc: avoid debug assertion windows in Debug Mode

Philip Oakley (3):
  msvc: include sigset_t definition
  msvc: define O_ACCMODE
  msvc: add pragmas for common warnings

 .gitattributes                     |   1 +
 .gitignore                         |   5 +
 Makefile                           |  42 ++++++-
 cache-tree.c                       |  14 +--
 compat/mingw.c                     | 100 +++++++++++++----
 compat/mingw.h                     |  24 ++--
 compat/msvc.h                      |  10 ++
 compat/obstack.h                   |   2 +-
 compat/vcbuild/.gitignore          |   3 +
 compat/vcbuild/README              |  51 +++++++++
 compat/vcbuild/find_vs_env.bat     | 169 +++++++++++++++++++++++++++++
 compat/vcbuild/scripts/clink.pl    |  41 ++++++-
 compat/vcbuild/vcpkg_copy_dlls.bat |  39 +++++++
 compat/vcbuild/vcpkg_install.bat   |  80 ++++++++++++++
 compat/winansi.c                   |  13 +++
 config.mak.uname                   |  79 ++++++++++++--
 git-compat-util.h                  |   9 ++
 t/t0001-init.sh                    |   3 +-
 18 files changed, 628 insertions(+), 57 deletions(-)
 create mode 100644 compat/vcbuild/.gitignore
 create mode 100644 compat/vcbuild/find_vs_env.bat
 create mode 100644 compat/vcbuild/vcpkg_copy_dlls.bat
 create mode 100644 compat/vcbuild/vcpkg_install.bat


base-commit: b697d92f56511e804b8ba20ccbe7bdc85dc66810
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-149%2Fdscho%2Fmsvc-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-149/dscho/msvc-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/149
-- 
gitgitgadget

             reply	other threads:[~2019-06-18 12:23 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-18 12:23 Johannes Schindelin via GitGitGadget [this message]
2019-06-18 12:23 ` [PATCH 01/17] Mark .bat files as requiring CR/LF endings Johannes Schindelin via GitGitGadget
2019-06-18 12:23 ` [PATCH 03/17] cache-tree.c: avoid reusing the DEBUG constant Jeff Hostetler via GitGitGadget
2019-06-18 23:14   ` Eric Sunshine
2019-06-19 11:19     ` Johannes Schindelin
2019-06-19 15:21     ` Junio C Hamano
2019-06-19  0:08   ` Carlo Arenas
2019-06-19 11:17     ` Johannes Schindelin
2019-06-19 17:15       ` Carlo Arenas
2019-06-19 21:03         ` Johannes Schindelin
2019-06-18 12:23 ` [PATCH 02/17] t0001 (mingw): do not expect a specific order of stdout/stderr Johannes Schindelin via GitGitGadget
2019-06-18 23:12   ` Eric Sunshine
2019-06-19  6:19     ` Johannes Sixt
2019-06-19  6:40       ` Eric Sunshine
2019-06-19 11:26         ` Johannes Schindelin
2019-06-19 11:30           ` Johannes Schindelin
2019-06-19 17:24             ` Johannes Sixt
2019-06-19 20:58               ` Johannes Schindelin
2019-06-18 12:23 ` [PATCH 04/17] obstack: fix compiler warning Johannes Schindelin via GitGitGadget
2019-06-18 12:23 ` [PATCH 06/17] msvc: fix dependencies of compat/msvc.c Johannes Schindelin via GitGitGadget
2019-06-18 12:23 ` [PATCH 05/17] mingw: replace mingw_startup() hack Johannes Schindelin via GitGitGadget
2019-06-18 12:24 ` [PATCH 07/17] msvc: include sigset_t definition Philip Oakley via GitGitGadget
2019-06-18 12:24 ` [PATCH 08/17] msvc: define O_ACCMODE Philip Oakley via GitGitGadget
2019-06-18 12:24 ` [PATCH 09/17] msvc: mark a variable as non-const Jeff Hostetler via GitGitGadget
2019-06-18 12:24 ` [PATCH 10/17] msvc: do not re-declare the timespec struct Jeff Hostetler via GitGitGadget
2019-06-18 12:24 ` [PATCH 12/17] msvc: fix detect_msys_tty() Jeff Hostetler via GitGitGadget
2019-06-18 12:24 ` [PATCH 11/17] msvc: define ftello() Jeff Hostetler via GitGitGadget
2019-06-18 12:24 ` [PATCH 13/17] msvc: support building Git using MS Visual C++ Jeff Hostetler via GitGitGadget
2019-06-19  0:51   ` Carlo Arenas
2019-06-19 12:50     ` Johannes Schindelin
2019-06-19  8:35   ` Eric Sunshine
2019-06-19 15:11     ` Johannes Schindelin
2019-06-18 12:24 ` [PATCH 14/17] msvc: add pragmas for common warnings Philip Oakley via GitGitGadget
2019-06-18 12:24 ` [PATCH 15/17] msvc: do not pretend to support all signals Jeff Hostetler via GitGitGadget
2019-06-19  4:10   ` Eric Sunshine
2019-06-19 16:49     ` Johannes Schindelin
2019-06-18 12:24 ` [PATCH 16/17] msvc: avoid debug assertion windows in Debug Mode Johannes Schindelin via GitGitGadget
2019-06-18 12:24 ` [PATCH 17/17] msvc: ignore .dll and incremental compile output Jeff Hostetler via GitGitGadget
2019-06-19 21:05 ` [PATCH v2 00/20] Fix MSVC support, at long last Johannes Schindelin via GitGitGadget
2019-06-19 21:05   ` [PATCH v2 01/20] mingw: fix a typo in the msysGit-specific section Johannes Schindelin via GitGitGadget
2019-06-19 21:05   ` [PATCH v2 03/20] t0001 (mingw): do not expect a specific order of stdout/stderr Johannes Schindelin via GitGitGadget
2019-06-19 21:05   ` [PATCH v2 02/20] Mark .bat files as requiring CR/LF endings Johannes Schindelin via GitGitGadget
2019-06-19 21:05   ` [PATCH v2 04/20] cache-tree/blame: avoid reusing the DEBUG constant Jeff Hostetler via GitGitGadget
2019-06-19 21:05   ` [PATCH v2 05/20] obstack: fix compiler warning Johannes Schindelin via GitGitGadget
2019-06-19 21:05   ` [PATCH v2 06/20] mingw: replace mingw_startup() hack Johannes Schindelin via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 07/20] msvc: fix dependencies of compat/msvc.c Johannes Schindelin via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 08/20] msvc: include sigset_t definition Philip Oakley via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 09/20] msvc: define O_ACCMODE Philip Oakley via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 10/20] msvc: mark a variable as non-const Jeff Hostetler via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 11/20] msvc: do not re-declare the timespec struct Jeff Hostetler via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 12/20] msvc: define ftello() Jeff Hostetler via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 13/20] msvc: fix detect_msys_tty() Jeff Hostetler via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 14/20] msvc: update Makefile to allow for spaces in the compiler path Jeff Hostetler via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 15/20] msvc: support building Git using MS Visual C++ Jeff Hostetler via GitGitGadget
2019-06-21 20:17     ` Johannes Schindelin
2019-06-21 20:45       ` Junio C Hamano
2019-06-19 21:06   ` [PATCH v2 16/20] msvc: add a compile-time flag to allow detailed heap debugging Jeff Hostetler via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 18/20] msvc: do not pretend to support all signals Jeff Hostetler via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 17/20] msvc: add pragmas for common warnings Philip Oakley via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 19/20] msvc: avoid debug assertion windows in Debug Mode Johannes Schindelin via GitGitGadget
2019-06-19 21:06   ` [PATCH v2 20/20] msvc: ignore .dll and incremental compile output Jeff Hostetler via GitGitGadget
2019-06-25 14:49   ` [PATCH v3 00/20] Fix MSVC support, at long last Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 01/20] mingw: fix a typo in the msysGit-specific section Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 02/20] Mark .bat files as requiring CR/LF endings Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 03/20] t0001 (mingw): do not expect a specific order of stdout/stderr Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 04/20] cache-tree/blame: avoid reusing the DEBUG constant Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 05/20] obstack: fix compiler warning Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 06/20] mingw: replace mingw_startup() hack Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 07/20] msvc: fix dependencies of compat/msvc.c Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 08/20] msvc: include sigset_t definition Philip Oakley via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 10/20] msvc: mark a variable as non-const Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 09/20] msvc: define O_ACCMODE Philip Oakley via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 11/20] msvc: do not re-declare the timespec struct Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 12/20] msvc: define ftello() Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 13/20] msvc: fix detect_msys_tty() Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 14/20] msvc: update Makefile to allow for spaces in the compiler path Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 15/20] msvc: support building Git using MS Visual C++ Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 17/20] msvc: add pragmas for common warnings Philip Oakley via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 16/20] msvc: add a compile-time flag to allow detailed heap debugging Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 18/20] msvc: do not pretend to support all signals Jeff Hostetler via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 19/20] msvc: avoid debug assertion windows in Debug Mode Johannes Schindelin via GitGitGadget
2019-06-25 14:49     ` [PATCH v3 20/20] msvc: ignore .dll and incremental compile output Jeff Hostetler via GitGitGadget
2019-06-25 17:50     ` [PATCH v3 00/20] Fix MSVC support, at long last Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pull.149.git.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.