summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-04-11 17:12:24 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-04-11 17:12:24 +0900
commit93edbb4c08856d6d10d0e2676cc2e36eef839a7d (patch)
treeff7d404a1e679394ac9e39ec185c9f6d8df17178 /win32
parente56e089b1f92dbc55d3239b6843dd0786be9000e (diff)
Support version ranges for MSVC [Feature #16763]
Diffstat (limited to 'win32')
-rw-r--r--win32/Makefile.sub6
-rw-r--r--win32/setup.mak7
2 files changed, 12 insertions, 1 deletions
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 3951ef1..df9eab2 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -607,9 +607,15 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
@$(IFCHANGE) "--timestamp=$(@:/=\)" $(RUBY_CONFIG_H:/=\) <<
#ifndef $(guard)
#define $(guard) 1
+!if defined(MSC_VER_LOWER)
+#if (_MSC_VER < $(MSC_VER_LOWER)) || (_MSC_VER > $(MSC_VER_UPPER))
+#error MSC version unmatch: $(MSC_VER_LOWER)..$(MSC_VER_UPPER) is expected.
+#endif
+!else
#if _MSC_VER != $(MSC_VER)
#error MSC version unmatch: $(MSC_VER) is expected.
#endif
+!endif
#define RUBY_MSVCRT_VERSION $(RT_VER)
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
diff --git a/win32/setup.mak b/win32/setup.mak
index 85ce834..fa8d226 100644
--- a/win32/setup.mak
+++ b/win32/setup.mak
@@ -149,7 +149,12 @@ echo TEENY = RUBY_VERSION_TEENY
#if defined RUBY_PATCHLEVEL && RUBY_PATCHLEVEL < 0
echo RUBY_DEVEL = yes
#endif
-echo MSC_VER = _MSC_VER
+set /a MSC_VER = _MSC_VER
+#if _MSC_VER > 1900
+set /a MSC_VER_LOWER = MSC_VER/10*10+0
+set /a MSC_VER_UPPER = MSC_VER/10*10+9
+#endif
+set MSC_VER
del %0 & exit
<<