aboutsummaryrefslogtreecommitdiff
path: root/builder/src/main/java/com/android/builder
diff options
context:
space:
mode:
Diffstat (limited to 'builder/src/main/java/com/android/builder')
-rw-r--r--builder/src/main/java/com/android/builder/AndroidBuilder.java2
-rw-r--r--builder/src/main/java/com/android/builder/DefaultProductFlavor.java19
-rw-r--r--builder/src/main/java/com/android/builder/VariantConfiguration.java4
-rw-r--r--builder/src/main/java/com/android/builder/internal/MergedNdkConfig.java (renamed from builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java)3
-rw-r--r--builder/src/main/java/com/android/builder/internal/compiler/RenderScriptProcessor.java8
5 files changed, 33 insertions, 3 deletions
diff --git a/builder/src/main/java/com/android/builder/AndroidBuilder.java b/builder/src/main/java/com/android/builder/AndroidBuilder.java
index f39e75c..77cc807 100644
--- a/builder/src/main/java/com/android/builder/AndroidBuilder.java
+++ b/builder/src/main/java/com/android/builder/AndroidBuilder.java
@@ -868,6 +868,7 @@ public class AndroidBuilder {
int targetApi,
boolean debugBuild,
int optimLevel,
+ boolean ndkMode,
boolean supportMode,
@Nullable Set<String> abiFilters)
throws IOException, InterruptedException, LoggedErrorException {
@@ -897,6 +898,7 @@ public class AndroidBuilder {
targetApi,
debugBuild,
optimLevel,
+ ndkMode,
supportMode,
abiFilters);
processor.build(mCmdLineRunner);
diff --git a/builder/src/main/java/com/android/builder/DefaultProductFlavor.java b/builder/src/main/java/com/android/builder/DefaultProductFlavor.java
index 603f0d3..7a7b757 100644
--- a/builder/src/main/java/com/android/builder/DefaultProductFlavor.java
+++ b/builder/src/main/java/com/android/builder/DefaultProductFlavor.java
@@ -38,6 +38,7 @@ public class DefaultProductFlavor extends BaseConfigImpl implements ProductFlavo
private int mTargetSdkVersion = -1;
private int mRenderscriptTargetApi = -1;
private Boolean mRenderscriptSupportMode;
+ private Boolean mRenderscriptNdkMode;
private int mVersionCode = -1;
private String mVersionName = null;
private String mPackageName = null;
@@ -159,6 +160,16 @@ public class DefaultProductFlavor extends BaseConfigImpl implements ProductFlavo
mRenderscriptSupportMode = renderscriptSupportMode;
}
+ @Override
+ public boolean getRenderscriptNdkMode() {
+ // default is false
+ return mRenderscriptNdkMode != null && mRenderscriptNdkMode.booleanValue();
+ }
+
+ public void setRenderscriptNdkMode(boolean renderscriptNdkMode) {
+ mRenderscriptNdkMode = renderscriptNdkMode;
+ }
+
@NonNull
public ProductFlavor setTestPackageName(String testPackageName) {
mTestPackageName = testPackageName;
@@ -239,6 +250,8 @@ public class DefaultProductFlavor extends BaseConfigImpl implements ProductFlavo
base.mRenderscriptTargetApi);
flavor.mRenderscriptSupportMode = chooseBoolean(mRenderscriptSupportMode,
base.mRenderscriptSupportMode);
+ flavor.mRenderscriptNdkMode = chooseBoolean(mRenderscriptNdkMode,
+ base.mRenderscriptNdkMode);
flavor.mVersionCode = chooseInt(mVersionCode, base.mVersionCode);
flavor.mVersionName = chooseString(mVersionName, base.mVersionName);
@@ -290,6 +303,10 @@ public class DefaultProductFlavor extends BaseConfigImpl implements ProductFlavo
!mRenderscriptSupportMode.equals(that.mRenderscriptSupportMode) :
that.mRenderscriptSupportMode != null)
return false;
+ if (mRenderscriptNdkMode != null ?
+ !mRenderscriptNdkMode.equals(that.mRenderscriptNdkMode) :
+ that.mRenderscriptNdkMode != null)
+ return false;
if (mVersionCode != that.mVersionCode) return false;
if (mPackageName != null ?
!mPackageName.equals(that.mPackageName) :
@@ -328,6 +345,7 @@ public class DefaultProductFlavor extends BaseConfigImpl implements ProductFlavo
result = 31 * result + mTargetSdkVersion;
result = 31 * result + mRenderscriptTargetApi;
result = 31 * result + (mRenderscriptSupportMode != null ? mRenderscriptSupportMode.hashCode() : 0);
+ result = 31 * result + (mRenderscriptNdkMode != null ? mRenderscriptNdkMode.hashCode() : 0);
result = 31 * result + mVersionCode;
result = 31 * result + (mVersionName != null ? mVersionName.hashCode() : 0);
result = 31 * result + (mPackageName != null ? mPackageName.hashCode() : 0);
@@ -351,6 +369,7 @@ public class DefaultProductFlavor extends BaseConfigImpl implements ProductFlavo
.add("targetSdkVersion", mTargetSdkVersion)
.add("renderscriptTargetApi", mRenderscriptTargetApi)
.add("renderscriptSupportMode", mRenderscriptSupportMode)
+ .add("renderscriptNdkMode", mRenderscriptNdkMode)
.add("versionCode", mVersionCode)
.add("versionName", mVersionName)
.add("packageName", mPackageName)
diff --git a/builder/src/main/java/com/android/builder/VariantConfiguration.java b/builder/src/main/java/com/android/builder/VariantConfiguration.java
index 1491405..80df454 100644
--- a/builder/src/main/java/com/android/builder/VariantConfiguration.java
+++ b/builder/src/main/java/com/android/builder/VariantConfiguration.java
@@ -22,7 +22,7 @@ import com.android.annotations.VisibleForTesting;
import com.android.builder.dependency.DependencyContainer;
import com.android.builder.dependency.JarDependency;
import com.android.builder.dependency.LibraryDependency;
-import com.android.builder.internal.NdkConfigImpl;
+import com.android.builder.internal.MergedNdkConfig;
import com.android.builder.internal.StringHelper;
import com.android.builder.model.ClassField;
import com.android.builder.model.NdkConfig;
@@ -105,7 +105,7 @@ public class VariantConfiguration implements TestData {
private LibraryDependency mOutput;
private DefaultProductFlavor mMergedFlavor;
- private final NdkConfigImpl mMergedNdkConfig = new NdkConfigImpl();
+ private final MergedNdkConfig mMergedNdkConfig = new MergedNdkConfig();
private final Set<JarDependency> mJars = Sets.newHashSet();
diff --git a/builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java b/builder/src/main/java/com/android/builder/internal/MergedNdkConfig.java
index b455a0a..bd83e99 100644
--- a/builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java
+++ b/builder/src/main/java/com/android/builder/internal/MergedNdkConfig.java
@@ -24,8 +24,9 @@ import com.google.common.collect.Sets;
import java.util.Set;
/**
+ * Implementation of NdkConfig used to merge multiple configs together.
*/
-public class NdkConfigImpl implements NdkConfig {
+public class MergedNdkConfig implements NdkConfig {
private String moduleName;
private String cFlags;
diff --git a/builder/src/main/java/com/android/builder/internal/compiler/RenderScriptProcessor.java b/builder/src/main/java/com/android/builder/internal/compiler/RenderScriptProcessor.java
index 80096e9..9b28743 100644
--- a/builder/src/main/java/com/android/builder/internal/compiler/RenderScriptProcessor.java
+++ b/builder/src/main/java/com/android/builder/internal/compiler/RenderScriptProcessor.java
@@ -103,6 +103,8 @@ public class RenderScriptProcessor {
private final int mOptimLevel;
+ private final boolean mNdkMode;
+
private final boolean mSupportMode;
private final Set<String> mAbiFilters;
@@ -120,6 +122,7 @@ public class RenderScriptProcessor {
int targetApi,
boolean debugBuild,
int optimLevel,
+ boolean ndkMode,
boolean supportMode,
@Nullable Set<String> abiFilters) {
mSourceFolders = sourceFolders;
@@ -132,6 +135,7 @@ public class RenderScriptProcessor {
mTargetApi = targetApi;
mDebugBuild = debugBuild;
mOptimLevel = optimLevel;
+ mNdkMode = ndkMode;
mSupportMode = supportMode;
mAbiFilters = abiFilters;
@@ -237,6 +241,10 @@ public class RenderScriptProcessor {
command.add("-p");
command.add(mSourceOutputDir.getAbsolutePath());
+ if (mNdkMode) {
+ command.add("-reflect-c++");
+ }
+
// res output
command.add("-o");
command.add(rawFolder.getAbsolutePath());