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