1/* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package { 18 default_applicable_licenses: ["Android-Apache-2.0"], 19} 20 21python_binary_host { 22 name: "berberis_gen_jni_trampolines", 23 main: "gen_jni_trampolines.py", 24 srcs: ["gen_jni_trampolines.py"], 25} 26 27genrule { 28 name: "libberberis_jni_gen_headers", 29 out: ["jni_trampolines-inl.h"], 30 srcs: ["api.json"], 31 tools: ["berberis_gen_jni_trampolines"], 32 cmd: "$(location berberis_gen_jni_trampolines) $(out) $(in)", 33} 34 35cc_library_headers { 36 name: "libberberis_jni_headers", 37 defaults: ["berberis_defaults"], 38 host_supported: true, 39 export_include_dirs: ["include"], 40} 41 42// filegroups ensure valid file paths for modules depending on 43// libberberis_jni_defaults. 44filegroup { 45 name: "_libberberis_jni_srcs", 46 srcs: [ 47 "guest_jni_trampolines.cc", 48 "jni_trampolines.cc", 49 ], 50} 51 52// Shared source files for compiling guest-specific static libs. 53// See libberberis_jni_riscv64 below. 54cc_defaults { 55 name: "libberberis_jni_defaults", 56 host_supported: false, 57 srcs: [":_libberberis_jni_srcs"], 58 generated_headers: ["libberberis_jni_gen_headers"], 59 header_libs: [ 60 "jni_headers", 61 "libberberis_base_headers", 62 "libberberis_guest_abi_headers", 63 "libberberis_guest_loader_headers", 64 "libberberis_jni_headers", 65 "libberberis_native_bridge_headers", 66 "libberberis_guest_state_headers", 67 "libberberis_runtime_primitives_headers", 68 ], 69 export_header_lib_headers: [ 70 "libberberis_guest_abi_headers", 71 "libberberis_guest_state_headers", 72 "libberberis_jni_headers", 73 "libberberis_runtime_primitives_headers", 74 ], 75} 76 77cc_library_static { 78 name: "libberberis_jni_riscv64", 79 defaults: [ 80 "berberis_defaults_64", 81 "libberberis_jni_defaults", 82 ], 83 header_libs: [ 84 "libberberis_guest_abi_riscv64_headers", 85 ], 86 export_header_lib_headers: [ 87 "libberberis_guest_abi_riscv64_headers", 88 ], 89} 90