Skip to content

Commit f932d25

Browse files
committed
Merge pull request #1304 from jeffhostetler/vs2017_vcpkg
VS2017 vcpkg support.
2 parents e7664c3 + 6b6e342 commit f932d25

18 files changed

+506
-563
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*.sh whitespace=indent,trail,space eol=lf
44
*.perl eol=lf
55
*.pm eol=lf
6+
*.bat eol=crlf
67
/Documentation/git-*.txt eol=lf
78
/command-list.txt eol=lf
89
/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-PYTHON-VARS

.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
@@ -2446,9 +2446,6 @@ ifdef GIT_INTEROP_MAKE_OPTS
24462446
endif
24472447
ifdef TEST_GIT_INDEX_VERSION
24482448
@echo TEST_GIT_INDEX_VERSION=\''$(subst ','\'',$(subst ','\'',$(TEST_GIT_INDEX_VERSION)))'\' >>$@+
2449-
endif
2450-
ifdef MSVC_DEPS
2451-
@echo MSVC_DEPS=\''$(subst ','\'',$(subst ','\'',$(MSVC_DEPS)))'\' >>$@+
24522449
endif
24532450
@if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi
24542451

@@ -2588,8 +2585,6 @@ install: all
25882585
$(INSTALL) -m 644 $(SCRIPT_LIB) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
25892586
$(INSTALL) $(install_bindir_programs) '$(DESTDIR_SQ)$(bindir_SQ)'
25902587
ifdef MSVC
2591-
$(INSTALL) compat/vcbuild/GEN.DEPS/bin/*.dll '$(DESTDIR_SQ)$(bindir_SQ)'
2592-
$(INSTALL) compat/vcbuild/GEN.DEPS/bin/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
25932588
# We DO NOT install the individual foo.o.pdb files because they
25942589
# have already been rolled up into the exe's pdb file.
25952590
# We DO NOT have pdb files for the builtin commands (like git-status.exe)
@@ -2608,6 +2603,13 @@ ifdef MSVC
26082603
$(INSTALL) git-remote-testsvn.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
26092604
$(INSTALL) git-sh-i18n--envsubst.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
26102605
$(INSTALL) git-show-index.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2606+
ifndef DEBUG
2607+
$(INSTALL) $(vcpkg_rel_bin)/*.dll '$(DESTDIR_SQ)$(bindir_SQ)'
2608+
$(INSTALL) $(vcpkg_rel_bin)/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2609+
else
2610+
$(INSTALL) $(vcpkg_dbg_bin)/*.dll '$(DESTDIR_SQ)$(bindir_SQ)'
2611+
$(INSTALL) $(vcpkg_dbg_bin)/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2612+
endif
26112613
endif
26122614
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
26132615
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mergetools_instdir_SQ)'
@@ -2801,9 +2803,15 @@ endif
28012803
ifdef MSVC
28022804
$(RM) $(patsubst %.o,%.o.pdb,$(OBJECTS))
28032805
$(RM) $(patsubst %.exe,%.pdb,$(OTHER_PROGRAMS))
2806+
$(RM) $(patsubst %.exe,%.iobj,$(OTHER_PROGRAMS))
2807+
$(RM) $(patsubst %.exe,%.ipdb,$(OTHER_PROGRAMS))
28042808
$(RM) $(patsubst %.exe,%.pdb,$(PROGRAMS))
2809+
$(RM) $(patsubst %.exe,%.iobj,$(PROGRAMS))
2810+
$(RM) $(patsubst %.exe,%.ipdb,$(PROGRAMS))
28052811
$(RM) $(patsubst %.exe,%.pdb,$(TEST_PROGRAMS))
2806-
$(RM) GIT-MSVC-GEN
2812+
$(RM) $(patsubst %.exe,%.iobj,$(TEST_PROGRAMS))
2813+
$(RM) $(patsubst %.exe,%.ipdb,$(TEST_PROGRAMS))
2814+
$(RM) compat/vcbuild/MSVC-DEFS-GEN
28072815
endif
28082816

28092817
.PHONY: all install profile-clean 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)