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_headers {
21    name: "libberberis_runtime_headers",
22    defaults: ["berberis_all_hosts_defaults"],
23    host_supported: true,
24    export_include_dirs: ["include"],
25}
26
27filegroup {
28    name: "berberis_runtime_library_arm64_srcs",
29    srcs: [
30        "runtime_library_arm64.cc",
31    ],
32}
33
34filegroup {
35    name: "berberis_runtime_library_x86_64_srcs",
36    srcs: [
37        "runtime_library_x86_64.cc",
38    ],
39}
40
41filegroup {
42    name: "berberis_runtime_library_riscv64_srcs",
43    srcs: [
44        "runtime_library_riscv64.cc",
45    ],
46}
47
48cc_defaults {
49    name: "berberis_runtime_library_defaults",
50    arch: {
51        arm64: {
52            srcs: [":berberis_runtime_library_arm64_srcs"],
53        },
54        x86_64: {
55            srcs: [":berberis_runtime_library_x86_64_srcs"],
56        },
57        riscv64: {
58            srcs: [":berberis_runtime_library_riscv64_srcs"],
59        },
60    },
61    header_libs: [
62        "libberberis_base_headers",
63        "libberberis_runtime_primitives_headers",
64    ],
65    // Targets using these defaults must provide the following guest-specific fields:
66    // header_libs: ["libberberis_guest_state_<guest>_headers"],
67    // export_header_lib_headers: ["libberberis_guest_state_<guest>_headers"],
68}
69
70cc_library_static {
71    name: "libberberis_runtime",
72    defaults: ["berberis_all_hosts_defaults"],
73    host_supported: true,
74    header_libs: [
75        "libberberis_base_headers",
76        "libberberis_guest_state_headers",
77        "libberberis_guest_os_primitives_headers",
78        "libberberis_runtime_headers",
79        "libberberis_runtime_primitives_headers",
80    ],
81    export_header_lib_headers: [
82        "libberberis_runtime_headers",
83    ],
84    srcs: [
85        "berberis.cc",
86        "execute_guest.cc",
87        "execute_guest_call.cc",
88        "runtime_library.cc",
89        "translator.cc",
90    ],
91}
92