aboutsummaryrefslogtreecommitdiff
path: root/builder
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-08-31 11:37:48 -0700
committerXavier Ducrohet <xav@android.com>2012-08-31 12:47:48 -0700
commit94d5c8090d3ad3d7c18445162912416bd113600a (patch)
tree1ac43e63cad105650a7f867170902c54b75c06f9 /builder
parent22477ac0fc007e0b6c819204335f2a6144dc9983 (diff)
downloadbuild-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')
-rw-r--r--builder/src/main/java/com/android/builder/BuildType.java13
-rw-r--r--builder/src/main/java/com/android/builder/ProductFlavor.java8
-rw-r--r--builder/src/main/java/com/android/builder/VariantConfiguration.java25
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) {