xref: /aosp_15_r20/external/crosvm/gpu_display/Android.bp (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker// This file is generated by cargo_embargo.
2*bb4ee6a4SAndroid Build Coastguard Worker// Do not modify this file after the first "rust_*" or "genrule" module
3*bb4ee6a4SAndroid Build Coastguard Worker// because the changes will be overridden on upgrade.
4*bb4ee6a4SAndroid Build Coastguard Worker// Content before the first "rust_*" or "genrule" module is preserved.
5*bb4ee6a4SAndroid Build Coastguard Worker
6*bb4ee6a4SAndroid Build Coastguard Worker// cargo2android.py limitations:
7*bb4ee6a4SAndroid Build Coastguard Worker//   does not handle "-l dylib=wayland-client" yet
8*bb4ee6a4SAndroid Build Coastguard Worker//   does not generate cc_library module yet
9*bb4ee6a4SAndroid Build Coastguard Worker//   does not generate wayland_protocol_codegen module yet
10*bb4ee6a4SAndroid Build Coastguard Worker
11*bb4ee6a4SAndroid Build Coastguard Workerpackage {
12*bb4ee6a4SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
13*bb4ee6a4SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
14*bb4ee6a4SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "external_crosvm_license"
15*bb4ee6a4SAndroid Build Coastguard Worker    // to get the below license kinds:
16*bb4ee6a4SAndroid Build Coastguard Worker    //   SPDX-license-identifier-BSD
17*bb4ee6a4SAndroid Build Coastguard Worker    //   SPDX-license-identifier-MIT
18*bb4ee6a4SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_crosvm_license"],
19*bb4ee6a4SAndroid Build Coastguard Worker}
20*bb4ee6a4SAndroid Build Coastguard Worker
21*bb4ee6a4SAndroid Build Coastguard Workerrust_library {
22*bb4ee6a4SAndroid Build Coastguard Worker    name: "libgpu_display",
23*bb4ee6a4SAndroid Build Coastguard Worker    defaults: ["crosvm_inner_defaults"],
24*bb4ee6a4SAndroid Build Coastguard Worker    host_supported: true,
25*bb4ee6a4SAndroid Build Coastguard Worker    crate_name: "gpu_display",
26*bb4ee6a4SAndroid Build Coastguard Worker    cargo_env_compat: true,
27*bb4ee6a4SAndroid Build Coastguard Worker    cargo_pkg_version: "0.1.0",
28*bb4ee6a4SAndroid Build Coastguard Worker    crate_root: "src/lib.rs",
29*bb4ee6a4SAndroid Build Coastguard Worker    edition: "2021",
30*bb4ee6a4SAndroid Build Coastguard Worker    features: [
31*bb4ee6a4SAndroid Build Coastguard Worker        "android_display",
32*bb4ee6a4SAndroid Build Coastguard Worker        "gfxstream",
33*bb4ee6a4SAndroid Build Coastguard Worker    ],
34*bb4ee6a4SAndroid Build Coastguard Worker    rustlibs: [
35*bb4ee6a4SAndroid Build Coastguard Worker        "libanyhow",
36*bb4ee6a4SAndroid Build Coastguard Worker        "libbase_rust",
37*bb4ee6a4SAndroid Build Coastguard Worker        "libcfg_if",
38*bb4ee6a4SAndroid Build Coastguard Worker        "liblibc",
39*bb4ee6a4SAndroid Build Coastguard Worker        "liblinux_input_sys",
40*bb4ee6a4SAndroid Build Coastguard Worker        "libserde",
41*bb4ee6a4SAndroid Build Coastguard Worker        "libsync_rust",
42*bb4ee6a4SAndroid Build Coastguard Worker        "libthiserror",
43*bb4ee6a4SAndroid Build Coastguard Worker        "libvm_control",
44*bb4ee6a4SAndroid Build Coastguard Worker        "libzerocopy",
45*bb4ee6a4SAndroid Build Coastguard Worker    ],
46*bb4ee6a4SAndroid Build Coastguard Worker    proc_macros: ["libremain"],
47*bb4ee6a4SAndroid Build Coastguard Worker    static_libs: ["libdisplay_wl"],
48*bb4ee6a4SAndroid Build Coastguard Worker
49*bb4ee6a4SAndroid Build Coastguard Worker    // added manually
50*bb4ee6a4SAndroid Build Coastguard Worker    target: {
51*bb4ee6a4SAndroid Build Coastguard Worker        host: {
52*bb4ee6a4SAndroid Build Coastguard Worker            shared_libs: ["libwayland_client"],
53*bb4ee6a4SAndroid Build Coastguard Worker            features: ["android_display_stub"],
54*bb4ee6a4SAndroid Build Coastguard Worker        },
55*bb4ee6a4SAndroid Build Coastguard Worker        android: {
56*bb4ee6a4SAndroid Build Coastguard Worker            static_libs: [
57*bb4ee6a4SAndroid Build Coastguard Worker                "libwayland_client_static",
58*bb4ee6a4SAndroid Build Coastguard Worker                "libffi",
59*bb4ee6a4SAndroid Build Coastguard Worker                "libcrosvm_android_display_client",
60*bb4ee6a4SAndroid Build Coastguard Worker            ],
61*bb4ee6a4SAndroid Build Coastguard Worker            shared_libs: [
62*bb4ee6a4SAndroid Build Coastguard Worker                "libc++",
63*bb4ee6a4SAndroid Build Coastguard Worker                "libbinder_ndk",
64*bb4ee6a4SAndroid Build Coastguard Worker                "libnativewindow",
65*bb4ee6a4SAndroid Build Coastguard Worker            ],
66*bb4ee6a4SAndroid Build Coastguard Worker        },
67*bb4ee6a4SAndroid Build Coastguard Worker    },
68*bb4ee6a4SAndroid Build Coastguard Worker}
69*bb4ee6a4SAndroid Build Coastguard Worker
70*bb4ee6a4SAndroid Build Coastguard Workercc_library_static {
71*bb4ee6a4SAndroid Build Coastguard Worker    name: "libdisplay_wl",
72*bb4ee6a4SAndroid Build Coastguard Worker    host_supported: true,
73*bb4ee6a4SAndroid Build Coastguard Worker    c_std: "c11",
74*bb4ee6a4SAndroid Build Coastguard Worker    srcs: ["src/display_wl.c"],
75*bb4ee6a4SAndroid Build Coastguard Worker
76*bb4ee6a4SAndroid Build Coastguard Worker    generated_sources: [
77*bb4ee6a4SAndroid Build Coastguard Worker        "gpu_display_protocol_sources",
78*bb4ee6a4SAndroid Build Coastguard Worker        "wayland_extension_protocol_sources",
79*bb4ee6a4SAndroid Build Coastguard Worker    ],
80*bb4ee6a4SAndroid Build Coastguard Worker    generated_headers: [
81*bb4ee6a4SAndroid Build Coastguard Worker        "gpu_display_client_protocol_headers",
82*bb4ee6a4SAndroid Build Coastguard Worker    ],
83*bb4ee6a4SAndroid Build Coastguard Worker    export_generated_headers: [
84*bb4ee6a4SAndroid Build Coastguard Worker        "gpu_display_client_protocol_headers",
85*bb4ee6a4SAndroid Build Coastguard Worker    ],
86*bb4ee6a4SAndroid Build Coastguard Worker
87*bb4ee6a4SAndroid Build Coastguard Worker    // added manually
88*bb4ee6a4SAndroid Build Coastguard Worker    target: {
89*bb4ee6a4SAndroid Build Coastguard Worker        host: {
90*bb4ee6a4SAndroid Build Coastguard Worker            shared_libs: ["libwayland_client"],
91*bb4ee6a4SAndroid Build Coastguard Worker        },
92*bb4ee6a4SAndroid Build Coastguard Worker        android: {
93*bb4ee6a4SAndroid Build Coastguard Worker            static_libs: [
94*bb4ee6a4SAndroid Build Coastguard Worker                "libwayland_client_static",
95*bb4ee6a4SAndroid Build Coastguard Worker                "libffi",
96*bb4ee6a4SAndroid Build Coastguard Worker            ],
97*bb4ee6a4SAndroid Build Coastguard Worker        },
98*bb4ee6a4SAndroid Build Coastguard Worker    },
99*bb4ee6a4SAndroid Build Coastguard Worker    apex_available: [
100*bb4ee6a4SAndroid Build Coastguard Worker        "com.android.virt",
101*bb4ee6a4SAndroid Build Coastguard Worker    ],
102*bb4ee6a4SAndroid Build Coastguard Worker}
103*bb4ee6a4SAndroid Build Coastguard Worker
104*bb4ee6a4SAndroid Build Coastguard Worker// We could use the modules provided in //external/wayland-protocols, except
105*bb4ee6a4SAndroid Build Coastguard Worker//
106*bb4ee6a4SAndroid Build Coastguard Worker//  1. virtio-gpu-metadata-v1.xml is missing
107*bb4ee6a4SAndroid Build Coastguard Worker//  2. crosvm expects a different header suffix
108*bb4ee6a4SAndroid Build Coastguard Worker
109*bb4ee6a4SAndroid Build Coastguard Workerwayland_protocol_codegen {
110*bb4ee6a4SAndroid Build Coastguard Worker    name: "gpu_display_protocol_sources",
111*bb4ee6a4SAndroid Build Coastguard Worker    cmd: "$(location wayland_scanner) private-code < $(in) > $(out)",
112*bb4ee6a4SAndroid Build Coastguard Worker    suffix: ".c",
113*bb4ee6a4SAndroid Build Coastguard Worker    srcs: [
114*bb4ee6a4SAndroid Build Coastguard Worker        ":wayland_extension_protocols",
115*bb4ee6a4SAndroid Build Coastguard Worker        "protocol/virtio-gpu-metadata-v1.xml",
116*bb4ee6a4SAndroid Build Coastguard Worker    ],
117*bb4ee6a4SAndroid Build Coastguard Worker    tools: ["wayland_scanner"],
118*bb4ee6a4SAndroid Build Coastguard Worker}
119*bb4ee6a4SAndroid Build Coastguard Worker
120*bb4ee6a4SAndroid Build Coastguard Workerwayland_protocol_codegen {
121*bb4ee6a4SAndroid Build Coastguard Worker    name: "gpu_display_client_protocol_headers",
122*bb4ee6a4SAndroid Build Coastguard Worker    cmd: "$(location wayland_scanner) client-header < $(in) > $(out)",
123*bb4ee6a4SAndroid Build Coastguard Worker    suffix: ".h",
124*bb4ee6a4SAndroid Build Coastguard Worker    srcs: [
125*bb4ee6a4SAndroid Build Coastguard Worker        ":wayland_extension_protocols",
126*bb4ee6a4SAndroid Build Coastguard Worker        "protocol/virtio-gpu-metadata-v1.xml",
127*bb4ee6a4SAndroid Build Coastguard Worker    ],
128*bb4ee6a4SAndroid Build Coastguard Worker    tools: ["wayland_scanner"],
129*bb4ee6a4SAndroid Build Coastguard Worker}
130*bb4ee6a4SAndroid Build Coastguard Worker
131*bb4ee6a4SAndroid Build Coastguard Workerwayland_protocol_codegen {
132*bb4ee6a4SAndroid Build Coastguard Worker    name: "gpu_display_server_protocol_headers",
133*bb4ee6a4SAndroid Build Coastguard Worker    cmd: "$(location wayland_scanner) server-header < $(in) > $(out)",
134*bb4ee6a4SAndroid Build Coastguard Worker    suffix: ".h",
135*bb4ee6a4SAndroid Build Coastguard Worker    srcs: [
136*bb4ee6a4SAndroid Build Coastguard Worker        ":wayland_extension_protocols",
137*bb4ee6a4SAndroid Build Coastguard Worker        "protocol/virtio-gpu-metadata-v1.xml",
138*bb4ee6a4SAndroid Build Coastguard Worker    ],
139*bb4ee6a4SAndroid Build Coastguard Worker    tools: ["wayland_scanner"],
140*bb4ee6a4SAndroid Build Coastguard Worker}
141*bb4ee6a4SAndroid Build Coastguard Worker
142*bb4ee6a4SAndroid Build Coastguard Workercc_library_static {
143*bb4ee6a4SAndroid Build Coastguard Worker    name: "libwayland_crosvm_gpu_display_extension_server_protocols",
144*bb4ee6a4SAndroid Build Coastguard Worker    vendor_available: true,
145*bb4ee6a4SAndroid Build Coastguard Worker    host_supported: true,
146*bb4ee6a4SAndroid Build Coastguard Worker    cflags: [
147*bb4ee6a4SAndroid Build Coastguard Worker        "-Wall",
148*bb4ee6a4SAndroid Build Coastguard Worker        "-Wextra",
149*bb4ee6a4SAndroid Build Coastguard Worker        "-Werror",
150*bb4ee6a4SAndroid Build Coastguard Worker        "-g",
151*bb4ee6a4SAndroid Build Coastguard Worker        "-fvisibility=hidden",
152*bb4ee6a4SAndroid Build Coastguard Worker    ],
153*bb4ee6a4SAndroid Build Coastguard Worker    static_libs: ["libwayland_server"],
154*bb4ee6a4SAndroid Build Coastguard Worker    generated_sources: ["gpu_display_protocol_sources"],
155*bb4ee6a4SAndroid Build Coastguard Worker    generated_headers: ["gpu_display_server_protocol_headers"],
156*bb4ee6a4SAndroid Build Coastguard Worker    export_generated_headers: ["gpu_display_server_protocol_headers"],
157*bb4ee6a4SAndroid Build Coastguard Worker}
158