[gobject-introspection] Visual Studio builds: Support Visual Studio 2017



commit ef339c69f190973a149a4932c0c4800b447d3e11
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Feb 15 13:56:15 2017 +0800

    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.

 configure.ac            |    9 ++++++++-
 win32/Makefile-newvs.am |   25 +++++++++++++++++--------
 win32/Makefile.am       |    2 +-
 win32/vs10/Makefile.am  |    1 +
 win32/vs11/Makefile.am  |    1 -
 win32/vs12/Makefile.am  |    1 -
 win32/vs14/Makefile.am  |    1 -
 win32/vs15/Makefile.am  |   37 +++++++++++++++++++++++++++++++++++++
 8 files changed, 64 insertions(+), 13 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 3171347..523d57b 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 ecdf3b5..3a91862 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 ef3498d..b223873 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 70d3977..fd3f28e 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 532f20c..086238c 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 45e18bd..5830d70 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 4f292ec..cb2953b 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 0000000..d8c3860
--- /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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]