diff options
author | Wing Lam <lamwing@google.com> | 2013-08-20 16:38:23 -0700 |
---|---|---|
committer | Wing Lam <lamwing@google.com> | 2013-08-21 11:09:36 -0700 |
commit | c4986e7a0c8022817df8f6dabbab4e8a87bd0477 (patch) | |
tree | ba80b3f6c7fb5c15e6c44769790967fccf4462e2 /builder | |
parent | 263c42c75f782fae79f029287b5cf3e12c19039e (diff) | |
download | build-c4986e7a0c8022817df8f6dabbab4e8a87bd0477.tar.gz |
ProGuard support for libraries.
Change-Id: I38069666a4cc9f84c07337f26bd6dcdb0b253548
Diffstat (limited to 'builder')
4 files changed, 36 insertions, 7 deletions
diff --git a/builder/src/main/java/com/android/builder/AndroidBuilder.java b/builder/src/main/java/com/android/builder/AndroidBuilder.java index 9442f4d..34c0dd4 100644 --- a/builder/src/main/java/com/android/builder/AndroidBuilder.java +++ b/builder/src/main/java/com/android/builder/AndroidBuilder.java @@ -564,14 +564,14 @@ public class AndroidBuilder { command.add(sourceOutputDir); } - if (type != VariantConfiguration.Type.LIBRARY && resPackageOutput != null) { + if (resPackageOutput != null) { command.add("-F"); command.add(resPackageOutput); + } - if (proguardOutput != null) { - command.add("-G"); - command.add(proguardOutput); - } + if (proguardOutput != null) { + command.add("-G"); + command.add(proguardOutput); } // options controlled by build variants diff --git a/builder/src/main/java/com/android/builder/DefaultBuildType.java b/builder/src/main/java/com/android/builder/DefaultBuildType.java index ea82e12..5ebbd0b 100644 --- a/builder/src/main/java/com/android/builder/DefaultBuildType.java +++ b/builder/src/main/java/com/android/builder/DefaultBuildType.java @@ -111,7 +111,8 @@ public class DefaultBuildType extends BaseConfigImpl implements BuildType { } @Override - @Nullable public String getPackageNameSuffix() { + @Nullable + public String getPackageNameSuffix() { return mPackageNameSuffix; } @@ -122,7 +123,8 @@ public class DefaultBuildType extends BaseConfigImpl implements BuildType { } @Override - @Nullable public String getVersionNameSuffix() { + @Nullable + public String getVersionNameSuffix() { return mVersionNameSuffix; } diff --git a/builder/src/main/java/com/android/builder/VariantConfiguration.java b/builder/src/main/java/com/android/builder/VariantConfiguration.java index 614d467..5b1b5e5 100644 --- a/builder/src/main/java/com/android/builder/VariantConfiguration.java +++ b/builder/src/main/java/com/android/builder/VariantConfiguration.java @@ -885,6 +885,21 @@ public class VariantConfiguration implements TestData { return fullList; } + @NonNull + public List<Object> getConsumerProguardFiles() { + List<Object> fullList = Lists.newArrayList(); + + // add the config files from the build type, main config and flavors + fullList.addAll(mDefaultConfig.getConsumerProguardFiles()); + fullList.addAll(mBuildType.getConsumerProguardFiles()); + + for (DefaultProductFlavor flavor : mFlavorConfigs) { + fullList.addAll(flavor.getConsumerProguardFiles()); + } + + return fullList; + } + protected void validate() { if (mType != Type.TEST) { File manifest = mDefaultSourceProvider.getManifestFile(); diff --git a/builder/src/main/java/com/android/builder/internal/BaseConfigImpl.java b/builder/src/main/java/com/android/builder/internal/BaseConfigImpl.java index e2517c5..044420b 100644 --- a/builder/src/main/java/com/android/builder/internal/BaseConfigImpl.java +++ b/builder/src/main/java/com/android/builder/internal/BaseConfigImpl.java @@ -33,6 +33,7 @@ public class BaseConfigImpl implements Serializable, BaseConfig { private final List<String> mBuildConfigLines = Lists.newArrayList(); private final List<File> mProguardFiles = Lists.newArrayList(); + private final List<File> mConsumerProguardFiles = Lists.newArrayList(); public void setBuildConfig(String... lines) { mBuildConfigLines.clear(); @@ -56,12 +57,21 @@ public class BaseConfigImpl implements Serializable, BaseConfig { return mProguardFiles; } + @Override + @NonNull + public List<File> getConsumerProguardFiles() { + return mConsumerProguardFiles; + } + protected void _initWith(BaseConfig that) { mBuildConfigLines.clear(); mBuildConfigLines.addAll(that.getBuildConfig()); mProguardFiles.clear(); mProguardFiles.addAll(that.getProguardFiles()); + + mConsumerProguardFiles.clear(); + mConsumerProguardFiles.addAll(that.getConsumerProguardFiles()); } @Override @@ -73,6 +83,7 @@ public class BaseConfigImpl implements Serializable, BaseConfig { if (!mBuildConfigLines.equals(that.mBuildConfigLines)) return false; if (!mProguardFiles.equals(that.mProguardFiles)) return false; + if (!mConsumerProguardFiles.equals(that.mConsumerProguardFiles)) return false; return true; } @@ -81,6 +92,7 @@ public class BaseConfigImpl implements Serializable, BaseConfig { public int hashCode() { int result = mBuildConfigLines.hashCode(); result = 31 * result + mProguardFiles.hashCode(); + result = 31 * result + mConsumerProguardFiles.hashCode(); return result; } } |