summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChun-wei Fan <fanchunwei@src.gnome.org>2017-02-15 14:31:27 +0800
committerChun-wei Fan <fanchunwei@src.gnome.org>2017-02-15 14:31:27 +0800
commitabe78893ecbfe1308b7af95a48da6b0321e04f45 (patch)
tree8b222f36de35b1a60fe44581c488fc7453942888
parent6c9dfc4b7b9d564058398cf30ac41210427c395a (diff)
downloadlibcroco-abe78893ecbfe1308b7af95a48da6b0321e04f45.tar.gz
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.
-rw-r--r--build/Makefile-newvs.am18
-rw-r--r--build/win32/Makefile.am2
-rw-r--r--build/win32/vs10/Makefile.am1
-rw-r--r--build/win32/vs15/Makefile.am38
-rw-r--r--configure.ac8
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