aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@google.com>2013-11-15 00:36:53 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-11-15 00:36:54 +0000
commit9d68c2ab5f1a234b55610d892be9d25da67f69aa (patch)
tree4146800cb5df57dba7f0d90569d558461d043a73
parent442c4711c9e2856bfb98e2f805e7d3a249f593ee (diff)
parent6a14b68f137aa3a1283de54b6bbdca3c7e202a63 (diff)
downloadbuild-9d68c2ab5f1a234b55610d892be9d25da67f69aa.tar.gz
Merge "Add support for APP_STL"
-rw-r--r--builder-model/src/main/java/com/android/builder/NdkConfig.java3
-rw-r--r--builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java12
-rw-r--r--builder/src/main/java/com/android/builder/internal/packaging/Packager.java10
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/dsl/NdkConfigDsl.java12
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/tasks/NdkTask.groovy13
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/tasks/NdkCompile.groovy4
-rw-r--r--tests/ndkSanAngeles/build.gradle3
7 files changed, 49 insertions, 8 deletions
diff --git a/builder-model/src/main/java/com/android/builder/NdkConfig.java b/builder-model/src/main/java/com/android/builder/NdkConfig.java
index b3bebef..761871d 100644
--- a/builder-model/src/main/java/com/android/builder/NdkConfig.java
+++ b/builder-model/src/main/java/com/android/builder/NdkConfig.java
@@ -48,4 +48,7 @@ public interface NdkConfig {
*/
@Nullable
public Set<String> getAbiFilters();
+
+ @Nullable
+ public String getStl();
}
diff --git a/builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java b/builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java
index d4e8b4e..88422e9 100644
--- a/builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java
+++ b/builder/src/main/java/com/android/builder/internal/NdkConfigImpl.java
@@ -31,6 +31,7 @@ public class NdkConfigImpl implements NdkConfig {
private String cFlags;
private String ldLibs;
private Set<String> abiFilters;
+ private String stl;
public void reset() {
moduleName = null;
@@ -63,11 +64,22 @@ public class NdkConfigImpl implements NdkConfig {
return abiFilters;
}
+ @Override
+ @Nullable
+ public String getStl() {
+ return stl;
+ }
+
public void append(@NonNull NdkConfig ndkConfig) {
// override
if (ndkConfig.getModuleName() != null) {
moduleName = ndkConfig.getModuleName();
}
+
+ if (ndkConfig.getStl() != null) {
+ stl = ndkConfig.getStl();
+ }
+
if (ndkConfig.getAbiFilters() != null) {
if (abiFilters == null) {
abiFilters = Sets.newHashSetWithExpectedSize(ndkConfig.getAbiFilters().size());
diff --git a/builder/src/main/java/com/android/builder/internal/packaging/Packager.java b/builder/src/main/java/com/android/builder/internal/packaging/Packager.java
index f60323e..8c370d0 100644
--- a/builder/src/main/java/com/android/builder/internal/packaging/Packager.java
+++ b/builder/src/main/java/com/android/builder/internal/packaging/Packager.java
@@ -444,14 +444,16 @@ public final class Packager implements IArchiveBuilder {
for (File lib : libs) {
// only consider files that are .so or, if in debug mode, that
// are gdbserver executables
+ String libName = lib.getName();
if (lib.isFile() &&
(PATTERN_NATIVELIB_EXT.matcher(lib.getName()).matches() ||
- (mJniDebugMode &&
- SdkConstants.FN_GDBSERVER.equals(
- lib.getName())))) {
+ (mJniDebugMode &&
+ (SdkConstants.FN_GDBSERVER.equals(libName) ||
+ SdkConstants.FN_GDB_SETUP.equals(libName))))) {
+
String path =
SdkConstants.FD_APK_NATIVE_LIBS + "/" +
- abi.getName() + "/" + lib.getName();
+ abi.getName() + "/" + libName;
try {
doAddFile(lib, path);
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/NdkConfigDsl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/NdkConfigDsl.java
index 84476bd..0a5c79d 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/NdkConfigDsl.java
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/NdkConfigDsl.java
@@ -17,6 +17,7 @@
package com.android.build.gradle.internal.dsl;
import com.android.annotations.NonNull;
+import com.android.annotations.Nullable;
import com.android.builder.NdkConfig;
import com.google.common.collect.Sets;
import org.gradle.api.tasks.Input;
@@ -35,6 +36,7 @@ public class NdkConfigDsl implements NdkConfig, Serializable {
private String cFlags;
private String ldLibs;
private Set<String> abiFilters;
+ private String stl;
public NdkConfigDsl() {
}
@@ -116,4 +118,14 @@ public class NdkConfigDsl implements NdkConfig, Serializable {
}
return this;
}
+
+ @Override
+ @Nullable
+ public String getStl() {
+ return stl;
+ }
+
+ public void setStl(String stl) {
+ this.stl = stl;
+ }
}
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/NdkTask.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/NdkTask.groovy
index a051aed..cc5b5d2 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/NdkTask.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/tasks/NdkTask.groovy
@@ -28,21 +28,26 @@ class NdkTask extends BaseTask {
@Input @Optional
String getModuleName() {
- return getNdkConfig()?.moduleName;
+ return getNdkConfig()?.moduleName
}
@Input @Optional
String getcFlags() {
- return getNdkConfig()?.cFlags;
+ return getNdkConfig()?.cFlags
}
@Input @Optional
String getLdLibs() {
- return getNdkConfig()?.ldLibs;
+ return getNdkConfig()?.ldLibs
}
@Input @Optional
Set<String> getAbiFilters() {
- return getNdkConfig()?.abiFilters;
+ return getNdkConfig()?.abiFilters
+ }
+
+ @Input @Optional
+ String getStl() {
+ return getNdkConfig().stl
}
}
diff --git a/gradle/src/main/groovy/com/android/build/gradle/tasks/NdkCompile.groovy b/gradle/src/main/groovy/com/android/build/gradle/tasks/NdkCompile.groovy
index 0a8e9b8..45d7d99 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/tasks/NdkCompile.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/tasks/NdkCompile.groovy
@@ -177,6 +177,10 @@ class NdkCompile extends NdkTask {
commands.add("NDK_DEBUG=1")
}
+ if (ndk.getStl() != null) {
+ commands.add("APP_STL=" + ndk.getStl())
+ }
+
Set<String> abiFilters = ndk.abiFilters
if (abiFilters != null && !abiFilters.isEmpty()) {
if (abiFilters.size() == 1) {
diff --git a/tests/ndkSanAngeles/build.gradle b/tests/ndkSanAngeles/build.gradle
index 6080ff8..a7ddcb9 100644
--- a/tests/ndkSanAngeles/build.gradle
+++ b/tests/ndkSanAngeles/build.gradle
@@ -17,9 +17,12 @@ android {
moduleName "sanangeles"
cFlags "-DANDROID_NDK -DDISABLE_IMPORTGL"
ldLibs "-lGLESv1_CM -ldl -llog"
+ stl "stlport_static"
}
}
+ buildTypes.debug.jniDebugBuild true
+
productFlavors {
x86 {
ndk {