Merge pull request #10426 from akien-mga/drop-old-mingw32

Windows: Drop support for obsolete MinGW
This commit is contained in:
Rémi Verschelde 2017-08-18 22:40:21 +02:00 committed by GitHub
commit b044e7d30d

View file

@ -14,11 +14,11 @@ def get_name():
def can_build(): def can_build():
if (os.name == "nt"): if (os.name == "nt"):
# building natively on windows! # Building natively on Windows
if (os.getenv("VCINSTALLDIR")): if (os.getenv("VCINSTALLDIR")): # MSVC
return True return True
else:
print("\nMSVC not detected, attempting MinGW.") print("MSVC not detected (no VCINSTALLDIR environment variable), attempting MinGW.")
mingw32 = "" mingw32 = ""
mingw64 = "" mingw64 = ""
if (os.getenv("MINGW32_PREFIX")): if (os.getenv("MINGW32_PREFIX")):
@ -27,56 +27,43 @@ def can_build():
mingw64 = os.getenv("MINGW64_PREFIX") mingw64 = os.getenv("MINGW64_PREFIX")
test = "gcc --version > NUL 2>&1" test = "gcc --version > NUL 2>&1"
if os.system(test) != 0 and os.system(mingw32 + test) != 0 and os.system(mingw64 + test) != 0: if (os.system(test) == 0 or os.system(mingw32 + test) == 0 or os.system(mingw64 + test) == 0):
print("- could not detect gcc.")
print("Please, make sure a path to a MinGW /bin directory is accessible into the environment PATH.\n")
return False
else:
print("- gcc detected.")
return True return True
if (os.name == "posix"): if (os.name == "posix"):
# Cross-compiling with MinGW-w64 (old MinGW32 is not supported)
mingw = "i586-mingw32msvc-"
mingw64 = "x86_64-w64-mingw32-"
mingw32 = "i686-w64-mingw32-" mingw32 = "i686-w64-mingw32-"
mingw64 = "x86_64-w64-mingw32-"
if (os.getenv("MINGW32_PREFIX")): if (os.getenv("MINGW32_PREFIX")):
mingw32 = os.getenv("MINGW32_PREFIX") mingw32 = os.getenv("MINGW32_PREFIX")
mingw = mingw32
if (os.getenv("MINGW64_PREFIX")): if (os.getenv("MINGW64_PREFIX")):
mingw64 = os.getenv("MINGW64_PREFIX") mingw64 = os.getenv("MINGW64_PREFIX")
test = "gcc --version > /dev/null 2>&1" test = "gcc --version > /dev/null 2>&1"
if (os.system(mingw + test) == 0 or os.system(mingw64 + test) == 0 or os.system(mingw32 + test) == 0): if (os.system(mingw64 + test) == 0 or os.system(mingw32 + test) == 0):
return True return True
print("Could not detect MinGW. Ensure its binaries are in your PATH or that MINGW32_PREFIX or MINGW64_PREFIX are properly defined.")
return False return False
def get_opts(): def get_opts():
mingw = ""
mingw32 = "" mingw32 = ""
mingw64 = "" mingw64 = ""
if (os.name == "posix"): if (os.name == "posix"):
mingw = "i586-mingw32msvc-"
mingw32 = "i686-w64-mingw32-" mingw32 = "i686-w64-mingw32-"
mingw64 = "x86_64-w64-mingw32-" mingw64 = "x86_64-w64-mingw32-"
if os.system(mingw32 + "gcc --version > /dev/null 2>&1") != 0:
mingw32 = mingw
if (os.getenv("MINGW32_PREFIX")): if (os.getenv("MINGW32_PREFIX")):
mingw32 = os.getenv("MINGW32_PREFIX") mingw32 = os.getenv("MINGW32_PREFIX")
mingw = mingw32
if (os.getenv("MINGW64_PREFIX")): if (os.getenv("MINGW64_PREFIX")):
mingw64 = os.getenv("MINGW64_PREFIX") mingw64 = os.getenv("MINGW64_PREFIX")
return [ return [
('mingw_prefix', 'MinGW Prefix', mingw32), ('mingw_prefix_32', 'MinGW prefix (Win32)', mingw32),
('mingw_prefix_64', 'MinGW Prefix 64 bits', mingw64), ('mingw_prefix_64', 'MinGW prefix (Win64)', mingw64),
] ]
@ -88,12 +75,10 @@ def get_flags():
def build_res_file(target, source, env): def build_res_file(target, source, env):
cmdbase = ""
if (env["bits"] == "32"): if (env["bits"] == "32"):
cmdbase = env['mingw_prefix'] cmdbase = env['mingw_prefix_32']
else: else:
cmdbase = env['mingw_prefix_64'] cmdbase = env['mingw_prefix_64']
CPPPATH = env['CPPPATH']
cmdbase = cmdbase + 'windres --include-dir . ' cmdbase = cmdbase + 'windres --include-dir . '
import subprocess import subprocess
for x in range(len(source)): for x in range(len(source)):
@ -249,7 +234,7 @@ def configure(env):
env.Append(LINKFLAGS=['-static']) env.Append(LINKFLAGS=['-static'])
env.Append(LINKFLAGS=['-static-libgcc']) env.Append(LINKFLAGS=['-static-libgcc'])
env.Append(LINKFLAGS=['-static-libstdc++']) env.Append(LINKFLAGS=['-static-libstdc++'])
mingw_prefix = env["mingw_prefix"] mingw_prefix = env["mingw_prefix_32"]
else: else:
env.Append(LINKFLAGS=['-static']) env.Append(LINKFLAGS=['-static'])
mingw_prefix = env["mingw_prefix_64"] mingw_prefix = env["mingw_prefix_64"]