2
0
Эх сурвалжийг харах

Compile fixes for mingw msys2.
The drivers directory has way too many source files being compiled for a single library file. The command line length limit was getting hit.

Aren Villanueva 10 жил өмнө
parent
commit
c1fdc3b5d1
1 өөрчлөгдсөн 26 нэмэгдсэн , 19 устгасан
  1. 26 19
      drivers/SCsub

+ 26 - 19
drivers/SCsub

@@ -64,26 +64,33 @@ if env['vsproj']=="yes":
 	env.AddToVSProject(env.drivers_sources)
 
 for f in env.drivers_sources:
-	fname = ""
-	if type(f) == type(""):
-		fname = env.File(f).path
-	else:
-		fname = env.File(f)[0].path
-	#base = string.join(fname.split("/")[:-1], "/")
-	fname = fname.replace("\\", "/")
-	base = string.join(fname.split("/")[:2], "/")
-	if base != cur_base and len(list) > max_src:
-		lib = env.Library("drivers"+str(num), list)
-		lib_list.append(lib)
-		list = []
-		num = num+1
-	cur_base = base
-	list.append(f)
-
-if len(list) > 0:
-	lib = env.Library("drivers"+str(num), list)
-	lib_list.append(lib)
+    fname = ""
+    if type(f) == type(""):
+        fname = env.File(f).path
+    else:
+	    fname = env.File(f)[0].path
+    fname = fname.replace("\\", "/")
+    base = string.join(fname.split("/")[:2], "/")
+    if base != cur_base or len(list) > max_src:
+        if num > 0:
+            lib = env.Library("drivers"+str(num), list)
+            lib_list.append(lib)
+            list = []
+        num = num+1
+    cur_base = base
+    list.append(f)
 
+lib = env.Library("drivers"+str(num), list)
+lib_list.append(lib)
+
+if len(lib_list) > 0:
+    import os, sys
+    if os.name=='posix' and sys.platform=='win32':
+        env.Replace(ARFLAGS=['rcsT'])
+
+        lib = env.Library("drivers_collated", lib_list)
+        env.Replace(ARFLAGS=['rc'])
+        lib_list = [lib]
 
 drivers_base=[]
 env.add_source_files(drivers_base,"*.cpp")