Visual Studio builds: Add support for Visual Studio 2017

This adds support for Visual Studio 2017 by updating the autotools files for
copying and updating the Visual Studio 2010 project files.

Since the toolset version of Visual Studio 2017 is no longer in the form
of $(MSVC_VER_SHORT)0, we need to specify the full number, but this is a
rather simple change we have here.  Note that Visual Studio 2017's CRT
aims to be compatible with the 2015's CRT, so it should be possible to
use 2017-compiled code with the 2015-compiled ones.
This commit is contained in:
Chun-wei Fan 2017-02-15 12:48:39 +08:00
parent 9da3e7226d
commit 01e7fa1a7e
4 changed files with 68 additions and 6 deletions

View File

@ -9,9 +9,17 @@
# Author: Fan, Chun-wei
# November 05, 2012
# MSVC_VER_LONG: Long Version of Visual Studio (2012, 2013, 14 and so on)
# MSVC_VER: Short Version of Visual Studio (11 for 2012, 12 for 2013, 14 for 2015 and so on)
# MSVC_FORMAT_VER: Use 12 for MSVC 2012 through 2015
# MSVC_VER_LONG: Long Version of target Visual Studio (2012, 2013, 14 and so on)
# MSVC_VER: Short Version of target Visual Studio (110 for 2012, 120 for 2013, 140 for 2015, 141 for 2017)
# MSVC_TOOLSET: Use if target MSVC toolsett is not in the form v $(MSVC_VER)0, meaning v$(MSVC_TOOLSET)
if MSVC_BASE_NO_TOOLSET_SET
MSVC_BASE_TOOLSET = $(MSVC_BASE_VER)0
endif
if MSVC_NO_TOOLSET_SET
MSVC_TOOLSET = $(MSVC_VER)0
endif
%.sln:
sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
@ -25,9 +33,9 @@
%.vcxproj:
if test -e $(top_srcdir)/build/win32/vs10/$@; then \
sed 's/v100/v$(MSVC_VER)0/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
sed 's/v100/v$(MSVC_TOOLSET)/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
else \
sed 's/v100/v$(MSVC_VER)0/g' < $(top_builddir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
sed 's/v100/v$(MSVC_TOOLSET)/g' < $(top_builddir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
fi
%.props: $(top_builddir)/build/win32/vs10/Makefile

View File

@ -4,7 +4,8 @@ SUBDIRS = \
vs10 \
vs11 \
vs12 \
vs14
vs14 \
vs15
EXTRA_DIST = \
glibpc.py \

View File

@ -0,0 +1,48 @@
EXTRA_DIST = \
README.txt \
glib.sln \
glib.vcxproj \
glib.vcxproj.filters \
glib-genmarshal.vcxproj \
glib-genmarshal.vcxproj.filters \
gspawn-win32-helper-console.vcxproj \
gspawn-win32-helper-console.vcxproj.filters \
gspawn-win32-helper.vcxproj \
gspawn-win32-helper.vcxproj.filters \
gmodule.vcxproj \
gmodule.vcxproj.filters \
gobject.vcxproj \
gobject.vcxproj.filters \
gthread.vcxproj \
gthread.vcxproj.filters \
gio.vcxproj \
gio.vcxproj.filters \
glib-compile-schemas.vcxproj \
glib-compile-schemas.vcxproj.filters \
gsettings.vcxproj \
gsettings.vcxproj.filters \
glib-compile-resources.vcxproj \
glib-compile-resources.vcxproj.filters \
gio-tool.vcxproj \
gio-tool.vcxproj.filters \
gresource.vcxproj \
gresource.vcxproj.filters \
gio-querymodules.vcxproj \
gio-querymodules.vcxproj.filters \
gdbus.vcxproj \
gdbus.vcxproj.filters \
glib-install.vcxproj \
glib-install.vcxproj.filters \
glib-build-defines.props \
glib-install.props \
glib-version-paths.props \
glib-gen-srcs.props
DISTCLEANFILES = $(EXTRA_DIST)
MSVC_VER = 15
MSVC_FORMAT_VER = 12
MSVC_VER_LONG = 15
MSVC_TOOLSET = 141
include $(top_srcdir)/build/Makefile-newvs.am

View File

@ -3278,6 +3278,10 @@ AM_CONDITIONAL(HAVE_DBUS1, [test "x$have_dbus1" = "xyes"])
AC_CHECK_PROGS([DBUS_DAEMON], [dbus-daemon])
AM_CONDITIONAL([HAVE_DBUS_DAEMON], [test x$DBUS_DAEMON = xdbus-daemon ])
# Check whether MSVC toolset is explicitly set
AM_CONDITIONAL(MSVC_BASE_NO_TOOLSET_SET, [test x$MSVC_BASE_TOOLSET = x])
AM_CONDITIONAL(MSVC_NO_TOOLSET_SET, [test x$MSVC_TOOLSET = x])
dnl
dnl Check for -Bsymbolic-functions linker flag used to avoid
dnl intra-library PLT jumps, if available.
@ -3441,6 +3445,7 @@ build/win32/vs10/glib-version-paths.props
build/win32/vs11/Makefile
build/win32/vs12/Makefile
build/win32/vs14/Makefile
build/win32/vs15/Makefile
glib/Makefile
glib/libcharset/Makefile
glib/gnulib/Makefile