diff options
author | 2020-07-10 00:14:03 +0100 | |
---|---|---|
committer | 2020-07-17 14:32:15 +0100 | |
commit | 89238f4703ddb44bdc963e26ca29fb9eed6b1b38 (patch) | |
tree | 76c34e5cc00df2657c8c87852f7cbd00a05765e1 /sdk/cc_sdk_test.go | |
parent | 304439432919c5b14f32d8ae23b23ea8cb9a6589 (diff) |
Add compile_multilib properties to all native prebuilts (reland).
There was a special case in cc_prebuilt_binary only, which resulted in
prebuilt libraries getting both 32 and 64 bit variants even when their
sources only had one of them, and the other variant would be defunct
since it wouldn't get any prebuilt artefact.
This moves the handling of compile_multilib completely to the common
update code, so that SDK members don't need to deal with it. It doesn't
take SDK member defaults into account, which means a bit more
boilerplate in the snapshots, but it's simpler and less error prone
(different SDK member types have different defaults).
This relands https://r.android.com/1359962 after disabling the SDK
tests on mac once and for all.
Bug: 151303681
Test: `go test -v ./sdk` in build/soong on mac and linux
Change-Id: I05f6603b2ac9b8676b25c3e297165ca23284e9cc
Diffstat (limited to 'sdk/cc_sdk_test.go')
-rw-r--r-- | sdk/cc_sdk_test.go | 108 |
1 files changed, 105 insertions, 3 deletions
diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go index 935d348ae..497f14bde 100644 --- a/sdk/cc_sdk_test.go +++ b/sdk/cc_sdk_test.go @@ -73,12 +73,16 @@ func TestSdkCompileMultilibOverride(t *testing.T) { result := testSdkWithCc(t, ` sdk { name: "mysdk", + device_supported: false, + host_supported: true, native_shared_libs: ["sdkmember"], compile_multilib: "64", } cc_library_shared { name: "sdkmember", + device_supported: false, + host_supported: true, srcs: ["Test.cpp"], stl: "none", compile_multilib: "64", @@ -86,8 +90,52 @@ func TestSdkCompileMultilibOverride(t *testing.T) { `) result.CheckSnapshot("mysdk", "", + checkAndroidBpContents(` +// This is auto-generated. DO NOT EDIT. + +cc_prebuilt_library_shared { + name: "mysdk_sdkmember@current", + sdk_member_name: "sdkmember", + device_supported: false, + host_supported: true, + installable: false, + stl: "none", + compile_multilib: "64", + arch: { + x86_64: { + srcs: ["x86_64/lib/sdkmember.so"], + }, + }, +} + +cc_prebuilt_library_shared { + name: "sdkmember", + prefer: false, + device_supported: false, + host_supported: true, + stl: "none", + compile_multilib: "64", + arch: { + x86_64: { + srcs: ["x86_64/lib/sdkmember.so"], + }, + }, +} + +sdk_snapshot { + name: "mysdk@current", + device_supported: false, + host_supported: true, + native_shared_libs: ["mysdk_sdkmember@current"], + target: { + linux_glibc: { + compile_multilib: "64", + }, + }, +} +`), checkAllCopyRules(` -.intermediates/sdkmember/android_arm64_armv8-a_shared/sdkmember.so -> arm64/lib/sdkmember.so +.intermediates/sdkmember/linux_glibc_x86_64_shared/sdkmember.so -> x86_64/lib/sdkmember.so `)) } @@ -271,6 +319,7 @@ cc_prebuilt_object { name: "mysdk_crtobj@current", sdk_member_name: "crtobj", stl: "none", + compile_multilib: "both", arch: { arm64: { srcs: ["arm64/lib/crtobj.o"], @@ -285,6 +334,7 @@ cc_prebuilt_object { name: "crtobj", prefer: false, stl: "none", + compile_multilib: "both", arch: { arm64: { srcs: ["arm64/lib/crtobj.o"], @@ -378,6 +428,7 @@ cc_prebuilt_library_shared { sdk_member_name: "mynativelib", installable: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -394,6 +445,7 @@ cc_prebuilt_library_shared { name: "mynativelib", prefer: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -621,9 +673,9 @@ cc_prebuilt_binary { host_supported: true, installable: false, stl: "none", + compile_multilib: "both", static_executable: true, nocrt: true, - compile_multilib: "both", arch: { x86_64: { srcs: ["x86_64/bin/linker"], @@ -640,9 +692,9 @@ cc_prebuilt_binary { device_supported: false, host_supported: true, stl: "none", + compile_multilib: "both", static_executable: true, nocrt: true, - compile_multilib: "both", arch: { x86_64: { srcs: ["x86_64/bin/linker"], @@ -702,6 +754,7 @@ cc_prebuilt_library_shared { ], installable: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -723,6 +776,7 @@ cc_prebuilt_library_shared { "apex2", ], stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -824,6 +878,7 @@ cc_prebuilt_library_shared { sdk_member_name: "mynativelib", installable: false, stl: "none", + compile_multilib: "both", shared_libs: [ "mysdk_myothernativelib@current", "libc", @@ -842,6 +897,7 @@ cc_prebuilt_library_shared { name: "mynativelib", prefer: false, stl: "none", + compile_multilib: "both", shared_libs: [ "myothernativelib", "libc", @@ -861,6 +917,7 @@ cc_prebuilt_library_shared { sdk_member_name: "myothernativelib", installable: false, stl: "none", + compile_multilib: "both", system_shared_libs: ["libm"], arch: { arm64: { @@ -876,6 +933,7 @@ cc_prebuilt_library_shared { name: "myothernativelib", prefer: false, stl: "none", + compile_multilib: "both", system_shared_libs: ["libm"], arch: { arm64: { @@ -892,6 +950,7 @@ cc_prebuilt_library_shared { sdk_member_name: "mysystemnativelib", installable: false, stl: "none", + compile_multilib: "both", arch: { arm64: { srcs: ["arm64/lib/mysystemnativelib.so"], @@ -906,6 +965,7 @@ cc_prebuilt_library_shared { name: "mysystemnativelib", prefer: false, stl: "none", + compile_multilib: "both", arch: { arm64: { srcs: ["arm64/lib/mysystemnativelib.so"], @@ -974,6 +1034,7 @@ cc_prebuilt_library_shared { installable: false, sdk_version: "minimum", stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { x86_64: { @@ -994,6 +1055,7 @@ cc_prebuilt_library_shared { host_supported: true, sdk_version: "minimum", stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { x86_64: { @@ -1070,12 +1132,18 @@ cc_prebuilt_library_shared { installable: false, stl: "none", target: { + linux_glibc: { + compile_multilib: "both", + }, linux_glibc_x86_64: { srcs: ["linux_glibc/x86_64/lib/mynativelib.so"], }, linux_glibc_x86: { srcs: ["linux_glibc/x86/lib/mynativelib.so"], }, + windows: { + compile_multilib: "64", + }, windows_x86_64: { srcs: ["windows/x86_64/lib/mynativelib.dll"], }, @@ -1089,12 +1157,18 @@ cc_prebuilt_library_shared { host_supported: true, stl: "none", target: { + linux_glibc: { + compile_multilib: "both", + }, linux_glibc_x86_64: { srcs: ["linux_glibc/x86_64/lib/mynativelib.so"], }, linux_glibc_x86: { srcs: ["linux_glibc/x86/lib/mynativelib.so"], }, + windows: { + compile_multilib: "64", + }, windows_x86_64: { srcs: ["windows/x86_64/lib/mynativelib.dll"], }, @@ -1151,6 +1225,7 @@ cc_prebuilt_library_static { sdk_member_name: "mynativelib", installable: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -1168,6 +1243,7 @@ cc_prebuilt_library_static { name: "mynativelib", prefer: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -1236,6 +1312,7 @@ cc_prebuilt_library_static { host_supported: true, installable: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { x86_64: { @@ -1255,6 +1332,7 @@ cc_prebuilt_library_static { device_supported: false, host_supported: true, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { x86_64: { @@ -1315,6 +1393,7 @@ cc_prebuilt_library { sdk_member_name: "mynativelib", installable: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -1340,6 +1419,7 @@ cc_prebuilt_library { name: "mynativelib", prefer: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], arch: { arm64: { @@ -1416,6 +1496,7 @@ cc_prebuilt_library_static { host_supported: true, installable: false, stl: "none", + compile_multilib: "64", export_include_dirs: ["include/include"], arch: { x86_64: { @@ -1431,6 +1512,7 @@ cc_prebuilt_library_static { device_supported: false, host_supported: true, stl: "none", + compile_multilib: "64", export_include_dirs: ["include/include"], arch: { x86_64: { @@ -1483,6 +1565,7 @@ cc_prebuilt_library_headers { name: "mysdk_mynativeheaders@current", sdk_member_name: "mynativeheaders", stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], } @@ -1490,6 +1573,7 @@ cc_prebuilt_library_headers { name: "mynativeheaders", prefer: false, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], } @@ -1532,6 +1616,7 @@ cc_prebuilt_library_headers { device_supported: false, host_supported: true, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], } @@ -1541,6 +1626,7 @@ cc_prebuilt_library_headers { device_supported: false, host_supported: true, stl: "none", + compile_multilib: "both", export_include_dirs: ["include/include"], } @@ -1590,6 +1676,7 @@ cc_prebuilt_library_headers { sdk_member_name: "mynativeheaders", host_supported: true, stl: "none", + compile_multilib: "both", export_system_include_dirs: ["common_os/include/include"], target: { android: { @@ -1606,6 +1693,7 @@ cc_prebuilt_library_headers { prefer: false, host_supported: true, stl: "none", + compile_multilib: "both", export_system_include_dirs: ["common_os/include/include"], target: { android: { @@ -1662,6 +1750,7 @@ cc_prebuilt_library_shared { name: "mysdk_sslnil@current", sdk_member_name: "sslnil", installable: false, + compile_multilib: "both", arch: { arm64: { srcs: ["arm64/lib/sslnil.so"], @@ -1675,6 +1764,7 @@ cc_prebuilt_library_shared { cc_prebuilt_library_shared { name: "sslnil", prefer: false, + compile_multilib: "both", arch: { arm64: { srcs: ["arm64/lib/sslnil.so"], @@ -1689,6 +1779,7 @@ cc_prebuilt_library_shared { name: "mysdk_sslempty@current", sdk_member_name: "sslempty", installable: false, + compile_multilib: "both", system_shared_libs: [], arch: { arm64: { @@ -1703,6 +1794,7 @@ cc_prebuilt_library_shared { cc_prebuilt_library_shared { name: "sslempty", prefer: false, + compile_multilib: "both", system_shared_libs: [], arch: { arm64: { @@ -1718,6 +1810,7 @@ cc_prebuilt_library_shared { name: "mysdk_sslnonempty@current", sdk_member_name: "sslnonempty", installable: false, + compile_multilib: "both", system_shared_libs: ["mysdk_sslnil@current"], arch: { arm64: { @@ -1732,6 +1825,7 @@ cc_prebuilt_library_shared { cc_prebuilt_library_shared { name: "sslnonempty", prefer: false, + compile_multilib: "both", system_shared_libs: ["sslnil"], arch: { arm64: { @@ -1780,6 +1874,7 @@ cc_prebuilt_library_shared { sdk_member_name: "sslvariants", host_supported: true, installable: false, + compile_multilib: "both", target: { android: { system_shared_libs: [], @@ -1803,6 +1898,7 @@ cc_prebuilt_library_shared { name: "sslvariants", prefer: false, host_supported: true, + compile_multilib: "both", target: { android: { system_shared_libs: [], @@ -1859,6 +1955,7 @@ cc_prebuilt_library_shared { name: "mysdk_stubslib@current", sdk_member_name: "stubslib", installable: false, + compile_multilib: "both", stubs: { versions: ["3"], }, @@ -1875,6 +1972,7 @@ cc_prebuilt_library_shared { cc_prebuilt_library_shared { name: "stubslib", prefer: false, + compile_multilib: "both", stubs: { versions: ["3"], }, @@ -1928,6 +2026,7 @@ cc_prebuilt_library_shared { sdk_member_name: "stubslib", host_supported: true, installable: false, + compile_multilib: "both", stubs: { versions: ["3"], }, @@ -1951,6 +2050,7 @@ cc_prebuilt_library_shared { name: "stubslib", prefer: false, host_supported: true, + compile_multilib: "both", stubs: { versions: ["3"], }, @@ -2003,6 +2103,7 @@ cc_prebuilt_library_shared { host_supported: true, installable: false, unique_host_soname: true, + compile_multilib: "both", target: { android_arm64: { srcs: ["android/arm64/lib/mylib.so"], @@ -2024,6 +2125,7 @@ cc_prebuilt_library_shared { prefer: false, host_supported: true, unique_host_soname: true, + compile_multilib: "both", target: { android_arm64: { srcs: ["android/arm64/lib/mylib.so"], |