/** * Returns all the package library dependencies, direct and transitive in a single flat list. */ @NonNull public ImmutableList<AndroidDependency> getFlatPackageAndroidLibraries() { return getPackageDependencies().getAllAndroidDependencies(); }
/** * Returns all the compile Android library dependencies, direct and transitive in a single * flat list. */ @NonNull public ImmutableList<AndroidDependency> getFlatCompileAndroidLibraries() { return getCompileDependencies().getAllAndroidDependencies(); }
/** * Returns all the renderscript import folder that are outside of the current project. */ @NonNull public List<File> getRenderscriptImports() { List<File> list = Lists.newArrayList(); // use the package one to ignore the optional libs. for (AndroidDependency lib : getPackageDependencies().getAllAndroidDependencies()) { File rsLib = lib.getRenderscriptFolder(); if (rsLib.isDirectory()) { list.add(rsLib); } } return list; }
/** * Returns all the aidl import folder that are outside of the current project. */ @NonNull public List<File> getAidlImports() { List<File> list = Lists.newArrayList(); // use the package one to ignore the optional libs. for (AndroidDependency lib : getPackageDependencies().getAllAndroidDependencies()) { File aidlLib = lib.getAidlFolder(); if (aidlLib.isDirectory()) { list.add(aidlLib); } } return list; }
/** * Returns the sub-project jni libs * * @return a non null, but possibly empty immutable set. */ @NonNull public Set<File> getSubProjectJniLibFolders() { final DependencyContainer packageDeps = getPackageDependencies(); Set<File> jniDirectories = Sets.newLinkedHashSetWithExpectedSize( packageDeps.getAllAndroidDependencies().size()); for (AndroidDependency dependency : packageDeps.getAllAndroidDependencies()) { // only take the sub-project android libraries. if (dependency.getProjectPath() != null) { File jniDir = dependency.getJniFolder(); if (jniDir.isDirectory()) { jniDirectories.add(jniDir); } } } return jniDirectories; }
/** * Returns the packaged sub-project local Jars * * @return a non null, but possibly empty immutable set. */ @NonNull public Set<File> getSubProjectLocalPackagedJars() { final DependencyContainer packageDeps = getPackageDependencies(); Set<File> jars = Sets.newLinkedHashSetWithExpectedSize( packageDeps.getAllAndroidDependencies().size()); for (AndroidDependency dependency : packageDeps.getAllAndroidDependencies()) { // only take the sub-project android libraries. if (dependency.getProjectPath() != null) { for (File jarFile : dependency.getLocalJars()) { if (jarFile.isFile()) { jars.add(jarFile); } } } } return jars; }
/** * Returns the external jni lib folders * * @return a non null, but possibly empty immutable set. */ @NonNull public Set<File> getExternalAarJniLibFolders() { final DependencyContainer packageDeps = getPackageDependencies(); Set<File> jniDirectories = Sets.newLinkedHashSetWithExpectedSize( packageDeps.getAllAndroidDependencies().size()); for (AndroidDependency dependency : packageDeps.getAllAndroidDependencies()) { // only take the external android libraries. if (dependency.getProjectPath() == null) { File jniDir = dependency.getJniFolder(); if (jniDir.isDirectory()) { jniDirectories.add(jniDir); } } } return jniDirectories; }
for (AndroidDependency androidDependency : packageDependencies.getAllAndroidDependencies()) { File proguardRules = androidDependency.getProguardRules(); if (proguardRules.isFile()) {
public void addDependenciesToPrepareTask( @NonNull TaskFactory tasks, @NonNull BaseVariantData<? extends BaseVariantOutputData> variantData, @NonNull AndroidTask<PrepareDependenciesTask> prepareDependenciesTask) { VariantDependencies variantDeps = variantData.getVariantDependency(); final AndroidTask<DefaultTask> preBuildTask = variantData.getScope().getPreBuildTask(); final ImmutableList<AndroidDependency> compileLibraries = variantDeps .getCompileDependencies().getAllAndroidDependencies(); final ImmutableList<AndroidDependency> packageLibraries = variantDeps .getPackageDependencies().getAllAndroidDependencies(); // gather all the libraries first, then make the task depend on the list in a single // pass. List<PrepareLibraryTask> prepareLibraryTasks = Lists .newArrayListWithCapacity(compileLibraries.size() + packageLibraries.size()); for (AndroidDependency dependency : Iterables.concat(compileLibraries, packageLibraries)) { // skip sub-module since we don't extract them anymore. if (dependency.getProjectPath() == null) { PrepareLibraryTask prepareLibTask = prepareLibTaskMap .get(dependency.getCoordinates().toString()); if (prepareLibTask != null) { prepareLibraryTasks.add(prepareLibTask); prepareLibTask.dependsOn(preBuildTask.getName()); } } } if (!prepareLibraryTasks.isEmpty()) { prepareDependenciesTask.dependsOn(tasks, prepareLibraryTasks.toArray()); } }
for (AndroidDependency dependency : getPackageDependencies().getAllAndroidDependencies().reverse()) { File assetFolder = dependency.getAssetsFolder(); if (assetFolder.isDirectory()) {
for (AndroidDependency dependency : getPackageDependencies().getAllAndroidDependencies().reverse()) { File resFolder = dependency.getResFolder(); if (resFolder.isDirectory()) {