Browse Source

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

Windows: Drop support for obsolete MinGW
Rémi Verschelde 8 years ago
parent
commit
b044e7d30d
1 changed files with 20 additions and 35 deletions
  1. 20 35
      platform/windows/detect.py

+ 20 - 35
platform/windows/detect.py

@@ -14,69 +14,56 @@ def get_name():
 def can_build():
 def can_build():
 
 
     if (os.name == "nt"):
     if (os.name == "nt"):
-        # building natively on windows!
-        if (os.getenv("VCINSTALLDIR")):
+        # Building natively on Windows
+        if (os.getenv("VCINSTALLDIR")): # MSVC
             return True
             return True
-        else:
-            print("\nMSVC not detected, attempting MinGW.")
-            mingw32 = ""
-            mingw64 = ""
-            if (os.getenv("MINGW32_PREFIX")):
-                mingw32 = os.getenv("MINGW32_PREFIX")
-            if (os.getenv("MINGW64_PREFIX")):
-                mingw64 = os.getenv("MINGW64_PREFIX")
-
-            test = "gcc --version > NUL 2>&1"
-            if os.system(test) != 0 and os.system(mingw32 + test) != 0 and 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.")
 
 
+        print("MSVC not detected (no VCINSTALLDIR environment variable), attempting MinGW.")
+        mingw32 = ""
+        mingw64 = ""
+        if (os.getenv("MINGW32_PREFIX")):
+            mingw32 = os.getenv("MINGW32_PREFIX")
+        if (os.getenv("MINGW64_PREFIX")):
+            mingw64 = os.getenv("MINGW64_PREFIX")
+
+        test = "gcc --version > NUL 2>&1"
+        if (os.system(test) == 0 or os.system(mingw32 + test) == 0 or os.system(mingw64 + test) == 0):
             return True
             return True
 
 
     if (os.name == "posix"):
     if (os.name == "posix"):
-
-        mingw = "i586-mingw32msvc-"
-        mingw64 = "x86_64-w64-mingw32-"
+        # Cross-compiling with MinGW-w64 (old MinGW32 is not supported)
         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_64', 'MinGW Prefix 64 bits', mingw64),
+        ('mingw_prefix_32', 'MinGW prefix (Win32)', mingw32),
+        ('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"]