diff options
author | Xavier Ducrohet <xav@android.com> | 2012-08-31 11:37:48 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2012-08-31 12:47:48 -0700 |
commit | 94d5c8090d3ad3d7c18445162912416bd113600a (patch) | |
tree | 1ac43e63cad105650a7f867170902c54b75c06f9 /builder | |
parent | 22477ac0fc007e0b6c819204335f2a6144dc9983 (diff) | |
download | build-94d5c8090d3ad3d7c18445162912416bd113600a.tar.gz |
Add support for extra lines in BuildConfig.
Created a -Dsl class for each ProductFlavor and BuildType in order to
improve the DSL.
Added some examples in basic/ and flavored/ samples.
Change-Id: I7c0613b0a81569a17737b2aa4b94d207bf464989
Diffstat (limited to 'builder')
3 files changed, 37 insertions, 9 deletions
diff --git a/builder/src/main/java/com/android/builder/BuildType.java b/builder/src/main/java/com/android/builder/BuildType.java index 561d713..e4b5c50 100644 --- a/builder/src/main/java/com/android/builder/BuildType.java +++ b/builder/src/main/java/com/android/builder/BuildType.java @@ -35,7 +35,6 @@ public class BuildType implements Serializable { private boolean mDebugSigned; private String mPackageNameSuffix = null; private boolean mRunProguard = false; - private boolean mBuildConfigDebug; private final List<String> mBuildConfigLines = new ArrayList<String>(); private boolean mZipAlign = true; @@ -54,14 +53,12 @@ public class BuildType implements Serializable { mDebugJniBuild = true; mDebugSigned = true; mZipAlign = false; - mBuildConfigDebug = true; } private void initRelease() { mDebuggable = false; mDebugJniBuild = false; mDebugSigned = false; - mBuildConfigDebug = false; } public String getName() { @@ -116,10 +113,14 @@ public class BuildType implements Serializable { return mZipAlign; } - public void setBuildConfigLines(List<String> lines) { + protected void addBuildConfigLines(List<String> lines) { mBuildConfigLines.addAll(lines); } + protected void clearBuildConfigLines() { + mBuildConfigLines.clear(); + } + public List<String> getBuildConfigLines() { return mBuildConfigLines; } @@ -131,7 +132,7 @@ public class BuildType implements Serializable { BuildType buildType = (BuildType) o; - if (mBuildConfigDebug != buildType.mBuildConfigDebug) return false; + if (mName != null ? !mName.equals(buildType.mName) : buildType.mName != null) return false; if (mDebugJniBuild != buildType.mDebugJniBuild) return false; if (mDebugSigned != buildType.mDebugSigned) return false; if (mDebuggable != buildType.mDebuggable) return false; @@ -141,7 +142,6 @@ public class BuildType implements Serializable { !mBuildConfigLines.equals(buildType.mBuildConfigLines) : buildType.mBuildConfigLines != null) return false; - if (mName != null ? !mName.equals(buildType.mName) : buildType.mName != null) return false; if (mPackageNameSuffix != null ? !mPackageNameSuffix.equals(buildType.mPackageNameSuffix) : buildType.mPackageNameSuffix != null) @@ -158,7 +158,6 @@ public class BuildType implements Serializable { result = 31 * result + (mDebugSigned ? 1 : 0); result = 31 * result + (mPackageNameSuffix != null ? mPackageNameSuffix.hashCode() : 0); result = 31 * result + (mRunProguard ? 1 : 0); - result = 31 * result + (mBuildConfigDebug ? 1 : 0); result = 31 * result + (mBuildConfigLines != null ? mBuildConfigLines.hashCode() : 0); result = 31 * result + (mZipAlign ? 1 : 0); return result; diff --git a/builder/src/main/java/com/android/builder/ProductFlavor.java b/builder/src/main/java/com/android/builder/ProductFlavor.java index fd72ad8..ed7bb0b 100644 --- a/builder/src/main/java/com/android/builder/ProductFlavor.java +++ b/builder/src/main/java/com/android/builder/ProductFlavor.java @@ -144,10 +144,14 @@ public class ProductFlavor implements Serializable { mSigningKeyPassword != null; } - public void setBuildConfigLines(List<String> lines) { + protected void addBuildConfigLines(List<String> lines) { mBuildConfigLines.addAll(lines); } + protected void clearBuildConfigLines() { + mBuildConfigLines.clear(); + } + public List<String> getBuildConfigLines() { return mBuildConfigLines; } @@ -197,6 +201,7 @@ public class ProductFlavor implements Serializable { ProductFlavor that = (ProductFlavor) o; + if (mName != null ? !mName.equals(that.mName) : that.mName != null) return false; if (mMinSdkVersion != that.mMinSdkVersion) return false; if (mTargetSdkVersion != that.mTargetSdkVersion) return false; if (mVersionCode != that.mVersionCode) return false; @@ -204,7 +209,6 @@ public class ProductFlavor implements Serializable { !mBuildConfigLines.equals(that.mBuildConfigLines) : that.mBuildConfigLines != null) return false; - if (mName != null ? !mName.equals(that.mName) : that.mName != null) return false; if (mPackageName != null ? !mPackageName.equals(that.mPackageName) : that.mPackageName != null) diff --git a/builder/src/main/java/com/android/builder/VariantConfiguration.java b/builder/src/main/java/com/android/builder/VariantConfiguration.java index 31f17b7..bd5f96c 100644 --- a/builder/src/main/java/com/android/builder/VariantConfiguration.java +++ b/builder/src/main/java/com/android/builder/VariantConfiguration.java @@ -472,6 +472,31 @@ public class VariantConfiguration { return classpath; } + public List<String> getBuildConfigLines() { + List<String> fullList = new ArrayList<String>(); + + List<String> list = mDefaultConfig.getBuildConfigLines(); + if (!list.isEmpty()) { + fullList.add("// lines from default config."); + fullList.addAll(list); + } + + list = mBuildType.getBuildConfigLines(); + if (!list.isEmpty()) { + fullList.add("// lines from build type: " + mBuildType.getName()); + fullList.addAll(list); + } + + for (ProductFlavor flavor : mFlavorConfigs) { + list = flavor.getBuildConfigLines(); + if (!list.isEmpty()) { + fullList.add("// lines from product flavor: " + flavor.getName()); + fullList.addAll(list); + } + } + + return fullList; + } protected void validate() { if (mType != Type.TEST) { |