1*be431cd8SAndroid Build Coastguard Worker// Copyright (C) 2016 The Android Open Source Project 2*be431cd8SAndroid Build Coastguard Worker// 3*be431cd8SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*be431cd8SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*be431cd8SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*be431cd8SAndroid Build Coastguard Worker// 7*be431cd8SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*be431cd8SAndroid Build Coastguard Worker// 9*be431cd8SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*be431cd8SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*be431cd8SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*be431cd8SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*be431cd8SAndroid Build Coastguard Worker// limitations under the License. 14*be431cd8SAndroid Build Coastguard Worker 15*be431cd8SAndroid Build Coastguard Workerpackage { 16*be431cd8SAndroid Build Coastguard Worker default_applicable_licenses: ["Android-Apache-2.0"], 17*be431cd8SAndroid Build Coastguard Worker} 18*be431cd8SAndroid Build Coastguard Worker 19*be431cd8SAndroid Build Coastguard Workercc_library { 20*be431cd8SAndroid Build Coastguard Worker name: "libfmq", 21*be431cd8SAndroid Build Coastguard Worker shared_libs: [ 22*be431cd8SAndroid Build Coastguard Worker "libbase", 23*be431cd8SAndroid Build Coastguard Worker "liblog", 24*be431cd8SAndroid Build Coastguard Worker "libcutils", 25*be431cd8SAndroid Build Coastguard Worker "libutils", 26*be431cd8SAndroid Build Coastguard Worker ], 27*be431cd8SAndroid Build Coastguard Worker export_shared_lib_headers: [ 28*be431cd8SAndroid Build Coastguard Worker "libcutils", 29*be431cd8SAndroid Build Coastguard Worker "libutils", 30*be431cd8SAndroid Build Coastguard Worker ], 31*be431cd8SAndroid Build Coastguard Worker apex_available: [ 32*be431cd8SAndroid Build Coastguard Worker "//apex_available:platform", 33*be431cd8SAndroid Build Coastguard Worker "//apex_available:anyapex", 34*be431cd8SAndroid Build Coastguard Worker ], 35*be431cd8SAndroid Build Coastguard Worker export_include_dirs: ["include"], 36*be431cd8SAndroid Build Coastguard Worker local_include_dirs: ["include"], 37*be431cd8SAndroid Build Coastguard Worker header_libs: [ 38*be431cd8SAndroid Build Coastguard Worker "libfmq-base", 39*be431cd8SAndroid Build Coastguard Worker ], 40*be431cd8SAndroid Build Coastguard Worker export_header_lib_headers: [ 41*be431cd8SAndroid Build Coastguard Worker "libfmq-base", 42*be431cd8SAndroid Build Coastguard Worker ], 43*be431cd8SAndroid Build Coastguard Worker srcs: [ 44*be431cd8SAndroid Build Coastguard Worker "EventFlag.cpp", 45*be431cd8SAndroid Build Coastguard Worker "FmqInternal.cpp", 46*be431cd8SAndroid Build Coastguard Worker ], 47*be431cd8SAndroid Build Coastguard Worker cflags: [ 48*be431cd8SAndroid Build Coastguard Worker "-Wall", 49*be431cd8SAndroid Build Coastguard Worker "-Werror", 50*be431cd8SAndroid Build Coastguard Worker ], 51*be431cd8SAndroid Build Coastguard Worker vendor_available: true, 52*be431cd8SAndroid Build Coastguard Worker product_available: true, 53*be431cd8SAndroid Build Coastguard Worker // TODO(b/153609531): remove when no longer needed. 54*be431cd8SAndroid Build Coastguard Worker native_bridge_supported: true, 55*be431cd8SAndroid Build Coastguard Worker double_loadable: true, 56*be431cd8SAndroid Build Coastguard Worker min_sdk_version: "29", 57*be431cd8SAndroid Build Coastguard Worker host_supported: true, 58*be431cd8SAndroid Build Coastguard Worker} 59*be431cd8SAndroid Build Coastguard Worker 60*be431cd8SAndroid Build Coastguard Worker// Header only lib to share type between HIDL and AIDL MQDescriptor 61*be431cd8SAndroid Build Coastguard Workercc_library_headers { 62*be431cd8SAndroid Build Coastguard Worker name: "libfmq-base", 63*be431cd8SAndroid Build Coastguard Worker host_supported: true, 64*be431cd8SAndroid Build Coastguard Worker vendor_available: true, 65*be431cd8SAndroid Build Coastguard Worker product_available: true, 66*be431cd8SAndroid Build Coastguard Worker native_bridge_supported: true, 67*be431cd8SAndroid Build Coastguard Worker recovery_available: true, 68*be431cd8SAndroid Build Coastguard Worker apex_available: [ 69*be431cd8SAndroid Build Coastguard Worker "//apex_available:anyapex", 70*be431cd8SAndroid Build Coastguard Worker "//apex_available:platform", 71*be431cd8SAndroid Build Coastguard Worker ], 72*be431cd8SAndroid Build Coastguard Worker export_include_dirs: ["base"], 73*be431cd8SAndroid Build Coastguard Worker min_sdk_version: "29", 74*be431cd8SAndroid Build Coastguard Worker} 75*be431cd8SAndroid Build Coastguard Worker 76*be431cd8SAndroid Build Coastguard Workercc_library { 77*be431cd8SAndroid Build Coastguard Worker name: "libfmq_erased", 78*be431cd8SAndroid Build Coastguard Worker shared_libs: [ 79*be431cd8SAndroid Build Coastguard Worker "libbase", 80*be431cd8SAndroid Build Coastguard Worker "liblog", 81*be431cd8SAndroid Build Coastguard Worker "libcutils", 82*be431cd8SAndroid Build Coastguard Worker "libfmq", 83*be431cd8SAndroid Build Coastguard Worker "android.hardware.common.fmq-V1-ndk", 84*be431cd8SAndroid Build Coastguard Worker ], 85*be431cd8SAndroid Build Coastguard Worker srcs: [ 86*be431cd8SAndroid Build Coastguard Worker "ErasedMessageQueue.cpp", 87*be431cd8SAndroid Build Coastguard Worker ], 88*be431cd8SAndroid Build Coastguard Worker cflags: [ 89*be431cd8SAndroid Build Coastguard Worker "-Wall", 90*be431cd8SAndroid Build Coastguard Worker "-Werror", 91*be431cd8SAndroid Build Coastguard Worker ], 92*be431cd8SAndroid Build Coastguard Worker vendor_available: true, 93*be431cd8SAndroid Build Coastguard Worker product_available: true, 94*be431cd8SAndroid Build Coastguard Worker min_sdk_version: "29", 95*be431cd8SAndroid Build Coastguard Worker host_supported: true, 96*be431cd8SAndroid Build Coastguard Worker} 97*be431cd8SAndroid Build Coastguard Worker 98*be431cd8SAndroid Build Coastguard Workerrust_bindgen { 99*be431cd8SAndroid Build Coastguard Worker name: "libfmq_bindgen", 100*be431cd8SAndroid Build Coastguard Worker wrapper_src: "ErasedMessageQueue.hpp", 101*be431cd8SAndroid Build Coastguard Worker crate_name: "fmq_bindgen", 102*be431cd8SAndroid Build Coastguard Worker edition: "2021", 103*be431cd8SAndroid Build Coastguard Worker host_supported: true, 104*be431cd8SAndroid Build Coastguard Worker vendor_available: true, 105*be431cd8SAndroid Build Coastguard Worker product_available: true, 106*be431cd8SAndroid Build Coastguard Worker visibility: [":__subpackages__"], 107*be431cd8SAndroid Build Coastguard Worker source_stem: "fmq", 108*be431cd8SAndroid Build Coastguard Worker bindgen_flags: [ 109*be431cd8SAndroid Build Coastguard Worker "--no-recursive-allowlist", 110*be431cd8SAndroid Build Coastguard Worker "--use-core", 111*be431cd8SAndroid Build Coastguard Worker "--ctypes-prefix=core::ffi", 112*be431cd8SAndroid Build Coastguard Worker "--raw-line=#![no_std]", 113*be431cd8SAndroid Build Coastguard Worker "--raw-line=pub use android_hardware_common_fmq::aidl::android::hardware::common::fmq::{MQDescriptor::MQDescriptor, UnsynchronizedWrite::UnsynchronizedWrite, SynchronizedReadWrite::SynchronizedReadWrite, GrantorDescriptor::GrantorDescriptor};", 114*be431cd8SAndroid Build Coastguard Worker "--raw-line=pub use android_hardware_common::{aidl::android::hardware::common::NativeHandle::NativeHandle, binder::ParcelFileDescriptor};", 115*be431cd8SAndroid Build Coastguard Worker "--raw-line=pub enum android_MQErased {}", 116*be431cd8SAndroid Build Coastguard Worker "--raw-line=#[repr(C)]", 117*be431cd8SAndroid Build Coastguard Worker "--raw-line=pub struct aidl_android_hardware_common_fmq_GrantorDescriptor {", 118*be431cd8SAndroid Build Coastguard Worker "--raw-line= pub fdIndex: i32,", 119*be431cd8SAndroid Build Coastguard Worker "--raw-line= pub offset: i32,", 120*be431cd8SAndroid Build Coastguard Worker "--raw-line= pub extent: i64,", 121*be431cd8SAndroid Build Coastguard Worker "--raw-line=}", 122*be431cd8SAndroid Build Coastguard Worker "--opaque-type=ErasedMessageQueueDesc", 123*be431cd8SAndroid Build Coastguard Worker "--opaque-type=.*AidlMessageQueue", 124*be431cd8SAndroid Build Coastguard Worker "--with-derive-default", 125*be431cd8SAndroid Build Coastguard Worker "--no-default=MessageQueueDesc", 126*be431cd8SAndroid Build Coastguard Worker "--no-default=ErasedMessageQueue", 127*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=convertGrantor", 128*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=convertDesc", 129*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=freeDesc", 130*be431cd8SAndroid Build Coastguard Worker "--allowlist-type=ndk::ScopedFileDescriptor", 131*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descGrantors", 132*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descNumGrantors", 133*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descHandleFDs", 134*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descHandleNumFDs", 135*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descHandleInts", 136*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descHandleNumInts", 137*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descQuantum", 138*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=descFlags", 139*be431cd8SAndroid Build Coastguard Worker "--allowlist-type=\\bErasedMessageQueue", 140*be431cd8SAndroid Build Coastguard Worker "--allowlist-type=\\bErasedMessageQueueDesc", 141*be431cd8SAndroid Build Coastguard Worker "--allowlist-type=\\bMemTransaction", 142*be431cd8SAndroid Build Coastguard Worker "--allowlist-type=.*MemTransaction.*MemRegion.*", 143*be431cd8SAndroid Build Coastguard Worker "--blocklist-type=std::.+", 144*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=.*ErasedMessageQueue.*", 145*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=.*beginWrite", 146*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=.*beginRead", 147*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=.*commitWrite", 148*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=.*commitRead", 149*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=getAddress", 150*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=getLength.*", 151*be431cd8SAndroid Build Coastguard Worker "--allowlist-function=get(First|Second)Region", 152*be431cd8SAndroid Build Coastguard Worker ], 153*be431cd8SAndroid Build Coastguard Worker rustlibs: [ 154*be431cd8SAndroid Build Coastguard Worker "android.hardware.common.fmq-V1-rust", 155*be431cd8SAndroid Build Coastguard Worker "android.hardware.common-V2-rust", 156*be431cd8SAndroid Build Coastguard Worker ], 157*be431cd8SAndroid Build Coastguard Worker static_libs: [ 158*be431cd8SAndroid Build Coastguard Worker "libfmq", 159*be431cd8SAndroid Build Coastguard Worker ], 160*be431cd8SAndroid Build Coastguard Worker whole_static_libs: [ 161*be431cd8SAndroid Build Coastguard Worker "libfmq_erased", 162*be431cd8SAndroid Build Coastguard Worker ], 163*be431cd8SAndroid Build Coastguard Worker shared_libs: [ 164*be431cd8SAndroid Build Coastguard Worker "libc++", 165*be431cd8SAndroid Build Coastguard Worker "liblog", 166*be431cd8SAndroid Build Coastguard Worker "android.hardware.common.fmq-V1-ndk", 167*be431cd8SAndroid Build Coastguard Worker ], 168*be431cd8SAndroid Build Coastguard Worker apex_available: [ 169*be431cd8SAndroid Build Coastguard Worker ], 170*be431cd8SAndroid Build Coastguard Worker} 171*be431cd8SAndroid Build Coastguard Worker 172*be431cd8SAndroid Build Coastguard Workerrust_test { 173*be431cd8SAndroid Build Coastguard Worker host_supported: true, 174*be431cd8SAndroid Build Coastguard Worker name: "libfmq_bindgen_test", 175*be431cd8SAndroid Build Coastguard Worker srcs: [":libfmq_bindgen"], 176*be431cd8SAndroid Build Coastguard Worker crate_name: "fmq_bindgen_test", 177*be431cd8SAndroid Build Coastguard Worker test_suites: ["general-tests"], 178*be431cd8SAndroid Build Coastguard Worker auto_gen_config: true, 179*be431cd8SAndroid Build Coastguard Worker clippy_lints: "none", 180*be431cd8SAndroid Build Coastguard Worker lints: "none", 181*be431cd8SAndroid Build Coastguard Worker rustlibs: [ 182*be431cd8SAndroid Build Coastguard Worker "android.hardware.common.fmq-V1-rust", 183*be431cd8SAndroid Build Coastguard Worker "android.hardware.common-V2-rust", 184*be431cd8SAndroid Build Coastguard Worker ], 185*be431cd8SAndroid Build Coastguard Worker} 186*be431cd8SAndroid Build Coastguard Worker 187*be431cd8SAndroid Build Coastguard Workerrust_defaults { 188*be431cd8SAndroid Build Coastguard Worker name: "libfmq_rust_defaults", 189*be431cd8SAndroid Build Coastguard Worker host_supported: true, 190*be431cd8SAndroid Build Coastguard Worker vendor_available: true, 191*be431cd8SAndroid Build Coastguard Worker product_available: true, 192*be431cd8SAndroid Build Coastguard Worker visibility: [ 193*be431cd8SAndroid Build Coastguard Worker ":__subpackages__", 194*be431cd8SAndroid Build Coastguard Worker "//system/software_defined_vehicle/core_services/sdv_comms:__subpackages__", 195*be431cd8SAndroid Build Coastguard Worker ], 196*be431cd8SAndroid Build Coastguard Worker crate_name: "fmq", 197*be431cd8SAndroid Build Coastguard Worker srcs: ["libfmq.rs"], 198*be431cd8SAndroid Build Coastguard Worker edition: "2021", 199*be431cd8SAndroid Build Coastguard Worker rustlibs: [ 200*be431cd8SAndroid Build Coastguard Worker "libfmq_bindgen", 201*be431cd8SAndroid Build Coastguard Worker "liblog_rust", 202*be431cd8SAndroid Build Coastguard Worker "libzerocopy", 203*be431cd8SAndroid Build Coastguard Worker ], 204*be431cd8SAndroid Build Coastguard Worker proc_macros: [], 205*be431cd8SAndroid Build Coastguard Worker} 206*be431cd8SAndroid Build Coastguard Worker 207*be431cd8SAndroid Build Coastguard Workerrust_library { 208*be431cd8SAndroid Build Coastguard Worker name: "libfmq_rust", 209*be431cd8SAndroid Build Coastguard Worker defaults: ["libfmq_rust_defaults"], 210*be431cd8SAndroid Build Coastguard Worker} 211*be431cd8SAndroid Build Coastguard Worker 212*be431cd8SAndroid Build Coastguard Workerrust_test { 213*be431cd8SAndroid Build Coastguard Worker name: "libfmq_rust_unit_test", 214*be431cd8SAndroid Build Coastguard Worker defaults: ["libfmq_rust_defaults"], 215*be431cd8SAndroid Build Coastguard Worker test_options: { 216*be431cd8SAndroid Build Coastguard Worker unit_test: true, 217*be431cd8SAndroid Build Coastguard Worker }, 218*be431cd8SAndroid Build Coastguard Worker} 219