xref: /aosp_15_r20/external/stg/Android.bp (revision 9e3b08ae94a55201065475453d799e8b1378bea6)
1*9e3b08aeSAndroid Build Coastguard Worker// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2*9e3b08aeSAndroid Build Coastguard Worker//
3*9e3b08aeSAndroid Build Coastguard Worker// Copyright 2021 Google LLC
4*9e3b08aeSAndroid Build Coastguard Worker//
5*9e3b08aeSAndroid Build Coastguard Worker// Licensed under the Apache License v2.0 with LLVM Exceptions (the
6*9e3b08aeSAndroid Build Coastguard Worker// "License"); you may not use this file except in compliance with the
7*9e3b08aeSAndroid Build Coastguard Worker// License.  You may obtain a copy of the License at
8*9e3b08aeSAndroid Build Coastguard Worker//
9*9e3b08aeSAndroid Build Coastguard Worker//     https://llvm.org/LICENSE.txt
10*9e3b08aeSAndroid Build Coastguard Worker//
11*9e3b08aeSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
12*9e3b08aeSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
13*9e3b08aeSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*9e3b08aeSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
15*9e3b08aeSAndroid Build Coastguard Worker// limitations under the License.
16*9e3b08aeSAndroid Build Coastguard Worker//
17*9e3b08aeSAndroid Build Coastguard Worker// Author: Giuliano Procida
18*9e3b08aeSAndroid Build Coastguard Worker
19*9e3b08aeSAndroid Build Coastguard Workerpackage {
20*9e3b08aeSAndroid Build Coastguard Worker    default_applicable_licenses: ["llvm_license"],
21*9e3b08aeSAndroid Build Coastguard Worker}
22*9e3b08aeSAndroid Build Coastguard Worker
23*9e3b08aeSAndroid Build Coastguard Worker// http://go/android-license-faq
24*9e3b08aeSAndroid Build Coastguard Workerlicense {
25*9e3b08aeSAndroid Build Coastguard Worker    name: "llvm_license",
26*9e3b08aeSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
27*9e3b08aeSAndroid Build Coastguard Worker    license_kinds: [
28*9e3b08aeSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
29*9e3b08aeSAndroid Build Coastguard Worker    ],
30*9e3b08aeSAndroid Build Coastguard Worker    license_text: [
31*9e3b08aeSAndroid Build Coastguard Worker        "LICENSE",
32*9e3b08aeSAndroid Build Coastguard Worker    ],
33*9e3b08aeSAndroid Build Coastguard Worker}
34*9e3b08aeSAndroid Build Coastguard Worker
35*9e3b08aeSAndroid Build Coastguard Workercc_defaults {
36*9e3b08aeSAndroid Build Coastguard Worker    name: "defaults",
37*9e3b08aeSAndroid Build Coastguard Worker    defaults: ["elfutils_transitive_defaults"],
38*9e3b08aeSAndroid Build Coastguard Worker    visibility: [
39*9e3b08aeSAndroid Build Coastguard Worker        "//visibility:private",
40*9e3b08aeSAndroid Build Coastguard Worker    ],
41*9e3b08aeSAndroid Build Coastguard Worker    cpp_std: "c++20",
42*9e3b08aeSAndroid Build Coastguard Worker    cflags: [
43*9e3b08aeSAndroid Build Coastguard Worker        "-DUSE_ANDROID_BUILD_NUMBER",
44*9e3b08aeSAndroid Build Coastguard Worker        "-fexceptions",
45*9e3b08aeSAndroid Build Coastguard Worker        "-Wno-error=unused-parameter",
46*9e3b08aeSAndroid Build Coastguard Worker    ],
47*9e3b08aeSAndroid Build Coastguard Worker    static_libs: [
48*9e3b08aeSAndroid Build Coastguard Worker        "libbpf",
49*9e3b08aeSAndroid Build Coastguard Worker        "libbuildversion",
50*9e3b08aeSAndroid Build Coastguard Worker        "libdw",
51*9e3b08aeSAndroid Build Coastguard Worker        "libelf",
52*9e3b08aeSAndroid Build Coastguard Worker        "libicuuc",
53*9e3b08aeSAndroid Build Coastguard Worker        "libicuuc_stubdata",
54*9e3b08aeSAndroid Build Coastguard Worker        "libjemalloc5",
55*9e3b08aeSAndroid Build Coastguard Worker        "libprotobuf-cpp-full",
56*9e3b08aeSAndroid Build Coastguard Worker        "libxml2",
57*9e3b08aeSAndroid Build Coastguard Worker    ],
58*9e3b08aeSAndroid Build Coastguard Worker    compile_multilib: "64",
59*9e3b08aeSAndroid Build Coastguard Worker    target: {
60*9e3b08aeSAndroid Build Coastguard Worker        darwin: {
61*9e3b08aeSAndroid Build Coastguard Worker            enabled: false,
62*9e3b08aeSAndroid Build Coastguard Worker        },
63*9e3b08aeSAndroid Build Coastguard Worker    },
64*9e3b08aeSAndroid Build Coastguard Worker    // TODO(b/324274771): figure out a better solution
65*9e3b08aeSAndroid Build Coastguard Worker    native_coverage: false,
66*9e3b08aeSAndroid Build Coastguard Worker}
67*9e3b08aeSAndroid Build Coastguard Worker
68*9e3b08aeSAndroid Build Coastguard Workercc_library_host_static {
69*9e3b08aeSAndroid Build Coastguard Worker    name: "libstg",
70*9e3b08aeSAndroid Build Coastguard Worker    defaults: ["defaults"],
71*9e3b08aeSAndroid Build Coastguard Worker    srcs: [
72*9e3b08aeSAndroid Build Coastguard Worker        "abigail_reader.cc",
73*9e3b08aeSAndroid Build Coastguard Worker        "btf_reader.cc",
74*9e3b08aeSAndroid Build Coastguard Worker        "comparison.cc",
75*9e3b08aeSAndroid Build Coastguard Worker        "deduplication.cc",
76*9e3b08aeSAndroid Build Coastguard Worker        "dwarf_processor.cc",
77*9e3b08aeSAndroid Build Coastguard Worker        "dwarf_wrappers.cc",
78*9e3b08aeSAndroid Build Coastguard Worker        "elf_dwarf_handle.cc",
79*9e3b08aeSAndroid Build Coastguard Worker        "elf_loader.cc",
80*9e3b08aeSAndroid Build Coastguard Worker        "elf_reader.cc",
81*9e3b08aeSAndroid Build Coastguard Worker        "fidelity.cc",
82*9e3b08aeSAndroid Build Coastguard Worker        "file_descriptor.cc",
83*9e3b08aeSAndroid Build Coastguard Worker        "filter.cc",
84*9e3b08aeSAndroid Build Coastguard Worker        "fingerprint.cc",
85*9e3b08aeSAndroid Build Coastguard Worker        "graph.cc",
86*9e3b08aeSAndroid Build Coastguard Worker        "input.cc",
87*9e3b08aeSAndroid Build Coastguard Worker        "naming.cc",
88*9e3b08aeSAndroid Build Coastguard Worker        "post_processing.cc",
89*9e3b08aeSAndroid Build Coastguard Worker        "proto_reader.cc",
90*9e3b08aeSAndroid Build Coastguard Worker        "proto_writer.cc",
91*9e3b08aeSAndroid Build Coastguard Worker        "reporting.cc",
92*9e3b08aeSAndroid Build Coastguard Worker        "runtime.cc",
93*9e3b08aeSAndroid Build Coastguard Worker        "stable_hash.cc",
94*9e3b08aeSAndroid Build Coastguard Worker        "stg.proto",
95*9e3b08aeSAndroid Build Coastguard Worker        "type_normalisation.cc",
96*9e3b08aeSAndroid Build Coastguard Worker        "type_resolution.cc",
97*9e3b08aeSAndroid Build Coastguard Worker        "unification.cc",
98*9e3b08aeSAndroid Build Coastguard Worker    ],
99*9e3b08aeSAndroid Build Coastguard Worker    proto: {
100*9e3b08aeSAndroid Build Coastguard Worker        export_proto_headers: true,
101*9e3b08aeSAndroid Build Coastguard Worker    },
102*9e3b08aeSAndroid Build Coastguard Worker
103*9e3b08aeSAndroid Build Coastguard Worker}
104*9e3b08aeSAndroid Build Coastguard Worker
105*9e3b08aeSAndroid Build Coastguard Workercc_binary_host {
106*9e3b08aeSAndroid Build Coastguard Worker    name: "stg",
107*9e3b08aeSAndroid Build Coastguard Worker    defaults: ["defaults"],
108*9e3b08aeSAndroid Build Coastguard Worker    srcs: [
109*9e3b08aeSAndroid Build Coastguard Worker        "stg.cc",
110*9e3b08aeSAndroid Build Coastguard Worker    ],
111*9e3b08aeSAndroid Build Coastguard Worker    static_libs: ["libstg"],
112*9e3b08aeSAndroid Build Coastguard Worker}
113*9e3b08aeSAndroid Build Coastguard Worker
114*9e3b08aeSAndroid Build Coastguard Workercc_binary_host {
115*9e3b08aeSAndroid Build Coastguard Worker    name: "stgdiff",
116*9e3b08aeSAndroid Build Coastguard Worker    defaults: ["defaults"],
117*9e3b08aeSAndroid Build Coastguard Worker    srcs: [
118*9e3b08aeSAndroid Build Coastguard Worker        "stgdiff.cc",
119*9e3b08aeSAndroid Build Coastguard Worker    ],
120*9e3b08aeSAndroid Build Coastguard Worker    static_libs: ["libstg"],
121*9e3b08aeSAndroid Build Coastguard Worker}
122