[gjs/master.windows: 17/18] win32/NMake: Require Visual Studio 2017 15.6 or later



commit e3492ffd34c7e99d091f210bf86d3501b151ac07
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Fri Feb 22 13:30:42 2019 +0800

    win32/NMake: Require Visual Studio 2017 15.6 or later
    
    The code, in addition to SpiderMonkey 60, requires C++-14 features that
    are supported in Visual Studio 2017 or later, plus we need to use the
    /Zc:externConstexpr compiler flag, which is provided in Visual Studio 2017
    15.6.x or later, so update the NMake Makefiles to check for that.

 win32/Makefile.vc        |  6 +++---
 win32/README.txt         | 12 ++++++------
 win32/config-msvc.mak    |  3 ++-
 win32/detectenv-msvc.mak |  6 +++++-
 4 files changed, 16 insertions(+), 11 deletions(-)
---
diff --git a/win32/Makefile.vc b/win32/Makefile.vc
index 6cbed90a..f56d83f0 100644
--- a/win32/Makefile.vc
+++ b/win32/Makefile.vc
@@ -18,8 +18,8 @@
 
 !if "$(VALID_CFGSET)" == "TRUE"
 
-# We need Visual Studio 2013 or later
-!if $(VSVER) < 12
+# We need Visual Studio 2017 15.6 or later
+!if $(VCVERSION) < 1913
 VALID_MSC = FALSE
 !else
 VALID_MSC = TRUE
@@ -53,7 +53,7 @@ tests: all
 
 !else # "$(VALID_MSC)" == "TRUE"
 all:
-       @echo You need Visual Studio 2013 or later.
+       @echo You need Visual Studio 2017 15.6 or later.
 
 !endif # "$(VALID_MSC)" == "TRUE"
 
diff --git a/win32/README.txt b/win32/README.txt
index 021aaa1a..450f3db6 100644
--- a/win32/README.txt
+++ b/win32/README.txt
@@ -1,14 +1,15 @@
 Instructions for building GJS on Visual Studio
 ==============================================
 Building the GJS on Windows is now supported using Visual Studio
-versions 2013 or later in both 32-bit and 64-bit (x64) flavors,
-via NMake Makefiles.  Due to C++-11 usage, Visual Studio 2012 or
-earlier is not supported.
+versions 2017 15.6.x or later in both 32-bit and 64-bit (x64) flavors,
+via NMake Makefiles.  Due to C++-14 usage, Visual Studio 2015 or
+earlier is not supported, nor is Visual Studio 2017 15.5.x or earlier,
+as the compiler flag /Zc:externConstexpr is needed.
 
 You will need the following items to build GJS using Visual Studio:
 -SpiderMonkey 60 (mozjs-60)
 -GObject-Introspection (G-I) 1.41.4 or later
--GLib 2.50.x or later, (which includes GIO, GObject, and the associated tools)
+-GLib 2.54.x or later, (which includes GIO, GObject, and the associated tools)
 -Cairo including Cairo-GObject support, unless NO_CAIRO=1 is specified.
 -GTK+-3.20.x or later, unless NO_GTK=1 is specified.
 -and anything that the above items depends on.
@@ -49,8 +50,7 @@ PREFIX: Optional.  Base directory of where the third-party headers, libraries
         specified, $(PREFIX) is set as $(srcroot)\..\vs$(X)\$(platform), where
         $(platform) is win32 for 32-bit builds or x64 for 64-bit builds, and
         $(X) is the short version of the Visual Studio used, as follows:
-        2013: 12
-        2015: 14
+        2017: 15
 
 Explanation of options, set by <option>=1:
 ------------------------------------------
diff --git a/win32/config-msvc.mak b/win32/config-msvc.mak
index 95e9117b..4512b442 100644
--- a/win32/config-msvc.mak
+++ b/win32/config-msvc.mak
@@ -59,7 +59,8 @@ GJS_BASE_CFLAGS =                     \
        /wd4530                         \
        /wd4099                         \
        /wd4251                         \
-       /wd4800
+       /wd4800                         \
+       /Zc:externConstexpr
 
 LIBGJS_DEP_INCLUDES = $(BASE_INCLUDES)
 LIBGJS_DEP_LIBS = $(LIBGJS_BASE_DEP_LIBS)
diff --git a/win32/detectenv-msvc.mak b/win32/detectenv-msvc.mak
index 24d19609..7b64576f 100644
--- a/win32/detectenv-msvc.mak
+++ b/win32/detectenv-msvc.mak
@@ -87,8 +87,12 @@ VSVER = 10
 VSVER = 11
 !elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
 VSVER = 12
-!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 2000
+!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 1910
 VSVER = 14
+!elseif $(VCVERSION) > 1909 && $(VCVERSION) < 1920
+VSVER = 15
+!elseif $(VCVERSION) > 1919 && $(VCVERSION) < 2000
+VSVER = 16
 !else
 VSVER = 0
 !endif


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