| // | |
| // 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: [ | |
| "-D_GNU_SOURCE", | |
| // 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-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", | |
| ], | |
| } | |
| genrule { | |
| name: "generated_static_table_fourcc_h", | |
| out: ["generated_static_table_fourcc.h"], | |
| srcs: ["include/drm/drm_fourcc.h"], | |
| tool_files: ["gen_table_fourcc.py"], | |
| cmd: "python3 $(location gen_table_fourcc.py) $(in) $(out)", | |
| } | |
| // Library for the device | |
| cc_library { | |
| name: "libdrm", | |
| recovery_available: true, | |
| host_supported: true, | |
| vendor_available: true, | |
| product_available: true, | |
| min_sdk_version: "apex_inherit", | |
| apex_available: [ | |
| "//apex_available:platform", | |
| "//apex_available:anyapex", | |
| ], | |
| defaults: [ | |
| "libdrm_defaults", | |
| "libdrm_sources", | |
| ], | |
| generated_headers: [ | |
| "generated_static_table_fourcc_h", | |
| ], | |
| 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, | |
| min_sdk_version: "34", | |
| apex_available: [ | |
| "//apex_available:anyapex", | |
| "//apex_available:platform", | |
| ], | |
| visibility: [ | |
| "//external/rust/android-crates-io/crates/drm-ffi", | |
| ], | |
| } |