Browse Source

Ignore non-required packages rather than erroring if their dependencies were missing

rdb 10 years ago
parent
commit
af8de103af
1 changed files with 12 additions and 1 deletions
  1. 12 1
      direct/src/p3d/Packager.py

+ 12 - 1
direct/src/p3d/Packager.py

@@ -372,6 +372,9 @@ class Packager:
             self.requiredFilenames = []
             self.requiredFilenames = []
             self.requiredModules = []
             self.requiredModules = []
 
 
+            # A list of required packages that were missing.
+            self.missingPackages = []
+
             # This records the current list of modules we have added so
             # This records the current list of modules we have added so
             # far.
             # far.
             self.freezer = FreezeTool.Freezer(platform = self.packager.platform)
             self.freezer = FreezeTool.Freezer(platform = self.packager.platform)
@@ -495,6 +498,12 @@ class Packager:
             as a true package.  Either is implemented with a
             as a true package.  Either is implemented with a
             Multifile. """
             Multifile. """
 
 
+            if self.missingPackages:
+                missing = ', '.join([name for name, version in self.missingPackages])
+                self.notify.warning("Cannot build package %s due to missing dependencies: %s" % (self.packageName, missing))
+                self.cleanup()
+                return False
+
             self.multifile = Multifile()
             self.multifile = Multifile()
 
 
             # Write the multifile to a temporary filename until we
             # Write the multifile to a temporary filename until we
@@ -3217,7 +3226,9 @@ class Packager:
                                        requires = self.currentPackage.requires)
                                        requires = self.currentPackage.requires)
             if not package:
             if not package:
                 message = 'Unknown package %s, version "%s"' % (packageName, version)
                 message = 'Unknown package %s, version "%s"' % (packageName, version)
-                raise PackagerError, message
+                self.notify.warning(message)
+                self.currentPackage.missingPackages.append((packageName, pversion))
+                continue
 
 
             self.requirePackage(package)
             self.requirePackage(package)