diff options
author | Xavier Ducrohet <xav@google.com> | 2013-11-15 00:36:53 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-11-15 00:36:54 +0000 |
commit | 9d68c2ab5f1a234b55610d892be9d25da67f69aa (patch) | |
tree | 4146800cb5df57dba7f0d90569d558461d043a73 | |
parent | 442c4711c9e2856bfb98e2f805e7d3a249f593ee (diff) | |
parent | 6a14b68f137aa3a1283de54b6bbdca3c7e202a63 (diff) | |
download | build-9d68c2ab5f1a234b55610d892be9d25da67f69aa.tar.gz |
Merge "Add support for APP_STL"
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 { |