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_code_gen_lib_headers", 22 defaults: ["berberis_all_hosts_defaults"], 23 host_supported: true, 24 export_include_dirs: ["include"], 25 header_libs: [ 26 "libberberis_assembler_headers", 27 "libberberis_guest_state_headers", 28 "libberberis_runtime_primitives_headers", 29 ], 30 export_header_lib_headers: [ 31 "libberberis_assembler_headers", 32 "libberberis_guest_state_headers", 33 "libberberis_runtime_primitives_headers", 34 ], 35} 36 37filegroup { 38 name: "berberis_code_gen_lib_riscv64_to_x86_64_files", 39 srcs: ["riscv64_to_x86_64/gen_wrapper.cc"], 40} 41 42filegroup { 43 name: "berberis_code_gen_lib_all_to_x86_32_files", 44 srcs: ["all_to_x86_32/code_gen_lib.cc"], 45} 46 47filegroup { 48 name: "berberis_code_gen_lib_arm_to_x86_32_files", 49 srcs: ["arm_to_x86_32/gen_wrapper.cc"], 50} 51 52filegroup { 53 name: "berberis_code_gen_lib_all_to_x86_64_files", 54 srcs: ["all_to_x86_64/code_gen_lib.cc"], 55} 56 57filegroup { 58 name: "berberis_code_gen_lib_arm64_to_x86_64_files", 59 srcs: ["arm64_to_x86_64/gen_wrapper.cc"], 60} 61 62filegroup { 63 name: "berberis_code_gen_lib_all_to_riscv64_files", 64 srcs: [ 65 "all_to_riscv64/code_gen_lib.cc", 66 "all_to_riscv64/gen_wrapper.cc", 67 ], 68} 69 70cc_defaults { 71 name: "berberis_code_gen_lib_defaults", 72 defaults: ["berberis_guest_agnostic_defaults"], 73 host_supported: true, 74 arch: { 75 x86: { 76 srcs: [":berberis_code_gen_lib_all_to_x86_32_files"], 77 }, 78 x86_64: { 79 srcs: [":berberis_code_gen_lib_all_to_x86_64_files"], 80 }, 81 riscv64: { 82 srcs: [":berberis_code_gen_lib_all_to_riscv64_files"], 83 }, 84 }, 85 header_libs: [ 86 "libberberis_assembler_headers", 87 "libberberis_base_headers", 88 "libberberis_calling_conventions_headers", 89 "libberberis_code_gen_lib_headers", 90 "libberberis_kernel_api_headers", 91 "libberberis_instrument_headers", 92 ], 93 export_header_lib_headers: [ 94 "libberberis_assembler_headers", 95 "libberberis_code_gen_lib_headers", 96 ], 97} 98 99cc_library_static { 100 name: "libberberis_code_gen_lib_riscv64", 101 defaults: [ 102 "berberis_defaults_64", 103 "berberis_code_gen_lib_defaults", 104 ], 105 host_supported: true, 106 arch: { 107 x86_64: { 108 header_libs: ["berberis_code_gen_lib_riscv64_to_all_headers"], 109 srcs: [":berberis_code_gen_lib_riscv64_to_x86_64_files"], 110 }, 111 }, 112 header_libs: [ 113 "libberberis_guest_abi_riscv64_headers", 114 "libberberis_guest_state_headers", 115 "libberberis_macro_assembler_headers_riscv64_to_x86_64", 116 "libberberis_runtime_primitives_headers", 117 ], 118 export_header_lib_headers: [ 119 "libberberis_assembler_headers", 120 "libberberis_code_gen_lib_headers", 121 "libberberis_macro_assembler_headers_riscv64_to_x86_64", 122 ], 123} 124 125cc_test_library { 126 name: "libberberis_code_gen_lib_riscv64_unit_tests", 127 defaults: ["berberis_test_library_defaults_64"], 128 host_supported: true, 129 srcs: ["code_gen_lib_riscv64_test.cc"], 130 static_libs: ["libberberis_code_gen_lib_riscv64"], 131 header_libs: [ 132 "libberberis_base_headers", 133 "libberberis_guest_abi_riscv64_headers", 134 "libberberis_guest_state_headers", 135 "libberberis_runtime_primitives_headers", 136 "berberis_test_utils_headers", 137 ], 138 shared: { 139 enabled: false, 140 }, 141} 142