The exported include dirs includes both source and generated directories (e.g. containing aidl generated headers). The latter are always arch specific so if they are present they make all the include directories arch specific. This change separates the source and generated include dirs so that the source include dirs (which are probably not arch specific) can be optimized separately from the arch specific generated include dirs. The FilterPathList() func was refactored to extract the more general FilterPathListPredicate() func. A number of tests needed to be updated to reflect the more optimal snapshot creation. Bug: 142918168 Test: m checkbuild Change-Id: Id1a23d35a45b250ae2168834f9c2a65c86a5fd77
611 lines
18 KiB
Go
611 lines
18 KiB
Go
// Copyright (C) 2019 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package sdk
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"android/soong/cc"
|
|
)
|
|
|
|
func testSdkWithCc(t *testing.T, bp string) *testSdkResult {
|
|
t.Helper()
|
|
|
|
fs := map[string][]byte{
|
|
"Test.cpp": nil,
|
|
"include/Test.h": nil,
|
|
"arm64/include/Arm64Test.h": nil,
|
|
"libfoo.so": nil,
|
|
"aidl/foo/bar/Test.aidl": nil,
|
|
}
|
|
return testSdkWithFs(t, bp, fs)
|
|
}
|
|
|
|
// Contains tests for SDK members provided by the cc package.
|
|
|
|
func TestSdkIsCompileMultilibBoth(t *testing.T) {
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
native_shared_libs: ["sdkmember"],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "sdkmember",
|
|
srcs: ["Test.cpp"],
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
`)
|
|
|
|
armOutput := result.Module("sdkmember", "android_arm_armv7-a-neon_core_shared").(*cc.Module).OutputFile()
|
|
arm64Output := result.Module("sdkmember", "android_arm64_armv8-a_core_shared").(*cc.Module).OutputFile()
|
|
|
|
var inputs []string
|
|
buildParams := result.Module("mysdk", "android_common").BuildParamsForTests()
|
|
for _, bp := range buildParams {
|
|
if bp.Input != nil {
|
|
inputs = append(inputs, bp.Input.String())
|
|
}
|
|
}
|
|
|
|
// ensure that both 32/64 outputs are inputs of the sdk snapshot
|
|
ensureListContains(t, inputs, armOutput.String())
|
|
ensureListContains(t, inputs, arm64Output.String())
|
|
}
|
|
|
|
func TestBasicSdkWithCc(t *testing.T) {
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
native_shared_libs: ["sdkmember"],
|
|
}
|
|
|
|
sdk_snapshot {
|
|
name: "mysdk@1",
|
|
native_shared_libs: ["sdkmember_mysdk_1"],
|
|
}
|
|
|
|
sdk_snapshot {
|
|
name: "mysdk@2",
|
|
native_shared_libs: ["sdkmember_mysdk_2"],
|
|
}
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "sdkmember",
|
|
srcs: ["libfoo.so"],
|
|
prefer: false,
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "sdkmember_mysdk_1",
|
|
sdk_member_name: "sdkmember",
|
|
srcs: ["libfoo.so"],
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "sdkmember_mysdk_2",
|
|
sdk_member_name: "sdkmember",
|
|
srcs: ["libfoo.so"],
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "mycpplib",
|
|
srcs: ["Test.cpp"],
|
|
shared_libs: ["sdkmember"],
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
|
|
apex {
|
|
name: "myapex",
|
|
native_shared_libs: ["mycpplib"],
|
|
uses_sdks: ["mysdk@1"],
|
|
key: "myapex.key",
|
|
certificate: ":myapex.cert",
|
|
}
|
|
|
|
apex {
|
|
name: "myapex2",
|
|
native_shared_libs: ["mycpplib"],
|
|
uses_sdks: ["mysdk@2"],
|
|
key: "myapex.key",
|
|
certificate: ":myapex.cert",
|
|
}
|
|
`)
|
|
|
|
sdkMemberV1 := result.ModuleForTests("sdkmember_mysdk_1", "android_arm64_armv8-a_core_shared_myapex").Rule("toc").Output
|
|
sdkMemberV2 := result.ModuleForTests("sdkmember_mysdk_2", "android_arm64_armv8-a_core_shared_myapex2").Rule("toc").Output
|
|
|
|
cpplibForMyApex := result.ModuleForTests("mycpplib", "android_arm64_armv8-a_core_shared_myapex")
|
|
cpplibForMyApex2 := result.ModuleForTests("mycpplib", "android_arm64_armv8-a_core_shared_myapex2")
|
|
|
|
// Depending on the uses_sdks value, different libs are linked
|
|
ensureListContains(t, pathsToStrings(cpplibForMyApex.Rule("ld").Implicits), sdkMemberV1.String())
|
|
ensureListContains(t, pathsToStrings(cpplibForMyApex2.Rule("ld").Implicits), sdkMemberV2.String())
|
|
}
|
|
|
|
func TestSnapshotWithCcDuplicateHeaders(t *testing.T) {
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
native_shared_libs: ["mynativelib1", "mynativelib2"],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "mynativelib1",
|
|
srcs: [
|
|
"Test.cpp",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "mynativelib2",
|
|
srcs: [
|
|
"Test.cpp",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
`)
|
|
|
|
result.CheckSnapshot("mysdk", "android_common", "",
|
|
checkAllCopyRules(`
|
|
include/Test.h -> include/include/Test.h
|
|
.intermediates/mynativelib1/android_arm64_armv8-a_core_shared/mynativelib1.so -> arm64/lib/mynativelib1.so
|
|
.intermediates/mynativelib1/android_arm_armv7-a-neon_core_shared/mynativelib1.so -> arm/lib/mynativelib1.so
|
|
.intermediates/mynativelib2/android_arm64_armv8-a_core_shared/mynativelib2.so -> arm64/lib/mynativelib2.so
|
|
.intermediates/mynativelib2/android_arm_armv7-a-neon_core_shared/mynativelib2.so -> arm/lib/mynativelib2.so
|
|
`),
|
|
)
|
|
}
|
|
|
|
// Verify that when the shared library has some common and some arch specific properties that the generated
|
|
// snapshot is optimized properly.
|
|
func TestSnapshotWithCcSharedLibraryCommonProperties(t *testing.T) {
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
native_shared_libs: ["mynativelib"],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "mynativelib",
|
|
srcs: [
|
|
"Test.cpp",
|
|
"aidl/foo/bar/Test.aidl",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
arch: {
|
|
arm64: {
|
|
export_system_include_dirs: ["arm64/include"],
|
|
},
|
|
},
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
`)
|
|
|
|
result.CheckSnapshot("mysdk", "android_common", "",
|
|
checkAndroidBpContents(`
|
|
// This is auto-generated. DO NOT EDIT.
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "mysdk_mynativelib@current",
|
|
sdk_member_name: "mynativelib",
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
arm64: {
|
|
srcs: ["arm64/lib/mynativelib.so"],
|
|
export_system_include_dirs: ["arm64/include/arm64/include"],
|
|
},
|
|
arm: {
|
|
srcs: ["arm/lib/mynativelib.so"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "mynativelib",
|
|
prefer: false,
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
arm64: {
|
|
srcs: ["arm64/lib/mynativelib.so"],
|
|
export_system_include_dirs: ["arm64/include/arm64/include"],
|
|
},
|
|
arm: {
|
|
srcs: ["arm/lib/mynativelib.so"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
sdk_snapshot {
|
|
name: "mysdk@current",
|
|
native_shared_libs: ["mysdk_mynativelib@current"],
|
|
}
|
|
`),
|
|
checkAllCopyRules(`
|
|
include/Test.h -> include/include/Test.h
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/mynativelib.so -> arm64/lib/mynativelib.so
|
|
arm64/include/Arm64Test.h -> arm64/include/arm64/include/Arm64Test.h
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/mynativelib.so -> arm/lib/mynativelib.so`),
|
|
)
|
|
}
|
|
|
|
func TestSnapshotWithCcSharedLibrary(t *testing.T) {
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
native_shared_libs: ["mynativelib"],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "mynativelib",
|
|
srcs: [
|
|
"Test.cpp",
|
|
"aidl/foo/bar/Test.aidl",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
aidl: {
|
|
export_aidl_headers: true,
|
|
},
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
`)
|
|
|
|
result.CheckSnapshot("mysdk", "android_common", "",
|
|
checkAndroidBpContents(`
|
|
// This is auto-generated. DO NOT EDIT.
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "mysdk_mynativelib@current",
|
|
sdk_member_name: "mynativelib",
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
arm64: {
|
|
srcs: ["arm64/lib/mynativelib.so"],
|
|
export_include_dirs: ["arm64/include_gen/mynativelib"],
|
|
},
|
|
arm: {
|
|
srcs: ["arm/lib/mynativelib.so"],
|
|
export_include_dirs: ["arm/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "mynativelib",
|
|
prefer: false,
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
arm64: {
|
|
srcs: ["arm64/lib/mynativelib.so"],
|
|
export_include_dirs: ["arm64/include_gen/mynativelib"],
|
|
},
|
|
arm: {
|
|
srcs: ["arm/lib/mynativelib.so"],
|
|
export_include_dirs: ["arm/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
sdk_snapshot {
|
|
name: "mysdk@current",
|
|
native_shared_libs: ["mysdk_mynativelib@current"],
|
|
}
|
|
`),
|
|
checkAllCopyRules(`
|
|
include/Test.h -> include/include/Test.h
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/mynativelib.so -> arm64/lib/mynativelib.so
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/mynativelib.so -> arm/lib/mynativelib.so
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
`),
|
|
)
|
|
}
|
|
|
|
func TestHostSnapshotWithCcSharedLibrary(t *testing.T) {
|
|
// b/145598135 - Generating host snapshots for anything other than linux is not supported.
|
|
SkipIfNotLinux(t)
|
|
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
native_shared_libs: ["mynativelib"],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "mynativelib",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
srcs: [
|
|
"Test.cpp",
|
|
"aidl/foo/bar/Test.aidl",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
aidl: {
|
|
export_aidl_headers: true,
|
|
},
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
`)
|
|
|
|
result.CheckSnapshot("mysdk", "linux_glibc_common", "",
|
|
checkAndroidBpContents(`
|
|
// This is auto-generated. DO NOT EDIT.
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "mysdk_mynativelib@current",
|
|
sdk_member_name: "mynativelib",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
x86_64: {
|
|
srcs: ["x86_64/lib/mynativelib.so"],
|
|
export_include_dirs: ["x86_64/include_gen/mynativelib"],
|
|
},
|
|
x86: {
|
|
srcs: ["x86/lib/mynativelib.so"],
|
|
export_include_dirs: ["x86/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
cc_prebuilt_library_shared {
|
|
name: "mynativelib",
|
|
prefer: false,
|
|
device_supported: false,
|
|
host_supported: true,
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
x86_64: {
|
|
srcs: ["x86_64/lib/mynativelib.so"],
|
|
export_include_dirs: ["x86_64/include_gen/mynativelib"],
|
|
},
|
|
x86: {
|
|
srcs: ["x86/lib/mynativelib.so"],
|
|
export_include_dirs: ["x86/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
sdk_snapshot {
|
|
name: "mysdk@current",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
native_shared_libs: ["mysdk_mynativelib@current"],
|
|
}
|
|
`),
|
|
checkAllCopyRules(`
|
|
include/Test.h -> include/include/Test.h
|
|
.intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> x86_64/lib/mynativelib.so
|
|
.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
.intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> x86/lib/mynativelib.so
|
|
.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
`),
|
|
)
|
|
}
|
|
|
|
func TestSnapshotWithCcStaticLibrary(t *testing.T) {
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
native_static_libs: ["mynativelib"],
|
|
}
|
|
|
|
cc_library_static {
|
|
name: "mynativelib",
|
|
srcs: [
|
|
"Test.cpp",
|
|
"aidl/foo/bar/Test.aidl",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
aidl: {
|
|
export_aidl_headers: true,
|
|
},
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
`)
|
|
|
|
result.CheckSnapshot("mysdk", "android_common", "",
|
|
checkAndroidBpContents(`
|
|
// This is auto-generated. DO NOT EDIT.
|
|
|
|
cc_prebuilt_library_static {
|
|
name: "mysdk_mynativelib@current",
|
|
sdk_member_name: "mynativelib",
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
arm64: {
|
|
srcs: ["arm64/lib/mynativelib.a"],
|
|
export_include_dirs: ["arm64/include_gen/mynativelib"],
|
|
},
|
|
arm: {
|
|
srcs: ["arm/lib/mynativelib.a"],
|
|
export_include_dirs: ["arm/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
cc_prebuilt_library_static {
|
|
name: "mynativelib",
|
|
prefer: false,
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
arm64: {
|
|
srcs: ["arm64/lib/mynativelib.a"],
|
|
export_include_dirs: ["arm64/include_gen/mynativelib"],
|
|
},
|
|
arm: {
|
|
srcs: ["arm/lib/mynativelib.a"],
|
|
export_include_dirs: ["arm/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
sdk_snapshot {
|
|
name: "mysdk@current",
|
|
native_static_libs: ["mysdk_mynativelib@current"],
|
|
}
|
|
`),
|
|
checkAllCopyRules(`
|
|
include/Test.h -> include/include/Test.h
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_static/mynativelib.a -> arm64/lib/mynativelib.a
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/android_arm64_armv8-a_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/mynativelib.a -> arm/lib/mynativelib.a
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/android_arm_armv7-a-neon_core_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
`),
|
|
)
|
|
}
|
|
|
|
func TestHostSnapshotWithCcStaticLibrary(t *testing.T) {
|
|
// b/145598135 - Generating host snapshots for anything other than linux is not supported.
|
|
SkipIfNotLinux(t)
|
|
|
|
result := testSdkWithCc(t, `
|
|
sdk {
|
|
name: "mysdk",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
native_static_libs: ["mynativelib"],
|
|
}
|
|
|
|
cc_library_static {
|
|
name: "mynativelib",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
srcs: [
|
|
"Test.cpp",
|
|
"aidl/foo/bar/Test.aidl",
|
|
],
|
|
export_include_dirs: ["include"],
|
|
aidl: {
|
|
export_aidl_headers: true,
|
|
},
|
|
system_shared_libs: [],
|
|
stl: "none",
|
|
}
|
|
`)
|
|
|
|
result.CheckSnapshot("mysdk", "linux_glibc_common", "",
|
|
checkAndroidBpContents(`
|
|
// This is auto-generated. DO NOT EDIT.
|
|
|
|
cc_prebuilt_library_static {
|
|
name: "mysdk_mynativelib@current",
|
|
sdk_member_name: "mynativelib",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
x86_64: {
|
|
srcs: ["x86_64/lib/mynativelib.a"],
|
|
export_include_dirs: ["x86_64/include_gen/mynativelib"],
|
|
},
|
|
x86: {
|
|
srcs: ["x86/lib/mynativelib.a"],
|
|
export_include_dirs: ["x86/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
cc_prebuilt_library_static {
|
|
name: "mynativelib",
|
|
prefer: false,
|
|
device_supported: false,
|
|
host_supported: true,
|
|
export_include_dirs: ["include/include"],
|
|
arch: {
|
|
x86_64: {
|
|
srcs: ["x86_64/lib/mynativelib.a"],
|
|
export_include_dirs: ["x86_64/include_gen/mynativelib"],
|
|
},
|
|
x86: {
|
|
srcs: ["x86/lib/mynativelib.a"],
|
|
export_include_dirs: ["x86/include_gen/mynativelib"],
|
|
},
|
|
},
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
}
|
|
|
|
sdk_snapshot {
|
|
name: "mysdk@current",
|
|
device_supported: false,
|
|
host_supported: true,
|
|
native_static_libs: ["mysdk_mynativelib@current"],
|
|
}
|
|
`),
|
|
checkAllCopyRules(`
|
|
include/Test.h -> include/include/Test.h
|
|
.intermediates/mynativelib/linux_glibc_x86_64_static/mynativelib.a -> x86_64/lib/mynativelib.a
|
|
.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
.intermediates/mynativelib/linux_glibc_x86_static/mynativelib.a -> x86/lib/mynativelib.a
|
|
.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/aidl/foo/bar/Test.h
|
|
.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BnTest.h
|
|
.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/aidl/foo/bar/BpTest.h
|
|
`),
|
|
)
|
|
}
|