diff --git a/docs/concept/buckconfig.soy b/docs/concept/buckconfig.soy
index aab4a8eba5f..071c0f06171 100644
--- a/docs/concept/buckconfig.soy
+++ b/docs/concept/buckconfig.soy
@@ -2873,10 +2873,10 @@ your .buckjavaargs
file:
{call buckconfig.entry}
{param section: 'ndk' /}
{param name: 'cpu_abis' /}
- {param example_value: 'armv7, x86' /}
+ {param example_value: 'armv7, arm64, x86' /}
{param description}
A comma separated list of the CPU ABIs that this repo supports. Buck will only build NDK code
- for these ABIs.
+ for these ABIs. The default is armv7, x86
.
{/param}
{/call}
diff --git a/src/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatforms.java b/src/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatforms.java
index c2b8c4d50f5..9d594359ca6 100644
--- a/src/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatforms.java
+++ b/src/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatforms.java
@@ -85,8 +85,7 @@ public class NdkCxxPlatforms {
public static final NdkCompilerType DEFAULT_COMPILER_TYPE = NdkCompilerType.GCC;
public static final String DEFAULT_TARGET_APP_PLATFORM = "android-16";
- public static final ImmutableSet DEFAULT_CPU_ABIS =
- ImmutableSet.of("arm", "armv7", "x86");
+ public static final ImmutableSet DEFAULT_CPU_ABIS = ImmutableSet.of("armv7", "x86");
public static final NdkCxxRuntime DEFAULT_CXX_RUNTIME = NdkCxxRuntime.GNUSTL;
private static final ImmutableMap BUILD_PLATFORMS =
diff --git a/test/com/facebook/buck/android/AndroidAarIntegrationTest.java b/test/com/facebook/buck/android/AndroidAarIntegrationTest.java
index 924f9935a6a..f71cdcf2231 100644
--- a/test/com/facebook/buck/android/AndroidAarIntegrationTest.java
+++ b/test/com/facebook/buck/android/AndroidAarIntegrationTest.java
@@ -226,8 +226,6 @@ public void testCxxLibraryDependent() throws InterruptedException, IOException {
zipInspector.assertFileExists("classes.jar");
zipInspector.assertFileExists("R.txt");
zipInspector.assertFileExists("res/");
- zipInspector.assertFileExists("jni/armeabi/libdep.so");
- zipInspector.assertFileExists("jni/armeabi/libnative.so");
zipInspector.assertFileExists("jni/armeabi-v7a/libdep.so");
zipInspector.assertFileExists("jni/armeabi-v7a/libnative.so");
zipInspector.assertFileExists("jni/x86/libdep.so");
@@ -254,10 +252,8 @@ public void testNativeLibraryDependent() throws InterruptedException, IOExceptio
zipInspector.assertFileExists("classes.jar");
zipInspector.assertFileExists("R.txt");
zipInspector.assertFileExists("res/");
- zipInspector.assertFileExists("assets/lib/armeabi/libfoo.so");
zipInspector.assertFileExists("assets/lib/armeabi-v7a/libfoo.so");
zipInspector.assertFileExists("assets/lib/x86/libfoo.so");
- zipInspector.assertFileExists("jni/armeabi/libbar.so");
zipInspector.assertFileExists("jni/armeabi-v7a/libbar.so");
zipInspector.assertFileExists("jni/x86/libbar.so");
}
diff --git a/test/com/facebook/buck/android/AndroidBinaryCxxIntegrationTest.java b/test/com/facebook/buck/android/AndroidBinaryCxxIntegrationTest.java
index 21c4208a598..eb8b07684eb 100644
--- a/test/com/facebook/buck/android/AndroidBinaryCxxIntegrationTest.java
+++ b/test/com/facebook/buck/android/AndroidBinaryCxxIntegrationTest.java
@@ -90,8 +90,6 @@ public void testCxxLibraryDep() throws IOException {
workspace.getPath(
BuildTargets.getGenPath(
filesystem, BuildTargetFactory.newInstance(target), "%s.apk")));
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
- zipInspector.assertFileExists("lib/armeabi/libgnustl_shared.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libgnustl_shared.so");
zipInspector.assertFileExists("lib/x86/libnative_cxx_lib.so");
@@ -108,8 +106,6 @@ public void testCxxLibraryDepModular() throws IOException {
workspace.getPath(
BuildTargets.getGenPath(
filesystem, BuildTargetFactory.newInstance(target), "%s.apk")));
- zipInspector.assertFileDoesNotExist("lib/armeabi/libnative_cxx_lib.so");
- zipInspector.assertFileExists("lib/armeabi/libgnustl_shared.so");
zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libnative_cxx_lib.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libgnustl_shared.so");
zipInspector.assertFileDoesNotExist("lib/x86/libnative_cxx_lib.so");
@@ -131,8 +127,6 @@ public void testCxxLibraryDepClang() throws IOException {
workspace.getPath(
BuildTargets.getGenPath(
filesystem, BuildTargetFactory.newInstance(target), "%s.apk")));
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
- zipInspector.assertFileExists("lib/armeabi/libc++_shared.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libc++_shared.so");
zipInspector.assertFileExists("lib/x86/libnative_cxx_lib.so");
@@ -149,7 +143,6 @@ public void testCxxLibraryDepWithNoFilters() throws IOException {
workspace.getPath(
BuildTargets.getGenPath(
filesystem, BuildTargetFactory.newInstance(target), "%s.apk")));
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
zipInspector.assertFileExists("lib/x86/libnative_cxx_lib.so");
}
@@ -164,7 +157,6 @@ public void testNoCxxDepsDoesNotIncludeNdkRuntime() throws IOException {
workspace.getPath(
BuildTargets.getGenPath(
filesystem, BuildTargetFactory.newInstance(target), "%s.apk")));
- zipInspector.assertFileDoesNotExist("lib/armeabi/libgnustl_shared.so");
zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libgnustl_shared.so");
zipInspector.assertFileDoesNotExist("lib/x86/libgnustl_shared.so");
}
@@ -207,8 +199,6 @@ public void testX86OnlyCxxLibrary() throws IOException {
filesystem, BuildTargetFactory.newInstance(target), "%s.apk")));
zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libnative_cxx_x86-only.so");
zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libgnustl_shared.so");
- zipInspector.assertFileDoesNotExist("lib/armeabi/libnative_cxx_x86-only.so");
- zipInspector.assertFileDoesNotExist("lib/armeabi/libgnustl_shared.so");
zipInspector.assertFileExists("lib/x86/libnative_cxx_x86-only.so");
zipInspector.assertFileExists("lib/x86/libgnustl_shared.so");
}
diff --git a/test/com/facebook/buck/android/AndroidBinaryIntegrationTest.java b/test/com/facebook/buck/android/AndroidBinaryIntegrationTest.java
index 00b5ab24a9b..b572d5b2597 100644
--- a/test/com/facebook/buck/android/AndroidBinaryIntegrationTest.java
+++ b/test/com/facebook/buck/android/AndroidBinaryIntegrationTest.java
@@ -109,7 +109,7 @@ public void testNonExopackageHasSecondary() throws IOException {
zipInspector.assertFileDoesNotExist("classes2.dex");
zipInspector.assertFileExists("classes.dex");
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
}
@Test
@@ -124,7 +124,7 @@ public void testProguardBuild() throws IOException {
zipInspector.assertFileDoesNotExist("classes2.dex");
zipInspector.assertFileExists("classes.dex");
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
}
@Test
@@ -143,21 +143,21 @@ public void testRawSplitDexHasSecondary() throws IOException {
zipInspector.assertFileExists("classes2.dex");
zipInspector.assertFileExists("classes.dex");
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
}
@Test
public void testDisguisedExecutableIsRenamed() throws IOException {
Path output = workspace.buildAndReturnOutput("//apps/sample:app_with_disguised_exe");
ZipInspector zipInspector = new ZipInspector(output);
- zipInspector.assertFileExists("lib/armeabi/libmybinary.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libmybinary.so");
}
@Test
public void testNdkLibraryIsIncluded() throws IOException {
Path output = workspace.buildAndReturnOutput("//apps/sample:app_with_ndk_library");
ZipInspector zipInspector = new ZipInspector(output);
- zipInspector.assertFileExists("lib/armeabi/libfakenative.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libfakenative.so");
}
@Test
@@ -165,7 +165,7 @@ public void testEditingNdkLibraryForcesRebuild() throws IOException, Interrupted
String apkWithNdkLibrary = "//apps/sample:app_with_ndk_library";
Path output = workspace.buildAndReturnOutput(apkWithNdkLibrary);
ZipInspector zipInspector = new ZipInspector(output);
- zipInspector.assertFileExists("lib/armeabi/libfakenative.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libfakenative.so");
// Sleep 1 second (plus another half to be super duper safe) to make sure that
// fakesystem.c gets a later timestamp than the fakesystem.o that was produced
diff --git a/test/com/facebook/buck/android/AndroidBinaryNativeIntegrationTest.java b/test/com/facebook/buck/android/AndroidBinaryNativeIntegrationTest.java
index e68b443b0b6..3652124d66e 100644
--- a/test/com/facebook/buck/android/AndroidBinaryNativeIntegrationTest.java
+++ b/test/com/facebook/buck/android/AndroidBinaryNativeIntegrationTest.java
@@ -76,14 +76,14 @@ public void setUp() throws InterruptedException, IOException {
public void testPrebuiltNativeLibraryIsIncluded() throws IOException {
Path output = workspace.buildAndReturnOutput("//apps/sample:app_with_prebuilt_native_libs");
ZipInspector zipInspector = new ZipInspector(output);
- zipInspector.assertFileExists("lib/armeabi/libprebuilt.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libprebuilt.so");
}
@Test
public void testPrebuiltNativeLibraryAsAssetIsIncluded() throws IOException {
Path output = workspace.buildAndReturnOutput("//apps/sample:app_with_prebuilt_native_libs");
ZipInspector zipInspector = new ZipInspector(output);
- zipInspector.assertFileExists("assets/lib/armeabi/libprebuilt_asset.so");
+ zipInspector.assertFileExists("assets/lib/armeabi-v7a/libprebuilt_asset.so");
}
@Test
diff --git a/test/com/facebook/buck/android/AndroidExopackageBinaryIntegrationTest.java b/test/com/facebook/buck/android/AndroidExopackageBinaryIntegrationTest.java
index 038d1834fae..bb1c8179713 100644
--- a/test/com/facebook/buck/android/AndroidExopackageBinaryIntegrationTest.java
+++ b/test/com/facebook/buck/android/AndroidExopackageBinaryIntegrationTest.java
@@ -90,7 +90,7 @@ public void testDexExopackageHasNoSecondary() throws IOException {
zipInspector.assertFileDoesNotExist("classes2.dex");
zipInspector.assertFileExists("classes.dex");
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
// It would be better if we could call getExopackageInfo on the app rule.
Path secondaryDir =
@@ -130,7 +130,7 @@ public void testNativeExopackageHasNoNativeLibraries() throws IOException {
zipInspector.assertFileExists("classes.dex");
- zipInspector.assertFileDoesNotExist("lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libnative_cxx_lib.so");
}
@Test
@@ -145,7 +145,7 @@ public void testDexAndNativeExopackageHasNeitherSecondaryNorNativeLibraries() th
zipInspector.assertFileDoesNotExist("assets/secondary-program-dex-jars/metadata.txt");
zipInspector.assertFileDoesNotExist("classes2.dex");
- zipInspector.assertFileDoesNotExist("lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libnative_cxx_lib.so");
zipInspector.assertFileExists("classes.dex");
}
@@ -226,8 +226,8 @@ public void testEditingNativeForcesRebuild() throws IOException {
workspace.getBuildLog().assertTargetBuiltLocally(DEX_EXOPACKAGE_TARGET);
zipInspector =
new ZipInspector(workspace.getPath("buck-out/gen/apps/multidex/app-dex-exo.apk"));
- zipInspector.assertFileExists("lib/armeabi/libnative_cxx_lib.so");
- zipInspector.assertFileDoesNotExist("assets/lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileExists("lib/armeabi-v7a/libnative_cxx_lib.so");
+ zipInspector.assertFileDoesNotExist("assets/lib/armeabi-v7a/libnative_cxx_lib.so");
// Now convert it into an asset native library and ensure that we re-run apkbuilder.
workspace.replaceFileContents(
@@ -239,8 +239,8 @@ public void testEditingNativeForcesRebuild() throws IOException {
workspace.getBuildLog().assertTargetBuiltLocally(DEX_EXOPACKAGE_TARGET);
zipInspector =
new ZipInspector(workspace.getPath("buck-out/gen/apps/multidex/app-dex-exo.apk"));
- zipInspector.assertFileDoesNotExist("lib/armeabi/libnative_cxx_lib.so");
- zipInspector.assertFileExists("assets/lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libnative_cxx_lib.so");
+ zipInspector.assertFileExists("assets/lib/armeabi-v7a/libnative_cxx_lib.so");
// Now edit it again and make sure we re-run apkbuilder.
workspace.replaceFileContents("native/cxx/lib.cpp", "return 4", "return 5");
@@ -254,8 +254,8 @@ public void testEditingNativeForcesRebuild() throws IOException {
workspace.getPath(
BuildTargets.getGenPath(
filesystem, BuildTargetFactory.newInstance(DEX_EXOPACKAGE_TARGET), "%s.apk")));
- zipInspector.assertFileDoesNotExist("lib/armeabi/libnative_cxx_lib.so");
- zipInspector.assertFileExists("assets/lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libnative_cxx_lib.so");
+ zipInspector.assertFileExists("assets/lib/armeabi-v7a/libnative_cxx_lib.so");
}
@Test
diff --git a/test/com/facebook/buck/android/AndroidFullExopackageBinaryIntegrationTest.java b/test/com/facebook/buck/android/AndroidFullExopackageBinaryIntegrationTest.java
index f6910dda96c..36de3b03f56 100644
--- a/test/com/facebook/buck/android/AndroidFullExopackageBinaryIntegrationTest.java
+++ b/test/com/facebook/buck/android/AndroidFullExopackageBinaryIntegrationTest.java
@@ -60,7 +60,7 @@ public void testApkHasABunchOfThingsNotIncluded() throws IOException {
zipInspector.assertFileDoesNotExist("assets/secondary-program-dex-jars/metadata.txt");
zipInspector.assertFileDoesNotExist("classes2.dex");
- zipInspector.assertFileDoesNotExist("lib/armeabi/libnative_cxx_lib.so");
+ zipInspector.assertFileDoesNotExist("lib/armeabi-v7a/libnative_cxx_lib.so");
zipInspector.assertFileDoesNotExist("assets/hilarity.txt");
zipInspector.assertFileExists("classes.dex");
diff --git a/test/com/facebook/buck/android/AndroidInstrumentationApkIntegrationTest.java b/test/com/facebook/buck/android/AndroidInstrumentationApkIntegrationTest.java
index 08f13c9aa35..7115d956f29 100644
--- a/test/com/facebook/buck/android/AndroidInstrumentationApkIntegrationTest.java
+++ b/test/com/facebook/buck/android/AndroidInstrumentationApkIntegrationTest.java
@@ -54,8 +54,6 @@ public void testCxxLibraryDep() throws InterruptedException, IOException {
workspace.getPath(
BuildTargets.getGenPath(
filesystem, BuildTargetFactory.newInstance(target), "%s.apk")));
- zipInspector.assertFileExists("lib/armeabi/libcxx.so");
- zipInspector.assertFileExists("lib/armeabi/libgnustl_shared.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libcxx.so");
zipInspector.assertFileExists("lib/armeabi-v7a/libgnustl_shared.so");
zipInspector.assertFileExists("lib/x86/libcxx.so");
diff --git a/test/com/facebook/buck/android/testdata/android_project/apps/multidex/BUCK.fixture b/test/com/facebook/buck/android/testdata/android_project/apps/multidex/BUCK.fixture
index 379d8e7e269..1e2cf65ee1d 100644
--- a/test/com/facebook/buck/android/testdata/android_project/apps/multidex/BUCK.fixture
+++ b/test/com/facebook/buck/android/testdata/android_project/apps/multidex/BUCK.fixture
@@ -208,7 +208,7 @@ android_binary(
android_binary(
name = "app-native-exo",
cpu_filters = [
- "arm",
+ "armv7",
],
exopackage_modes = ["native_library"],
keystore = "//keystores:debug",
@@ -228,7 +228,7 @@ android_binary(
android_binary(
name = "app-dex-native-exo",
cpu_filters = [
- "arm",
+ "armv7",
],
exopackage_modes = [
"native_library",
@@ -251,7 +251,7 @@ android_binary(
android_binary(
name = "app-full-exo",
cpu_filters = [
- "arm",
+ "armv7",
],
exopackage_modes = [
"native_library",
diff --git a/test/com/facebook/buck/android/testdata/android_project/apps/sample/BUCK.fixture b/test/com/facebook/buck/android/testdata/android_project/apps/sample/BUCK.fixture
index 50ccaa7b1f8..f6e3bb97792 100644
--- a/test/com/facebook/buck/android/testdata/android_project/apps/sample/BUCK.fixture
+++ b/test/com/facebook/buck/android/testdata/android_project/apps/sample/BUCK.fixture
@@ -178,7 +178,6 @@ android_binary(
android_binary(
name = "app_cxx_lib_dep",
cpu_filters = [
- "arm",
"armv7",
"x86",
],
@@ -244,7 +243,6 @@ android_binary(
"//native/cxx:lib",
],
cpu_filters = [
- "arm",
"armv7",
"x86",
],
@@ -312,7 +310,6 @@ android_binary(
android_binary(
name = "app_no_cxx_deps",
cpu_filters = [
- "arm",
"armv7",
"x86",
],
@@ -383,7 +380,6 @@ android_binary(
android_binary(
name = "app_with_native_lib_proguard",
cpu_filters = [
- "arm",
"armv7",
"x86",
],
diff --git a/test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt/armeabi/libprebuilt.so b/test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt/armeabi-v7a/libprebuilt.so
similarity index 100%
rename from test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt/armeabi/libprebuilt.so
rename to test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt/armeabi-v7a/libprebuilt.so
diff --git a/test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt_asset/armeabi/libprebuilt_asset.so b/test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt_asset/armeabi-v7a/libprebuilt_asset.so
similarity index 100%
rename from test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt_asset/armeabi/libprebuilt_asset.so
rename to test/com/facebook/buck/android/testdata/android_project/native/fakenative/jni/prebuilt_asset/armeabi-v7a/libprebuilt_asset.so
diff --git a/test/com/facebook/buck/android/testdata/android_project/native/proguard_gen/expected.pro b/test/com/facebook/buck/android/testdata/android_project/native/proguard_gen/expected.pro
index 51fbe293a5d..4aad9e8e73e 100644
--- a/test/com/facebook/buck/android/testdata/android_project/native/proguard_gen/expected.pro
+++ b/test/com/facebook/buck/android/testdata/android_project/native/proguard_gen/expected.pro
@@ -1,5 +1,3 @@
-# buck-out/bin/apps/sample/__native_dex_app_with_native_lib_proguard#copy_native_libs_dex__/libs/armeabi/libgnustl_shared.so
-# buck-out/bin/apps/sample/__native_dex_app_with_native_lib_proguard#copy_native_libs_dex__/libs/armeabi/libnative_cxx_lib.so
# buck-out/bin/apps/sample/__native_dex_app_with_native_lib_proguard#copy_native_libs_dex__/libs/armeabi-v7a/libgnustl_shared.so
# buck-out/bin/apps/sample/__native_dex_app_with_native_lib_proguard#copy_native_libs_dex__/libs/armeabi-v7a/libnative_cxx_lib.so
# buck-out/bin/apps/sample/__native_dex_app_with_native_lib_proguard#copy_native_libs_dex__/libs/x86/libgnustl_shared.so
diff --git a/test/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatformIntegrationTest.java b/test/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatformIntegrationTest.java
index 5d09fc477e8..a35efa73395 100644
--- a/test/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatformIntegrationTest.java
+++ b/test/com/facebook/buck/android/toolchain/ndk/impl/NdkCxxPlatformIntegrationTest.java
@@ -139,7 +139,8 @@ public void changedPlatformTarget() throws InterruptedException, IOException {
workspace.getBuildLog().assertTargetBuiltLocally(linkTarget.toString());
// Change the app platform and verify that our rulekey has changed.
- workspace.writeContentsToPath("[ndk]\n app_platform = android-12", ".buckconfig");
+ workspace.writeContentsToPath(
+ "[ndk]\n app_platform = android-12\n cpu_abis = arm, armv7, x86", ".buckconfig");
workspace.runBuckCommand("build", target.toString()).assertSuccess();
workspace.getBuildLog().assertTargetBuiltLocally(linkTarget.toString());
}