// Copyright (C) 2023 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package { default_applicable_licenses: [ "frameworks_native_libs_nativewindow_license", ], default_team: "trendy_team_android_core_graphics_stack", } rust_bindgen { name: "libnativewindow_bindgen_internal", crate_name: "nativewindow_bindgen", wrapper_src: "sys/nativewindow_bindings.h", source_stem: "bindings", bindgen_flags: [ "--constified-enum-module=AHardwareBuffer_Format", "--bitfield-enum=ADataSpace", "--bitfield-enum=AHardwareBuffer_UsageFlags", "--allowlist-file=.*/nativewindow/include/.*\\.h", "--allowlist-file=.*/include/cutils/.*\\.h", "--allowlist-file=.*/include_outside_system/cutils/.*\\.h", "--blocklist-type", "AParcel", "--raw-line", "use binder::unstable_api::AParcel;", "--with-derive-eq", "--with-derive-partialeq", ], shared_libs: [ "libbinder_ndk", "libcutils", "libnativewindow", ], rustlibs: [ "libbinder_rs", ], // Currently necessary for host builds // TODO(b/31559095): bionic on host should define this target: { darwin: { enabled: false, }, }, min_sdk_version: "VanillaIceCream", vendor_available: true, apex_available: [ "//apex_available:platform", "com.android.virt", ], } rust_library { name: "libnativewindow_bindgen", crate_name: "nativewindow_bindgen", srcs: [":libnativewindow_bindgen_internal"], shared_libs: [ "libbinder_ndk", "libcutils", "libnativewindow", ], rustlibs: [ "libbinder_rs", ], lints: "none", clippy_lints: "none", // Currently necessary for host builds // TODO(b/31559095): bionic on host should define this target: { darwin: { enabled: false, }, }, min_sdk_version: "VanillaIceCream", vendor_available: true, apex_available: [ "//apex_available:platform", "com.android.virt", ], } rust_test { name: "libnativewindow_bindgen_test", srcs: [":libnativewindow_bindgen_internal"], crate_name: "nativewindow_bindgen_test", rustlibs: [ "libbinder_rs", ], test_suites: ["general-tests"], auto_gen_config: true, clippy_lints: "none", lints: "none", } rust_defaults { name: "libnativewindow_defaults", srcs: ["src/lib.rs"], rustlibs: [ "android.hardware.common-V2-rust", "libbinder_rs", "libbitflags", "libnativewindow_bindgen", ], } rust_library { name: "libnativewindow_rs", crate_name: "nativewindow", defaults: ["libnativewindow_defaults"], // Currently necessary for host builds // TODO(b/31559095): bionic on host should define this target: { darwin: { enabled: false, }, }, min_sdk_version: "VanillaIceCream", vendor_available: true, apex_available: [ "//apex_available:platform", "com.android.virt", ], } rust_test { name: "libnativewindow_rs-internal_test", crate_name: "nativewindow", defaults: ["libnativewindow_defaults"], test_suites: ["general-tests"], }