summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2017-02-15 13:56:15 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2017-02-15 13:56:15 +0800
commitef339c69f190973a149a4932c0c4800b447d3e11 (patch)
treee047227b415ac4f63f323a489ab280f0059b6b39
parent579a018cf5fa64e73946db0788ea236d402c3a00 (diff)
downloadgobject-introspection-ef339c69f190973a149a4932c0c4800b447d3e11.tar.gz
Visual Studio builds: Support Visual Studio 2017
... in the projects for now, the NMake Makefiles for the introspection files (.gir/.typelib) need to be updated as well, but that needs to be done a bit later. This is done by updating the autotools scripts, so that the Visual Studio 2010 projects are copied and the items are updated as necessary. Note that since the format of the platform toolset changed for Visual Studio 2017, a custom platform toolset string is allowed and used if specified, otherwise the platform toolset string is generated as it was before.
-rw-r--r--configure.ac9
-rw-r--r--win32/Makefile-newvs.am25
-rw-r--r--win32/Makefile.am2
-rw-r--r--win32/vs10/Makefile.am1
-rw-r--r--win32/vs11/Makefile.am1
-rw-r--r--win32/vs12/Makefile.am1
-rw-r--r--win32/vs14/Makefile.am1
-rw-r--r--win32/vs15/Makefile.am37
8 files changed, 64 insertions, 13 deletions
diff --git a/configure.ac b/configure.ac
index 31713479..523d57b7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -360,6 +360,12 @@ fi
AC_SUBST(EXTRA_LINK_FLAGS)
+dnl
+dnl Check whether MSVC toolset is explicitly set
+dnl
+AM_CONDITIONAL(MSVC_BASE_NO_TOOLSET_SET, [test x$MSVC_BASE_TOOLSET = x])
+AM_CONDITIONAL(MSVC_NO_TOOLSET_SET, [test x$MSVC_TOOLSET = x])
+
AC_CONFIG_FILES([
Makefile
tests/Makefile
@@ -381,5 +387,6 @@ win32/vs10/Makefile
win32/vs10/gi-version-paths.props
win32/vs11/Makefile
win32/vs12/Makefile
-win32/vs14/Makefile])
+win32/vs14/Makefile
+win32/vs15/Makefile])
AC_OUTPUT
diff --git a/win32/Makefile-newvs.am b/win32/Makefile-newvs.am
index ecdf3b55..3a91862b 100644
--- a/win32/Makefile-newvs.am
+++ b/win32/Makefile-newvs.am
@@ -8,14 +8,23 @@
# Author: Fan, Chun-wei
# November 05, 2012
-# MSVC_BASE_VER: Baseline MSVC 201x version to copy/process project files from (10 for 2010, 11 for 2012, 12 for 2013, 14 for 2015 and so on)
-# MSVC_BASE_VER_LONG: Long Version of baseline Visual Studio 201x version (2010, 2012, 2013, 14 and so on)
-# 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_BASE_VER: Baseline MSVC 201x version to copy/process project files from (100 for 2010, 120 for 2013)
+# MSVC_BASE_VER_LONG: Long Version of baseline Visual Studio 201x version (2010, 2012, 2013, 14, 15)
+# MSVC_BASE_TOOLSET: Use if baseline MSVC toolset is not in the form v$(MSVC_BASE_VER)0, meaning v$(MSVC_BASE_TOOLSET)
+# 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)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp
+ sed 's/11\.00/12\.00/g' < $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp
sed 's/$(MSVC_BASE_VER_LONG)/$(MSVC_VER_LONG)/g' < $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/win32/vs$(MSVC_VER)/$@
rm $(top_builddir)/win32/vs$(MSVC_VER)/$@.tmp
@@ -26,9 +35,9 @@
%.vcxproj:
if test -e $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@; then \
- sed 's/v$(MSVC_BASE_VER)0/v$(MSVC_VER)0/g' < $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+ sed 's/v$(MSVC_BASE_TOOLSET)/v$(MSVC_TOOLSET)/g' < $(top_srcdir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
else \
- sed 's/v$(MSVC_BASE_VER)0/v$(MSVC_VER)0/g' < $(top_builddir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
+ sed 's/v$(MSVC_BASE_TOOLSET)/v$(MSVC_TOOLSET)/g' < $(top_builddir)/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/win32/vs$(MSVC_VER)/$@; \
fi
%.props: $(top_builddir)/win32/vs$(MSVC_BASE_VER)/Makefile
diff --git a/win32/Makefile.am b/win32/Makefile.am
index ef3498d2..b223873a 100644
--- a/win32/Makefile.am
+++ b/win32/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = vs9 vs10 vs11 vs12 vs14
+SUBDIRS = vs9 vs10 vs11 vs12 vs14 vs15
EXTRA_DIST = \
Makefile.msvc-introspection \
diff --git a/win32/vs10/Makefile.am b/win32/vs10/Makefile.am
index 70d39778..fd3f28ef 100644
--- a/win32/vs10/Makefile.am
+++ b/win32/vs10/Makefile.am
@@ -40,6 +40,7 @@ gi-install.props: $(top_srcdir)/win32/vs10/gi-install.propsin girepository.vs10.
-$(RM) $(top_builddir)/win32/vs11/gi-install.props
-$(RM) $(top_builddir)/win32/vs12/gi-install.props
-$(RM) $(top_builddir)/win32/vs14/gi-install.props
+ -$(RM) $(top_builddir)/win32/vs15/gi-install.props
$(CPP) -P - <$(top_srcdir)/win32/vs10/gi-install.propsin >$@
$(RM) girepository.vs10.headers
$(RM) giscanner.vs10.scripts
diff --git a/win32/vs11/Makefile.am b/win32/vs11/Makefile.am
index 532f20c1..086238c0 100644
--- a/win32/vs11/Makefile.am
+++ b/win32/vs11/Makefile.am
@@ -31,7 +31,6 @@ DISTCLEANFILES = $(EXTRA_DIST)
MSVC_BASE_VER = 10
MSVC_BASE_VER_LONG = 2010
MSVC_VER = 11
-MSVC_FORMAT_VER = 12
MSVC_VER_LONG = 2012
include $(top_srcdir)/win32/Makefile-newvs.am
diff --git a/win32/vs12/Makefile.am b/win32/vs12/Makefile.am
index 45e18bd3..5830d700 100644
--- a/win32/vs12/Makefile.am
+++ b/win32/vs12/Makefile.am
@@ -31,7 +31,6 @@ DISTCLEANFILES = $(EXTRA_DIST)
MSVC_BASE_VER = 10
MSVC_BASE_VER_LONG = 2010
MSVC_VER = 12
-MSVC_FORMAT_VER = 12
MSVC_VER_LONG = 2013
include $(top_srcdir)/win32/Makefile-newvs.am
diff --git a/win32/vs14/Makefile.am b/win32/vs14/Makefile.am
index 4f292ec4..cb2953be 100644
--- a/win32/vs14/Makefile.am
+++ b/win32/vs14/Makefile.am
@@ -31,7 +31,6 @@ DISTCLEANFILES = $(EXTRA_DIST)
MSVC_BASE_VER = 10
MSVC_BASE_VER_LONG = 2010
MSVC_VER = 14
-MSVC_FORMAT_VER = 12
MSVC_VER_LONG = 14
include $(top_srcdir)/win32/Makefile-newvs.am
diff --git a/win32/vs15/Makefile.am b/win32/vs15/Makefile.am
new file mode 100644
index 00000000..d8c38600
--- /dev/null
+++ b/win32/vs15/Makefile.am
@@ -0,0 +1,37 @@
+EXTRA_DIST = \
+ gobject-introspection.sln \
+ gi-build-defines.props \
+ gi-gen-srcs.props \
+ gi-install.props \
+ gi-version-paths.props \
+ gi-prebuild.vcxproj \
+ girepository.vcxproj \
+ girepository.vcxproj.filters \
+ cmph-bdz-test.vcxproj \
+ cmph-bdz-test.vcxproj.filters \
+ cmph.vcxproj \
+ cmph.vcxproj.filters \
+ g-ir-compiler.vcxproj \
+ g-ir-compiler.vcxproj.filters \
+ g-ir-generate.vcxproj \
+ g-ir-generate.vcxproj.filters \
+ g-ir-inspect.vcxproj \
+ g-ir-inspect.vcxproj.filters \
+ glib-print.vcxproj \
+ glib-print.vcxproj.filters \
+ _giscanner.vcxproj \
+ _giscanner.vcxproj.filters \
+ gi-install.vcxproj \
+ gi-install.vcxproj.filters \
+ gi-introspect.vcxproj \
+ README.txt
+
+DISTCLEANFILES = $(EXTRA_DIST)
+
+MSVC_BASE_VER = 10
+MSVC_BASE_VER_LONG = 2010
+MSVC_VER = 15
+MSVC_VER_LONG = 15
+MSVC_TOOLSET = 141
+
+include $(top_srcdir)/win32/Makefile-newvs.am