// // Copyright © 2011-2012 Intel Corporation // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice (including the next // paragraph) shall be included in all copies or substantial portions of the // Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE. // package { default_applicable_licenses: ["external_libdrm_license"], } license { name: "external_libdrm_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-BSD", "SPDX-license-identifier-MIT", "legacy_unencumbered", ], license_text: ["LICENSE"], } subdirs = ["*"] build = ["Android.sources.bp"] cc_defaults { name: "libdrm_defaults", cflags: [ // XXX: Consider moving these to config.h analogous to autoconf. "-DMAJOR_IN_SYSMACROS=1", "-DHAVE_VISIBILITY=1", "-DHAVE_LIBDRM_ATOMIC_PRIMITIVES=1", "-Wall", "-Werror", "-Wno-deprecated-declarations", "-Wno-format", "-Wno-gnu-variable-sized-type-not-at-end", "-Wno-implicit-function-declaration", "-Wno-int-conversion", "-Wno-missing-field-initializers", "-Wno-pointer-arith", "-Wno-unused-parameter", "-Wno-unused-variable", ], export_system_include_dirs: ["."], } cc_library_headers { name: "libdrm_headers", vendor_available: true, host_supported: true, defaults: ["libdrm_defaults"], export_include_dirs: [ "include/drm", "android", ], apex_available: [ "//apex_available:platform", "com.android.virt", ], } // Library for the device cc_library { name: "libdrm", recovery_available: true, host_supported: true, vendor_available: true, product_available: true, apex_available: [ "//apex_available:platform", "//apex_available:anyapex", ], defaults: [ "libdrm_defaults", "libdrm_sources", ], export_include_dirs: [ "include/drm", "android", ], cflags: [ "-Wno-enum-conversion", "-Wno-pointer-arith", "-Wno-sign-compare", "-Wno-tautological-compare", ], } // Rust bindings for libdrm, generated in a way compatible with drm-ffi crate. rust_bindgen { name: "libdrm_sys", crate_name: "drm_sys", wrapper_src: "rust/drm_wrapper.h", source_stem: "bindings", bindgen_flags: [ "--ctypes-prefix=core::ffi", "--no-prepend-enum-name", "--with-derive-default", "--with-derive-hash", "--with-derive-eq", "--blocklist-type=drm_handle_t", "--blocklist-type=__BINDGEN_TMP_.*", "--blocklist-type=drm_control_DRM_ADD_COMMAND", "--allowlist-type=_?DRM_.*|drm_.*|hdr_.*", "--allowlist-var=_?DRM_.*|drm_.*", "--constified-enum-module=drm_control_.*", "--constified-enum-module=drm_buf_desc_.*", "--constified-enum-module=drm_map_type", "--constified-enum-module=drm_map_flags", "--constified-enum-module=drm_stat_type", "--constified-enum-module=drm_lock_flags", "--constified-enum-module=drm_dma_flags", "--constified-enum-module=drm_ctx_flags", "--constified-enum-module=drm_drawable_info_type_t", "--constified-enum-module=drm_vblank_seq_type", "--constified-enum-module=drm_mode_subconnector", ], shared_libs: [ "libdrm", "libcutils", "liblog", ], host_supported: true, vendor_available: true, product_available: true, apex_available: [ "//apex_available:anyapex", "//apex_available:platform", ], visibility: [ "//external/rust/crates/drm-ffi", ], }