xref: /aosp_15_r20/external/libdrm/Android.bp (revision 7688df22e49036ff52a766b7101da3a49edadb8c)
1*7688df22SAndroid Build Coastguard Worker//
2*7688df22SAndroid Build Coastguard Worker// Copyright © 2011-2012 Intel Corporation
3*7688df22SAndroid Build Coastguard Worker//
4*7688df22SAndroid Build Coastguard Worker// Permission is hereby granted, free of charge, to any person obtaining a
5*7688df22SAndroid Build Coastguard Worker// copy of this software and associated documentation files (the "Software"),
6*7688df22SAndroid Build Coastguard Worker// to deal in the Software without restriction, including without limitation
7*7688df22SAndroid Build Coastguard Worker// the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*7688df22SAndroid Build Coastguard Worker// and/or sell copies of the Software, and to permit persons to whom the
9*7688df22SAndroid Build Coastguard Worker// Software is furnished to do so, subject to the following conditions:
10*7688df22SAndroid Build Coastguard Worker//
11*7688df22SAndroid Build Coastguard Worker// The above copyright notice and this permission notice (including the next
12*7688df22SAndroid Build Coastguard Worker// paragraph) shall be included in all copies or substantial portions of the
13*7688df22SAndroid Build Coastguard Worker// Software.
14*7688df22SAndroid Build Coastguard Worker//
15*7688df22SAndroid Build Coastguard Worker// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16*7688df22SAndroid Build Coastguard Worker// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17*7688df22SAndroid Build Coastguard Worker// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18*7688df22SAndroid Build Coastguard Worker// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19*7688df22SAndroid Build Coastguard Worker// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20*7688df22SAndroid Build Coastguard Worker// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21*7688df22SAndroid Build Coastguard Worker// IN THE SOFTWARE.
22*7688df22SAndroid Build Coastguard Worker//
23*7688df22SAndroid Build Coastguard Worker
24*7688df22SAndroid Build Coastguard Workerpackage {
25*7688df22SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_libdrm_license"],
26*7688df22SAndroid Build Coastguard Worker}
27*7688df22SAndroid Build Coastguard Worker
28*7688df22SAndroid Build Coastguard Workerlicense {
29*7688df22SAndroid Build Coastguard Worker    name: "external_libdrm_license",
30*7688df22SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
31*7688df22SAndroid Build Coastguard Worker    license_kinds: [
32*7688df22SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
33*7688df22SAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
34*7688df22SAndroid Build Coastguard Worker        "legacy_unencumbered",
35*7688df22SAndroid Build Coastguard Worker    ],
36*7688df22SAndroid Build Coastguard Worker    license_text: ["LICENSE"],
37*7688df22SAndroid Build Coastguard Worker}
38*7688df22SAndroid Build Coastguard Worker
39*7688df22SAndroid Build Coastguard Workersubdirs = ["*"]
40*7688df22SAndroid Build Coastguard Workerbuild = ["Android.sources.bp"]
41*7688df22SAndroid Build Coastguard Worker
42*7688df22SAndroid Build Coastguard Workercc_defaults {
43*7688df22SAndroid Build Coastguard Worker    name: "libdrm_defaults",
44*7688df22SAndroid Build Coastguard Worker    cflags: [
45*7688df22SAndroid Build Coastguard Worker        "-D_GNU_SOURCE",
46*7688df22SAndroid Build Coastguard Worker
47*7688df22SAndroid Build Coastguard Worker        // XXX: Consider moving these to config.h analogous to autoconf.
48*7688df22SAndroid Build Coastguard Worker        "-DMAJOR_IN_SYSMACROS=1",
49*7688df22SAndroid Build Coastguard Worker        "-DHAVE_VISIBILITY=1",
50*7688df22SAndroid Build Coastguard Worker        "-DHAVE_LIBDRM_ATOMIC_PRIMITIVES=1",
51*7688df22SAndroid Build Coastguard Worker
52*7688df22SAndroid Build Coastguard Worker        "-Wall",
53*7688df22SAndroid Build Coastguard Worker        "-Werror",
54*7688df22SAndroid Build Coastguard Worker        "-Wno-deprecated-declarations",
55*7688df22SAndroid Build Coastguard Worker        "-Wno-format",
56*7688df22SAndroid Build Coastguard Worker        "-Wno-gnu-variable-sized-type-not-at-end",
57*7688df22SAndroid Build Coastguard Worker        "-Wno-int-conversion",
58*7688df22SAndroid Build Coastguard Worker        "-Wno-missing-field-initializers",
59*7688df22SAndroid Build Coastguard Worker        "-Wno-pointer-arith",
60*7688df22SAndroid Build Coastguard Worker        "-Wno-unused-parameter",
61*7688df22SAndroid Build Coastguard Worker        "-Wno-unused-variable",
62*7688df22SAndroid Build Coastguard Worker    ],
63*7688df22SAndroid Build Coastguard Worker    export_system_include_dirs: ["."],
64*7688df22SAndroid Build Coastguard Worker}
65*7688df22SAndroid Build Coastguard Worker
66*7688df22SAndroid Build Coastguard Workercc_library_headers {
67*7688df22SAndroid Build Coastguard Worker    name: "libdrm_headers",
68*7688df22SAndroid Build Coastguard Worker    vendor_available: true,
69*7688df22SAndroid Build Coastguard Worker    host_supported: true,
70*7688df22SAndroid Build Coastguard Worker    defaults: ["libdrm_defaults"],
71*7688df22SAndroid Build Coastguard Worker    export_include_dirs: [
72*7688df22SAndroid Build Coastguard Worker        "include/drm",
73*7688df22SAndroid Build Coastguard Worker        "android",
74*7688df22SAndroid Build Coastguard Worker    ],
75*7688df22SAndroid Build Coastguard Worker    apex_available: [
76*7688df22SAndroid Build Coastguard Worker        "//apex_available:platform",
77*7688df22SAndroid Build Coastguard Worker        "com.android.virt",
78*7688df22SAndroid Build Coastguard Worker    ],
79*7688df22SAndroid Build Coastguard Worker}
80*7688df22SAndroid Build Coastguard Worker
81*7688df22SAndroid Build Coastguard Workergenrule {
82*7688df22SAndroid Build Coastguard Worker    name: "generated_static_table_fourcc_h",
83*7688df22SAndroid Build Coastguard Worker    out: ["generated_static_table_fourcc.h"],
84*7688df22SAndroid Build Coastguard Worker    srcs: ["include/drm/drm_fourcc.h"],
85*7688df22SAndroid Build Coastguard Worker    tool_files: ["gen_table_fourcc.py"],
86*7688df22SAndroid Build Coastguard Worker    cmd: "python3 $(location gen_table_fourcc.py) $(in) $(out)",
87*7688df22SAndroid Build Coastguard Worker}
88*7688df22SAndroid Build Coastguard Worker
89*7688df22SAndroid Build Coastguard Worker// Library for the device
90*7688df22SAndroid Build Coastguard Workercc_library {
91*7688df22SAndroid Build Coastguard Worker    name: "libdrm",
92*7688df22SAndroid Build Coastguard Worker    recovery_available: true,
93*7688df22SAndroid Build Coastguard Worker    host_supported: true,
94*7688df22SAndroid Build Coastguard Worker    vendor_available: true,
95*7688df22SAndroid Build Coastguard Worker    product_available: true,
96*7688df22SAndroid Build Coastguard Worker    apex_available: [
97*7688df22SAndroid Build Coastguard Worker        "//apex_available:platform",
98*7688df22SAndroid Build Coastguard Worker        "//apex_available:anyapex",
99*7688df22SAndroid Build Coastguard Worker    ],
100*7688df22SAndroid Build Coastguard Worker    defaults: [
101*7688df22SAndroid Build Coastguard Worker        "libdrm_defaults",
102*7688df22SAndroid Build Coastguard Worker        "libdrm_sources",
103*7688df22SAndroid Build Coastguard Worker    ],
104*7688df22SAndroid Build Coastguard Worker
105*7688df22SAndroid Build Coastguard Worker    generated_headers: [
106*7688df22SAndroid Build Coastguard Worker        "generated_static_table_fourcc_h",
107*7688df22SAndroid Build Coastguard Worker    ],
108*7688df22SAndroid Build Coastguard Worker
109*7688df22SAndroid Build Coastguard Worker    export_include_dirs: ["include/drm", "android"],
110*7688df22SAndroid Build Coastguard Worker
111*7688df22SAndroid Build Coastguard Worker    cflags: [
112*7688df22SAndroid Build Coastguard Worker        "-Wno-enum-conversion",
113*7688df22SAndroid Build Coastguard Worker        "-Wno-pointer-arith",
114*7688df22SAndroid Build Coastguard Worker        "-Wno-sign-compare",
115*7688df22SAndroid Build Coastguard Worker        "-Wno-tautological-compare",
116*7688df22SAndroid Build Coastguard Worker    ],
117*7688df22SAndroid Build Coastguard Worker}
118*7688df22SAndroid Build Coastguard Worker
119*7688df22SAndroid Build Coastguard Worker// Rust bindings for libdrm, generated in a way compatible with drm-ffi crate.
120*7688df22SAndroid Build Coastguard Workerrust_bindgen {
121*7688df22SAndroid Build Coastguard Worker    name: "libdrm_sys",
122*7688df22SAndroid Build Coastguard Worker    crate_name: "drm_sys",
123*7688df22SAndroid Build Coastguard Worker    wrapper_src: "rust/drm_wrapper.h",
124*7688df22SAndroid Build Coastguard Worker    source_stem: "bindings",
125*7688df22SAndroid Build Coastguard Worker    bindgen_flags: [
126*7688df22SAndroid Build Coastguard Worker        "--ctypes-prefix=core::ffi",
127*7688df22SAndroid Build Coastguard Worker        "--no-prepend-enum-name",
128*7688df22SAndroid Build Coastguard Worker        "--with-derive-default",
129*7688df22SAndroid Build Coastguard Worker        "--with-derive-hash",
130*7688df22SAndroid Build Coastguard Worker        "--with-derive-eq",
131*7688df22SAndroid Build Coastguard Worker        "--blocklist-type=drm_handle_t",
132*7688df22SAndroid Build Coastguard Worker        "--blocklist-type=__BINDGEN_TMP_.*",
133*7688df22SAndroid Build Coastguard Worker        "--blocklist-type=drm_control_DRM_ADD_COMMAND",
134*7688df22SAndroid Build Coastguard Worker        "--allowlist-type=_?DRM_.*|drm_.*|hdr_.*",
135*7688df22SAndroid Build Coastguard Worker        "--allowlist-var=_?DRM_.*|drm_.*",
136*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_control_.*",
137*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_buf_desc_.*",
138*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_map_type",
139*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_map_flags",
140*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_stat_type",
141*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_lock_flags",
142*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_dma_flags",
143*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_ctx_flags",
144*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_drawable_info_type_t",
145*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_vblank_seq_type",
146*7688df22SAndroid Build Coastguard Worker        "--constified-enum-module=drm_mode_subconnector",
147*7688df22SAndroid Build Coastguard Worker    ],
148*7688df22SAndroid Build Coastguard Worker    shared_libs: [
149*7688df22SAndroid Build Coastguard Worker        "libdrm",
150*7688df22SAndroid Build Coastguard Worker        "libcutils",
151*7688df22SAndroid Build Coastguard Worker        "liblog",
152*7688df22SAndroid Build Coastguard Worker    ],
153*7688df22SAndroid Build Coastguard Worker    host_supported: true,
154*7688df22SAndroid Build Coastguard Worker    vendor_available: true,
155*7688df22SAndroid Build Coastguard Worker    product_available: true,
156*7688df22SAndroid Build Coastguard Worker    apex_available: [
157*7688df22SAndroid Build Coastguard Worker        "//apex_available:anyapex",
158*7688df22SAndroid Build Coastguard Worker        "//apex_available:platform",
159*7688df22SAndroid Build Coastguard Worker    ],
160*7688df22SAndroid Build Coastguard Worker    visibility: [
161*7688df22SAndroid Build Coastguard Worker        "//external/rust/android-crates-io/crates/drm-ffi",
162*7688df22SAndroid Build Coastguard Worker    ],
163*7688df22SAndroid Build Coastguard Worker}
164