Skip to content

Commit 401daf8

Browse files
committed
Merge pull request #1304 from jeffhostetler/vs2017_vcpkg
VS2017 vcpkg support.
2 parents 2fe05e2 + 6268b56 commit 401daf8

18 files changed

+506
-578
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*.pl eof=lf diff=perl
66
*.pm eol=lf diff=perl
77
*.py eol=lf diff=python
8+
*.bat eol=crlf
89
/Documentation/git-*.txt eol=lf
910
/command-list.txt eol=lf
1011
/GIT-VERSION-GEN eol=lf

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/GIT-BUILD-OPTIONS
22
/GIT-CFLAGS
33
/GIT-LDFLAGS
4-
/GIT-MSVC-GEN
54
/GIT-PREFIX
65
/GIT-PERL-DEFINES
76
/GIT-PERL-HEADER

.nuget/NuGet.config

Lines changed: 0 additions & 6 deletions
This file was deleted.

Makefile

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2620,9 +2620,6 @@ ifdef GIT_INTEROP_MAKE_OPTS
26202620
endif
26212621
ifdef TEST_GIT_INDEX_VERSION
26222622
@echo TEST_GIT_INDEX_VERSION=\''$(subst ','\'',$(subst ','\'',$(TEST_GIT_INDEX_VERSION)))'\' >>$@+
2623-
endif
2624-
ifdef MSVC_DEPS
2625-
@echo MSVC_DEPS=\''$(subst ','\'',$(subst ','\'',$(MSVC_DEPS)))'\' >>$@+
26262623
endif
26272624
@if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi
26282625

@@ -2772,8 +2769,6 @@ install: all
27722769
$(INSTALL) -m 644 $(SCRIPT_LIB) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
27732770
$(INSTALL) $(install_bindir_programs) '$(DESTDIR_SQ)$(bindir_SQ)'
27742771
ifdef MSVC
2775-
$(INSTALL) compat/vcbuild/GEN.DEPS/bin/*.dll '$(DESTDIR_SQ)$(bindir_SQ)'
2776-
$(INSTALL) compat/vcbuild/GEN.DEPS/bin/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
27772772
# We DO NOT install the individual foo.o.pdb files because they
27782773
# have already been rolled up into the exe's pdb file.
27792774
# We DO NOT have pdb files for the builtin commands (like git-status.exe)
@@ -2792,6 +2787,13 @@ ifdef MSVC
27922787
$(INSTALL) git-remote-testsvn.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
27932788
$(INSTALL) git-sh-i18n--envsubst.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
27942789
$(INSTALL) git-show-index.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2790+
ifndef DEBUG
2791+
$(INSTALL) $(vcpkg_rel_bin)/*.dll '$(DESTDIR_SQ)$(bindir_SQ)'
2792+
$(INSTALL) $(vcpkg_rel_bin)/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2793+
else
2794+
$(INSTALL) $(vcpkg_dbg_bin)/*.dll '$(DESTDIR_SQ)$(bindir_SQ)'
2795+
$(INSTALL) $(vcpkg_dbg_bin)/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2796+
endif
27952797
endif
27962798
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
27972799
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mergetools_instdir_SQ)'
@@ -2996,9 +2998,15 @@ endif
29962998
ifdef MSVC
29972999
$(RM) $(patsubst %.o,%.o.pdb,$(OBJECTS))
29983000
$(RM) $(patsubst %.exe,%.pdb,$(OTHER_PROGRAMS))
3001+
$(RM) $(patsubst %.exe,%.iobj,$(OTHER_PROGRAMS))
3002+
$(RM) $(patsubst %.exe,%.ipdb,$(OTHER_PROGRAMS))
29993003
$(RM) $(patsubst %.exe,%.pdb,$(PROGRAMS))
3004+
$(RM) $(patsubst %.exe,%.iobj,$(PROGRAMS))
3005+
$(RM) $(patsubst %.exe,%.ipdb,$(PROGRAMS))
30003006
$(RM) $(patsubst %.exe,%.pdb,$(TEST_PROGRAMS))
3001-
$(RM) GIT-MSVC-GEN
3007+
$(RM) $(patsubst %.exe,%.iobj,$(TEST_PROGRAMS))
3008+
$(RM) $(patsubst %.exe,%.ipdb,$(TEST_PROGRAMS))
3009+
$(RM) compat/vcbuild/MSVC-DEFS-GEN
30023010
endif
30033011

30043012
.PHONY: all install profile-clean cocciclean clean strip

compat/vcbuild/.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
GEN.*
1+
/vcpkg/
2+
/MSVC-DEFS-GEN
3+
/VCPKG-DEFS

compat/vcbuild/Makefile

Lines changed: 0 additions & 147 deletions
This file was deleted.

compat/vcbuild/README

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,54 @@
1+
The Steps to Build Git with VS2015 or VS2017 from the command line.
2+
3+
1. Install the "vcpkg" open source package manager and build essential
4+
third-party libaries. The steps for this have been captured in a
5+
set of convenience scripts. These can be run from a stock Command
6+
Prompt or from an SDK bash window:
7+
8+
$ cd <repo_root>
9+
$ ./compat/vcbuild/vcpkg_install.bat
10+
11+
The vcpkg tools and all of the third-party sources will be installed
12+
in this folder:
13+
<repo_root>/compat/vcbuild/vcpkg/
14+
15+
A file will be created with a set of Makefile macros pointing to a
16+
unified "include", "lib", and "bin" directory (release and debug) for
17+
all of the required packages. This file will be included by the main
18+
Makefile:
19+
<repo_root>/compat/vcbuild/MSVC-DEFS-GEN
20+
21+
2. OPTIONALLY copy the third-party *.dll and *.pdb files into the repo
22+
root to make it easier to run and debug git.exe without having to
23+
manipulate your PATH. This is especially true for debug sessions in
24+
Visual Studio.
25+
26+
Use ONE of the following forms which should match how you want to
27+
compile git.exe.
28+
29+
$ ./compat/vcbuild/vcpkg_copy_packages.bat debug
30+
$ ./compat/vcbuild/vcpkg_copy_packages.bat release
31+
32+
3. Build git using MSVC from an SDK bash window using one of the
33+
following commands:
34+
35+
$ make MSVC=1
36+
$ make MSVC=1 DEBUG=1
37+
38+
================================================================
39+
40+
Alternatively, run `make MSVC=1 vcxproj` and then load the generated
41+
git.sln in Visual Studio. The initial build will install the vcpkg
42+
system and build the dependencies automatically. This will take a while.
43+
44+
Note that this will automatically add and commit the generated
45+
.sln and .vcxproj files to the repo. You may want to drop this
46+
commit before submitting a Pull Request....
47+
48+
Or maybe we should put the .sln/.vcxproj files in the .gitignores
49+
and not do this. I'm not sure.
50+
51+
================================================================
152
The Steps of Build Git with VS2008
253

354
1. You need the build environment, which contains the Git dependencies

compat/vcbuild/README_VS2015.txt

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)