Browse Source

Merge pull request #360 from ducklin5/master

windows use_mingw build fix
Bastiaan Olij 5 years ago
parent
commit
3861ff3018
1 changed files with 13 additions and 10 deletions
  1. 13 10
      SConstruct

+ 13 - 10
SConstruct

@@ -7,7 +7,7 @@ import sys
 # http://www.scons.org/wiki/LongCmdLinesOnWin32
 # http://www.scons.org/wiki/LongCmdLinesOnWin32
 if (os.name=="nt"):
 if (os.name=="nt"):
     import subprocess
     import subprocess
-    
+
     def mySubProcess(cmdline,env):
     def mySubProcess(cmdline,env):
         #print "SPAWNED : " + cmdline
         #print "SPAWNED : " + cmdline
         startupinfo = subprocess.STARTUPINFO()
         startupinfo = subprocess.STARTUPINFO()
@@ -21,22 +21,22 @@ if (os.name=="nt"):
             print(err.decode("utf-8"))
             print(err.decode("utf-8"))
             print("=====")
             print("=====")
         return rv
         return rv
-        
+
     def mySpawn(sh, escape, cmd, args, env):
     def mySpawn(sh, escape, cmd, args, env):
-                        
+
         newargs = ' '.join(args[1:])
         newargs = ' '.join(args[1:])
         cmdline = cmd + " " + newargs
         cmdline = cmd + " " + newargs
-        
+
         rv=0
         rv=0
         if len(cmdline) > 32000 and cmd.endswith("ar") :
         if len(cmdline) > 32000 and cmd.endswith("ar") :
             cmdline = cmd + " " + args[1] + " " + args[2] + " "
             cmdline = cmd + " " + args[1] + " " + args[2] + " "
             for i in range(3,len(args)) :
             for i in range(3,len(args)) :
                 rv = mySubProcess( cmdline + args[i], env )
                 rv = mySubProcess( cmdline + args[i], env )
                 if rv :
                 if rv :
-                    break	
-        else:				
+                    break
+        else:
             rv = mySubProcess( cmdline, env )
             rv = mySubProcess( cmdline, env )
-            
+
         return rv
         return rv
 
 
 def add_sources(sources, dir, extension):
 def add_sources(sources, dir, extension):
@@ -215,6 +215,9 @@ elif env['platform'] == 'windows':
             env['AR'] = "i686-w64-mingw32-ar"
             env['AR'] = "i686-w64-mingw32-ar"
             env['RANLIB'] = "i686-w64-mingw32-ranlib"
             env['RANLIB'] = "i686-w64-mingw32-ranlib"
             env['LINK'] = "i686-w64-mingw32-g++"
             env['LINK'] = "i686-w64-mingw32-g++"
+    elif host_platform == 'windows' and env['use_mingw']:
+        env = env.Clone(tools=['mingw'])
+        env["SPAWN"] = mySpawn
 
 
     # Native or cross-compilation using MinGW
     # Native or cross-compilation using MinGW
     if host_platform == 'linux' or host_platform == 'osx' or env['use_mingw']:
     if host_platform == 'linux' or host_platform == 'osx' or env['use_mingw']:
@@ -229,18 +232,18 @@ elif env['platform'] == 'android':
     if host_platform == 'windows':
     if host_platform == 'windows':
         env = env.Clone(tools=['mingw'])
         env = env.Clone(tools=['mingw'])
         env["SPAWN"] = mySpawn
         env["SPAWN"] = mySpawn
-    
+
     # Verify NDK root
     # Verify NDK root
     if not 'ANDROID_NDK_ROOT' in env:
     if not 'ANDROID_NDK_ROOT' in env:
         raise ValueError("To build for Android, ANDROID_NDK_ROOT must be defined. Please set ANDROID_NDK_ROOT to the root folder of your Android NDK installation.")
         raise ValueError("To build for Android, ANDROID_NDK_ROOT must be defined. Please set ANDROID_NDK_ROOT to the root folder of your Android NDK installation.")
-    
+
     # Validate API level
     # Validate API level
     api_level = int(env['android_api_level'])
     api_level = int(env['android_api_level'])
     if env['android_arch'] in ['x86_64', 'arm64v8'] and api_level < 21:
     if env['android_arch'] in ['x86_64', 'arm64v8'] and api_level < 21:
         print("WARN: 64-bit Android architectures require an API level of at least 21; setting android_api_level=21")
         print("WARN: 64-bit Android architectures require an API level of at least 21; setting android_api_level=21")
         env['android_api_level'] = '21'
         env['android_api_level'] = '21'
         api_level = 21
         api_level = 21
-    
+
     # Setup toolchain
     # Setup toolchain
     toolchain = env['ANDROID_NDK_ROOT'] + "/toolchains/llvm/prebuilt/"
     toolchain = env['ANDROID_NDK_ROOT'] + "/toolchains/llvm/prebuilt/"
     if host_platform == "windows":
     if host_platform == "windows":