[libcroco] Visual Studio builds: Support Visual Studio 2017



commit abe78893ecbfe1308b7af95a48da6b0321e04f45
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Feb 15 14:31:27 2017 +0800

    Visual Studio builds: Support Visual Studio 2017
    
    This updates the autotools scripts so that we can support Visual Studio 2017
    by copying the 2010 projects and update items in there as needed.
    
    Note that the format of the toolset version string changed for Visual Studio
    2017, so allow a custom toolset version string to be passed in and used,
    otherwise the platform toolset string is generated as before.
    
    Note also that Visual Studio 2017 aims to be compatible with 2015 on the
    CRT level, so one should be able to use 2017-built binaries with 2015-built
    binaries without problems.

 build/Makefile-newvs.am      |   18 +++++++++++++-----
 build/win32/Makefile.am      |    2 +-
 build/win32/vs10/Makefile.am |    1 +
 build/win32/vs15/Makefile.am |   38 ++++++++++++++++++++++++++++++++++++++
 configure.ac                 |    8 ++++++++
 5 files changed, 61 insertions(+), 6 deletions(-)
---
diff --git a/build/Makefile-newvs.am b/build/Makefile-newvs.am
index b5e3216..8161177 100644
--- a/build/Makefile-newvs.am
+++ b/build/Makefile-newvs.am
@@ -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
diff --git a/build/win32/Makefile.am b/build/win32/Makefile.am
index 576b177..e4fa9e4 100644
--- a/build/win32/Makefile.am
+++ b/build/win32/Makefile.am
@@ -17,5 +17,5 @@
 #See COPYRIGHTS file for copyright information.
 
 SUBDIRS = \
-       vs9 vs10 vs11 vs12 vs14
+       vs9 vs10 vs11 vs12 vs14 vs15
 
diff --git a/build/win32/vs10/Makefile.am b/build/win32/vs10/Makefile.am
index 94582e1..97c885a 100644
--- a/build/win32/vs10/Makefile.am
+++ b/build/win32/vs10/Makefile.am
@@ -39,6 +39,7 @@ croco-install.props: $(top_srcdir)/build/win32/vs10/croco-install.propsin croco.
        -$(RM) $(top_builddir)/build/win32/vs11/croco-install.props
        -$(RM) $(top_builddir)/build/win32/vs12/croco-install.props
        -$(RM) $(top_builddir)/build/win32/vs14/croco-install.props
+       -$(RM) $(top_builddir)/build/win32/vs15/croco-install.props
        $(CPP) -P - <$(top_srcdir)/build/win32/vs10/croco-install.propsin > $@
        rm croco.vs10.headers
 
diff --git a/build/win32/vs15/Makefile.am b/build/win32/vs15/Makefile.am
new file mode 100644
index 0000000..e738572
--- /dev/null
+++ b/build/win32/vs15/Makefile.am
@@ -0,0 +1,38 @@
+# This file is part of The Croco Library
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of version 2.1 of the GNU Lesser General Public
+# License as published by the Free Software Foundation.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA
+
+# Author: Fan, Chun-wei
+# See COPYRIGHTS file for copyright information.
+
+EXTRA_DIST = \
+       libcroco.sln            \
+       croco.vcxproj           \
+       croco.vcxproj.filters           \
+       csslint.vcxproj         \
+       csslint.vcxproj.filters \
+       croco-install.vcxproj   \
+       croco-build-defines.props       \
+       croco-gen-srcs.props    \
+       croco-install.props     \
+       croco-version-paths.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
diff --git a/configure.ac b/configure.ac
index 82d27b6..eaf5171 100644
--- a/configure.ac
+++ b/configure.ac
@@ -118,6 +118,13 @@ fi
 
 AC_SUBST([BSYMBOLIC_LDFLAG])
 
+##############################################
+# 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])
+
 ###################
 # Compiler warnings
 ###################
@@ -155,6 +162,7 @@ build/win32/vs10/croco-version-paths.props
 build/win32/vs11/Makefile
 build/win32/vs12/Makefile
 build/win32/vs14/Makefile
+build/win32/vs15/Makefile
 docs/Makefile
 docs/examples/Makefile
 docs/reference/Makefile


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