1// Copyright (C) 2023 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16package { 17 default_applicable_licenses: ["Android-Apache-2.0"], 18} 19 20cc_library_static { 21 name: "libberberis_program_runner", 22 defaults: ["berberis_defaults"], 23 host_supported: true, 24 srcs: ["program_runner.cc"], 25 export_include_dirs: ["include"], 26 header_libs: [ 27 "libberberis_base_headers", 28 "libberberis_guest_loader_headers", 29 "libberberis_guest_state_headers", 30 "libberberis_runtime_headers", 31 ], 32} 33 34cc_defaults { 35 name: "berberis_program_runner_defaults", 36 defaults: ["berberis_defaults_64"], 37 host_supported: true, 38 static_libs: [ 39 "libberberis_base", 40 "libberberis_program_runner", 41 ], 42 shared_libs: [ 43 "libbase", 44 "libberberis_riscv64", 45 "liblog", 46 ], 47} 48 49cc_defaults { 50 name: "berberis_program_runner_arm64_defaults", 51 defaults: ["berberis_all_hosts_defaults_64"], 52 host_supported: true, 53 header_libs: [ 54 "libberberis_base_headers", 55 "libberberis_guest_state_headers", 56 ], 57 static_libs: [ 58 "libberberis_base", 59 "libberberis_guest_state_riscv64", 60 "libberberis_interpreter_riscv64", 61 "libberberis_kernel_api_riscv64", 62 "libberberis_tinyloader", 63 "libberberis_intrinsics_riscv64", 64 ], 65 shared_libs: [ 66 "libbase", 67 "liblog", 68 ], 69 arch: { 70 x86_64: { 71 enabled: false, 72 }, 73 }, 74} 75 76filegroup { 77 name: "berberis_binfmt_misc_srcs", 78 srcs: ["main_binfmt_misc.cc"], 79} 80 81filegroup { 82 name: "berberis_program_runner_main_srcs", 83 srcs: ["main.cc"], 84} 85 86cc_binary { 87 name: "berberis_program_runner_binfmt_misc_riscv64", 88 defaults: ["berberis_program_runner_defaults"], 89 srcs: [":berberis_binfmt_misc_srcs"], 90} 91 92cc_binary { 93 name: "berberis_program_runner_riscv64", 94 defaults: ["berberis_program_runner_defaults"], 95 srcs: [":berberis_program_runner_main_srcs"], 96} 97 98cc_binary { 99 name: "berberis_program_runner_riscv64_to_arm64", 100 defaults: ["berberis_program_runner_arm64_defaults"], 101 srcs: [":berberis_program_runner_main_srcs"], 102} 103