Browse Source

Some enhancements to the dependency-build system. Recompilation time is now greatly reduced as binaries and libraries are not relinked anymore if just it's dependency dll's have changed.

rdb 16 years ago
parent
commit
f4cc0897ec
1 changed files with 8 additions and 5 deletions
  1. 8 5
      makepanda/makepandacore.py

+ 8 - 5
makepanda/makepandacore.py

@@ -1672,11 +1672,14 @@ def TargetAdd(target, dummy=0, opts=0, input=0, dep=0, ipath=0):
         for x in input:
         for x in input:
             fullinput = FindLocation(x, ipath)
             fullinput = FindLocation(x, ipath)
             t.inputs.append(fullinput)
             t.inputs.append(fullinput)
-            t.deps[fullinput] = 1
-            (base,suffix) = os.path.splitext(x)
-            if (SUFFIX_INC.count(suffix)):
-                for d in CxxCalcDependencies(fullinput, ipath, []):
-                    t.deps[d] = 1
+            # Don't re-link a library or binary if just it's dependency dll's have been altered.
+            # This should work out fine in most cases, and often reduces recompilation time.
+            if (os.path.splitext(x)[-1] not in SUFFIX_DLL):
+                t.deps[fullinput] = 1
+                (base,suffix) = os.path.splitext(x)
+                if (SUFFIX_INC.count(suffix)):
+                    for d in CxxCalcDependencies(fullinput, ipath, []):
+                        t.deps[d] = 1
     if (dep != 0):                
     if (dep != 0):                
         for x in dep:
         for x in dep:
             fulldep = FindLocation(x, ipath)
             fulldep = FindLocation(x, ipath)