def __GetExternalLibraryDependencies(self, package: Package) -> List[Tuple[str, str]]:
        libsAndPaths = []  # type: List[Tuple[str, str]]
        buildOrder = list(package.ResolvedBuildOrder)
        for entry in buildOrder:
            depList = Util.FilterByType(entry.ResolvedDirectExternalDependencies, ExternalDependencyType.StaticLib)
            for dep in depList:
                libName = dep.Name
                libPath = dep.Location
                libsAndPaths.append((libName, libPath))

        return libsAndPaths
 def __GetExternalLibraryPaths(
         self, package: Package,
         dependencyTypeFilter: List[int]) -> List[str]:
     # GCC apparently needs the list to be in reverse order
     buildOrder = list(package.ResolvedBuildOrder)
     buildOrder.reverse()
     additionalLibraryDirectories = set()  # type: Set[str]
     for currentPackage in buildOrder:
         extDeps = Util.FilterByType(
             currentPackage.ResolvedDirectExternalDependencies,
             dependencyTypeFilter)  # type: List[PackageExternalDependency]
         for entry in extDeps:
             if entry.Location is not None:
                 additionalLibraryDirectories.add(entry.Location)
     result = list(additionalLibraryDirectories)
     result.sort()
     return result
 def __GetExternalLibraryDependencies(self, package: Package) -> List[str]:
     libPaths = []  # type: List[str]
     # GCC apparently needs the list to be in reverse order
     buildOrder = list(package.ResolvedBuildOrder)
     buildOrder.reverse()
     for entry in buildOrder:
         externalList = Util.ExtractNames(
             Util.FilterByType(entry.ResolvedDirectExternalDependencies, [
                 ExternalDependencyType.StaticLib,
                 ExternalDependencyType.DLL
             ]))
         externalList.reverse()
         if len(externalList) > 0:
             externalList = self.__ApplyExternalLibNameCorrection(
                 externalList)
         libPaths += externalList
     return libPaths