| // Copyright (C) 2023 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 { |
| default_applicable_licenses: ["Android-Apache-2.0"], |
| } |
| |
| cc_library_headers { |
| name: "libberberis_guest_loader_headers", |
| defaults: ["berberis_defaults"], |
| host_supported: true, |
| export_include_dirs: ["include"], |
| header_libs: [ |
| "libberberis_guest_state_headers", |
| "libberberis_tinyloader_headers", |
| ], |
| export_header_lib_headers: [ |
| "libberberis_guest_state_headers", |
| "libberberis_tinyloader_headers", |
| ], |
| } |
| |
| // Local headers for compiling guest_loader modules only. |
| // Don't depend on these headers in other modules. |
| cc_library_headers { |
| name: "_libberberis_guest_loader_private_headers", |
| defaults: ["berberis_defaults"], |
| host_supported: true, |
| export_include_dirs: ["."], |
| header_libs: ["libberberis_guest_loader_headers"], |
| } |
| |
| // filegroups ensure valid file paths for modules depending on |
| // libberberis_guest_loader_defaults. |
| filegroup { |
| name: "_libberberis_guest_loader_srcs", |
| srcs: [ |
| "app_process.cc", |
| "guest_loader.cc", |
| "linker_callbacks.cc", |
| "linker_debug.cc", |
| ], |
| } |
| |
| filegroup { |
| name: "_libberberis_guest_loader_tests_srcs", |
| srcs: ["guest_loader_test.cc"], |
| } |
| |
| cc_defaults { |
| name: "libberberis_guest_loader_defaults", |
| host_supported: true, |
| srcs: [":_libberberis_guest_loader_srcs"], |
| header_libs: [ |
| "_libberberis_guest_loader_private_headers", |
| "//frameworks/libs/native_bridge_support:native_bridge_guest_linker_headers", |
| "libberberis_base_headers", |
| "libberberis_guest_abi_headers", |
| "libberberis_guest_loader_headers", |
| "libberberis_guest_os_primitives_headers", |
| "libberberis_guest_state_headers", |
| "libberberis_instrument_headers", |
| "libberberis_kernel_api_headers", |
| "libberberis_proxy_loader_headers", |
| "libberberis_runtime_primitives_headers", |
| "libberberis_tinyloader_headers", |
| ], |
| export_header_lib_headers: ["libberberis_guest_loader_headers"], |
| include_dirs: [ |
| "bionic/libc", // private/CFIShadow.h |
| ], |
| } |
| |
| cc_library_static { |
| name: "libberberis_guest_loader_riscv64", |
| defaults: [ |
| "berberis_defaults_64", |
| "libberberis_guest_loader_defaults", |
| ], |
| srcs: [ |
| "riscv64/guest_loader_arch.cc", |
| "riscv64/linker_callbacks_arch.cc", |
| ], |
| header_libs: [ |
| "libberberis_guest_abi_riscv64_headers", |
| ], |
| } |
| |
| cc_defaults { |
| name: "libberberis_guest_loader_tests_defaults", |
| host_supported: false, |
| header_libs: [ |
| "libberberis_runtime_headers", |
| ], |
| srcs: [":_libberberis_guest_loader_tests_srcs"], |
| static_libs: [ |
| "libbase", |
| ], |
| shared_libs: [ |
| "liblog", |
| ], |
| |
| } |
| |
| cc_test { |
| name: "berberis_guest_loader_riscv64_tests", |
| defaults: [ |
| "berberis_defaults_64", |
| "libberberis_guest_loader_tests_defaults", |
| ], |
| static_libs: [ |
| "libberberis_guest_loader_riscv64", |
| "libberberis_runtime_riscv64_to_x86_64", |
| ], |
| shared_libs: [ |
| "libberberis_riscv64", |
| ], |
| } |