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