1*38e8c45fSAndroid Build Coastguard Worker/* 2*38e8c45fSAndroid Build Coastguard Worker * Copyright (C) 2018 The Android Open Source Project 3*38e8c45fSAndroid Build Coastguard Worker * 4*38e8c45fSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*38e8c45fSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*38e8c45fSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*38e8c45fSAndroid Build Coastguard Worker * 8*38e8c45fSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*38e8c45fSAndroid Build Coastguard Worker * 10*38e8c45fSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*38e8c45fSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*38e8c45fSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*38e8c45fSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*38e8c45fSAndroid Build Coastguard Worker * limitations under the License. 15*38e8c45fSAndroid Build Coastguard Worker */ 16*38e8c45fSAndroid Build Coastguard Worker 17*38e8c45fSAndroid Build Coastguard Worker// TODO(b/31559095): bionic on host should define this 18*38e8c45fSAndroid Build Coastguard Workerpackage { 19*38e8c45fSAndroid Build Coastguard Worker default_applicable_licenses: ["frameworks_native_libs_binder_ndk_license"], 20*38e8c45fSAndroid Build Coastguard Worker} 21*38e8c45fSAndroid Build Coastguard Worker 22*38e8c45fSAndroid Build Coastguard Worker// Added automatically by a large-scale-change 23*38e8c45fSAndroid Build Coastguard Worker// See: http://go/android-license-faq 24*38e8c45fSAndroid Build Coastguard Workerlicense { 25*38e8c45fSAndroid Build Coastguard Worker name: "frameworks_native_libs_binder_ndk_license", 26*38e8c45fSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 27*38e8c45fSAndroid Build Coastguard Worker license_kinds: [ 28*38e8c45fSAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 29*38e8c45fSAndroid Build Coastguard Worker ], 30*38e8c45fSAndroid Build Coastguard Worker license_text: [ 31*38e8c45fSAndroid Build Coastguard Worker "NOTICE", 32*38e8c45fSAndroid Build Coastguard Worker ], 33*38e8c45fSAndroid Build Coastguard Worker} 34*38e8c45fSAndroid Build Coastguard Worker 35*38e8c45fSAndroid Build Coastguard Workercc_defaults { 36*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_ndk_common_defaults", 37*38e8c45fSAndroid Build Coastguard Worker host_supported: true, 38*38e8c45fSAndroid Build Coastguard Worker recovery_available: true, 39*38e8c45fSAndroid Build Coastguard Worker 40*38e8c45fSAndroid Build Coastguard Worker export_include_dirs: [ 41*38e8c45fSAndroid Build Coastguard Worker "include_cpp", 42*38e8c45fSAndroid Build Coastguard Worker "include_ndk", 43*38e8c45fSAndroid Build Coastguard Worker "include_platform", 44*38e8c45fSAndroid Build Coastguard Worker ], 45*38e8c45fSAndroid Build Coastguard Worker 46*38e8c45fSAndroid Build Coastguard Worker cflags: [ 47*38e8c45fSAndroid Build Coastguard Worker "-Wall", 48*38e8c45fSAndroid Build Coastguard Worker "-Wextra", 49*38e8c45fSAndroid Build Coastguard Worker "-Wextra-semi", 50*38e8c45fSAndroid Build Coastguard Worker "-Werror", 51*38e8c45fSAndroid Build Coastguard Worker ], 52*38e8c45fSAndroid Build Coastguard Worker 53*38e8c45fSAndroid Build Coastguard Worker srcs: [ 54*38e8c45fSAndroid Build Coastguard Worker "ibinder.cpp", 55*38e8c45fSAndroid Build Coastguard Worker "libbinder.cpp", 56*38e8c45fSAndroid Build Coastguard Worker "parcel.cpp", 57*38e8c45fSAndroid Build Coastguard Worker "stability.cpp", 58*38e8c45fSAndroid Build Coastguard Worker "status.cpp", 59*38e8c45fSAndroid Build Coastguard Worker ], 60*38e8c45fSAndroid Build Coastguard Worker} 61*38e8c45fSAndroid Build Coastguard Worker 62*38e8c45fSAndroid Build Coastguard Workercc_library_host_shared { 63*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_ndk_sdk", 64*38e8c45fSAndroid Build Coastguard Worker 65*38e8c45fSAndroid Build Coastguard Worker defaults: [ 66*38e8c45fSAndroid Build Coastguard Worker "libbinder_ndk_common_defaults", 67*38e8c45fSAndroid Build Coastguard Worker "binder_sdk_defaults", 68*38e8c45fSAndroid Build Coastguard Worker ], 69*38e8c45fSAndroid Build Coastguard Worker cmake_snapshot_supported: true, 70*38e8c45fSAndroid Build Coastguard Worker 71*38e8c45fSAndroid Build Coastguard Worker shared_libs: [ 72*38e8c45fSAndroid Build Coastguard Worker "libbinder_sdk", 73*38e8c45fSAndroid Build Coastguard Worker "libutils_binder_sdk", 74*38e8c45fSAndroid Build Coastguard Worker ], 75*38e8c45fSAndroid Build Coastguard Worker} 76*38e8c45fSAndroid Build Coastguard Worker 77*38e8c45fSAndroid Build Coastguard Workercc_library { 78*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_ndk", 79*38e8c45fSAndroid Build Coastguard Worker 80*38e8c45fSAndroid Build Coastguard Worker defaults: ["libbinder_ndk_common_defaults"], 81*38e8c45fSAndroid Build Coastguard Worker cmake_snapshot_supported: false, 82*38e8c45fSAndroid Build Coastguard Worker 83*38e8c45fSAndroid Build Coastguard Worker llndk: { 84*38e8c45fSAndroid Build Coastguard Worker symbol_file: "libbinder_ndk.map.txt", 85*38e8c45fSAndroid Build Coastguard Worker }, 86*38e8c45fSAndroid Build Coastguard Worker 87*38e8c45fSAndroid Build Coastguard Worker cflags: [ 88*38e8c45fSAndroid Build Coastguard Worker "-DBINDER_WITH_KERNEL_IPC", 89*38e8c45fSAndroid Build Coastguard Worker ], 90*38e8c45fSAndroid Build Coastguard Worker 91*38e8c45fSAndroid Build Coastguard Worker srcs: [ 92*38e8c45fSAndroid Build Coastguard Worker "ibinder_jni.cpp", 93*38e8c45fSAndroid Build Coastguard Worker "parcel_jni.cpp", 94*38e8c45fSAndroid Build Coastguard Worker "persistable_bundle.cpp", 95*38e8c45fSAndroid Build Coastguard Worker "process.cpp", 96*38e8c45fSAndroid Build Coastguard Worker "service_manager.cpp", 97*38e8c45fSAndroid Build Coastguard Worker "binder_rpc.cpp", 98*38e8c45fSAndroid Build Coastguard Worker ], 99*38e8c45fSAndroid Build Coastguard Worker 100*38e8c45fSAndroid Build Coastguard Worker static_libs: [ 101*38e8c45fSAndroid Build Coastguard Worker "libandroid_runtime_lazy", 102*38e8c45fSAndroid Build Coastguard Worker "libbase", 103*38e8c45fSAndroid Build Coastguard Worker ], 104*38e8c45fSAndroid Build Coastguard Worker 105*38e8c45fSAndroid Build Coastguard Worker shared_libs: [ 106*38e8c45fSAndroid Build Coastguard Worker "libbinder", 107*38e8c45fSAndroid Build Coastguard Worker "liblog", 108*38e8c45fSAndroid Build Coastguard Worker "libutils", 109*38e8c45fSAndroid Build Coastguard Worker ], 110*38e8c45fSAndroid Build Coastguard Worker 111*38e8c45fSAndroid Build Coastguard Worker header_libs: [ 112*38e8c45fSAndroid Build Coastguard Worker "jni_headers", 113*38e8c45fSAndroid Build Coastguard Worker ], 114*38e8c45fSAndroid Build Coastguard Worker export_header_lib_headers: [ 115*38e8c45fSAndroid Build Coastguard Worker "jni_headers", 116*38e8c45fSAndroid Build Coastguard Worker ], 117*38e8c45fSAndroid Build Coastguard Worker 118*38e8c45fSAndroid Build Coastguard Worker target: { 119*38e8c45fSAndroid Build Coastguard Worker android: { 120*38e8c45fSAndroid Build Coastguard Worker // Only one copy of this library on an Android device 121*38e8c45fSAndroid Build Coastguard Worker static: { 122*38e8c45fSAndroid Build Coastguard Worker enabled: false, 123*38e8c45fSAndroid Build Coastguard Worker }, 124*38e8c45fSAndroid Build Coastguard Worker }, 125*38e8c45fSAndroid Build Coastguard Worker linux: { 126*38e8c45fSAndroid Build Coastguard Worker version_script: "libbinder_ndk.map.txt", 127*38e8c45fSAndroid Build Coastguard Worker }, 128*38e8c45fSAndroid Build Coastguard Worker darwin: { 129*38e8c45fSAndroid Build Coastguard Worker enabled: false, 130*38e8c45fSAndroid Build Coastguard Worker }, 131*38e8c45fSAndroid Build Coastguard Worker }, 132*38e8c45fSAndroid Build Coastguard Worker stubs: { 133*38e8c45fSAndroid Build Coastguard Worker symbol_file: "libbinder_ndk.map.txt", 134*38e8c45fSAndroid Build Coastguard Worker versions: [ 135*38e8c45fSAndroid Build Coastguard Worker "29", 136*38e8c45fSAndroid Build Coastguard Worker "30", 137*38e8c45fSAndroid Build Coastguard Worker ], 138*38e8c45fSAndroid Build Coastguard Worker }, 139*38e8c45fSAndroid Build Coastguard Worker sanitize: { 140*38e8c45fSAndroid Build Coastguard Worker misc_undefined: ["integer"], 141*38e8c45fSAndroid Build Coastguard Worker }, 142*38e8c45fSAndroid Build Coastguard Worker tidy: true, 143*38e8c45fSAndroid Build Coastguard Worker tidy_flags: [ 144*38e8c45fSAndroid Build Coastguard Worker // Only check our headers 145*38e8c45fSAndroid Build Coastguard Worker "--header-filter=^.*frameworks/native/libs/binder/.*.h$", 146*38e8c45fSAndroid Build Coastguard Worker ], 147*38e8c45fSAndroid Build Coastguard Worker tidy_checks_as_errors: [ 148*38e8c45fSAndroid Build Coastguard Worker // Explicitly list the checks that should not occur in this module. 149*38e8c45fSAndroid Build Coastguard Worker "abseil-*", 150*38e8c45fSAndroid Build Coastguard Worker "android-*", 151*38e8c45fSAndroid Build Coastguard Worker "bugprone-*", 152*38e8c45fSAndroid Build Coastguard Worker "-bugprone-branch-clone", // b/155034972 153*38e8c45fSAndroid Build Coastguard Worker "cert-*", 154*38e8c45fSAndroid Build Coastguard Worker "clang-analyzer-*", 155*38e8c45fSAndroid Build Coastguard Worker "-clang-analyzer-core.CallAndMessage", 156*38e8c45fSAndroid Build Coastguard Worker "-clang-analyzer-core.uninitialized.Assign", 157*38e8c45fSAndroid Build Coastguard Worker "-clang-analyzer-unix.Malloc", 158*38e8c45fSAndroid Build Coastguard Worker "-clang-analyzer-deadcode.DeadStores", 159*38e8c45fSAndroid Build Coastguard Worker "-clang-analyzer-optin.cplusplus.UninitializedObject", 160*38e8c45fSAndroid Build Coastguard Worker "google-*", 161*38e8c45fSAndroid Build Coastguard Worker "-google-readability-*", 162*38e8c45fSAndroid Build Coastguard Worker "-google-runtime-references", 163*38e8c45fSAndroid Build Coastguard Worker "misc-*", 164*38e8c45fSAndroid Build Coastguard Worker "-misc-no-recursion", 165*38e8c45fSAndroid Build Coastguard Worker "-misc-non-private-member-variables-in-classes", 166*38e8c45fSAndroid Build Coastguard Worker "-misc-redundant-expression", 167*38e8c45fSAndroid Build Coastguard Worker "-misc-unused-parameters", 168*38e8c45fSAndroid Build Coastguard Worker "-misc-unused-using-decls", 169*38e8c45fSAndroid Build Coastguard Worker "performance*", 170*38e8c45fSAndroid Build Coastguard Worker "portability*", 171*38e8c45fSAndroid Build Coastguard Worker ], 172*38e8c45fSAndroid Build Coastguard Worker afdo: true, 173*38e8c45fSAndroid Build Coastguard Worker} 174*38e8c45fSAndroid Build Coastguard Worker 175*38e8c45fSAndroid Build Coastguard Workercc_library { 176*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_ndk_on_trusty_mock", 177*38e8c45fSAndroid Build Coastguard Worker defaults: [ 178*38e8c45fSAndroid Build Coastguard Worker "trusty_mock_defaults", 179*38e8c45fSAndroid Build Coastguard Worker ], 180*38e8c45fSAndroid Build Coastguard Worker 181*38e8c45fSAndroid Build Coastguard Worker export_include_dirs: [ 182*38e8c45fSAndroid Build Coastguard Worker "include_cpp", 183*38e8c45fSAndroid Build Coastguard Worker "include_ndk", 184*38e8c45fSAndroid Build Coastguard Worker "include_platform", 185*38e8c45fSAndroid Build Coastguard Worker ], 186*38e8c45fSAndroid Build Coastguard Worker 187*38e8c45fSAndroid Build Coastguard Worker srcs: [ 188*38e8c45fSAndroid Build Coastguard Worker "ibinder.cpp", 189*38e8c45fSAndroid Build Coastguard Worker "libbinder.cpp", 190*38e8c45fSAndroid Build Coastguard Worker "parcel.cpp", 191*38e8c45fSAndroid Build Coastguard Worker "stability.cpp", 192*38e8c45fSAndroid Build Coastguard Worker "status.cpp", 193*38e8c45fSAndroid Build Coastguard Worker ], 194*38e8c45fSAndroid Build Coastguard Worker 195*38e8c45fSAndroid Build Coastguard Worker shared_libs: [ 196*38e8c45fSAndroid Build Coastguard Worker "libbinder_on_trusty_mock", 197*38e8c45fSAndroid Build Coastguard Worker ], 198*38e8c45fSAndroid Build Coastguard Worker 199*38e8c45fSAndroid Build Coastguard Worker header_libs: [ 200*38e8c45fSAndroid Build Coastguard Worker "libbinder_trusty_ndk_headers", 201*38e8c45fSAndroid Build Coastguard Worker ], 202*38e8c45fSAndroid Build Coastguard Worker export_header_lib_headers: [ 203*38e8c45fSAndroid Build Coastguard Worker "libbinder_trusty_ndk_headers", 204*38e8c45fSAndroid Build Coastguard Worker ], 205*38e8c45fSAndroid Build Coastguard Worker 206*38e8c45fSAndroid Build Coastguard Worker cflags: [ 207*38e8c45fSAndroid Build Coastguard Worker "-Wall", 208*38e8c45fSAndroid Build Coastguard Worker "-Wextra", 209*38e8c45fSAndroid Build Coastguard Worker "-Werror", 210*38e8c45fSAndroid Build Coastguard Worker ], 211*38e8c45fSAndroid Build Coastguard Worker 212*38e8c45fSAndroid Build Coastguard Worker visibility: ["//frameworks/native/libs/binder:__subpackages__"], 213*38e8c45fSAndroid Build Coastguard Worker} 214*38e8c45fSAndroid Build Coastguard Worker 215*38e8c45fSAndroid Build Coastguard Workercc_library_headers { 216*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_headers_platform_shared", 217*38e8c45fSAndroid Build Coastguard Worker export_include_dirs: ["include_cpp"], 218*38e8c45fSAndroid Build Coastguard Worker vendor_available: true, 219*38e8c45fSAndroid Build Coastguard Worker recovery_available: true, 220*38e8c45fSAndroid Build Coastguard Worker host_supported: true, 221*38e8c45fSAndroid Build Coastguard Worker // TODO(b/153609531): remove when no longer needed. 222*38e8c45fSAndroid Build Coastguard Worker native_bridge_supported: true, 223*38e8c45fSAndroid Build Coastguard Worker cmake_snapshot_supported: true, 224*38e8c45fSAndroid Build Coastguard Worker target: { 225*38e8c45fSAndroid Build Coastguard Worker darwin: { 226*38e8c45fSAndroid Build Coastguard Worker enabled: false, 227*38e8c45fSAndroid Build Coastguard Worker }, 228*38e8c45fSAndroid Build Coastguard Worker }, 229*38e8c45fSAndroid Build Coastguard Worker apex_available: [ 230*38e8c45fSAndroid Build Coastguard Worker "//apex_available:platform", 231*38e8c45fSAndroid Build Coastguard Worker "//apex_available:anyapex", 232*38e8c45fSAndroid Build Coastguard Worker "com.android.media", 233*38e8c45fSAndroid Build Coastguard Worker "com.android.media.swcodec", 234*38e8c45fSAndroid Build Coastguard Worker ], 235*38e8c45fSAndroid Build Coastguard Worker min_sdk_version: "29", 236*38e8c45fSAndroid Build Coastguard Worker} 237*38e8c45fSAndroid Build Coastguard Worker 238*38e8c45fSAndroid Build Coastguard Worker// TODO: if you try to export libbinder_headers_platform_shared from libbinder_ndk.ndk, it will 239*38e8c45fSAndroid Build Coastguard Worker// not select the NDK variant of libbinder_headers_platform_shared and instead, it will error 240*38e8c45fSAndroid Build Coastguard Worker// that the NDK can't depend on glibc C++. 241*38e8c45fSAndroid Build Coastguard Workercc_library_headers { 242*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_headers_platform_shared_ndk", 243*38e8c45fSAndroid Build Coastguard Worker export_include_dirs: ["include_cpp"], 244*38e8c45fSAndroid Build Coastguard Worker sdk_version: "29", 245*38e8c45fSAndroid Build Coastguard Worker min_sdk_version: "29", 246*38e8c45fSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 247*38e8c45fSAndroid Build Coastguard Worker} 248*38e8c45fSAndroid Build Coastguard Worker 249*38e8c45fSAndroid Build Coastguard Workerndk_headers { 250*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_ndk_headers", 251*38e8c45fSAndroid Build Coastguard Worker from: "include_ndk/android", 252*38e8c45fSAndroid Build Coastguard Worker to: "android", 253*38e8c45fSAndroid Build Coastguard Worker srcs: [ 254*38e8c45fSAndroid Build Coastguard Worker "include_ndk/android/*.h", 255*38e8c45fSAndroid Build Coastguard Worker ], 256*38e8c45fSAndroid Build Coastguard Worker license: "NOTICE", 257*38e8c45fSAndroid Build Coastguard Worker} 258*38e8c45fSAndroid Build Coastguard Worker 259*38e8c45fSAndroid Build Coastguard Worker// include_cpp are packaged in development/build/sdk.atree with the AIDL compiler 260*38e8c45fSAndroid Build Coastguard Worker 261*38e8c45fSAndroid Build Coastguard Workerndk_library { 262*38e8c45fSAndroid Build Coastguard Worker name: "libbinder_ndk", 263*38e8c45fSAndroid Build Coastguard Worker symbol_file: "libbinder_ndk.map.txt", 264*38e8c45fSAndroid Build Coastguard Worker first_version: "29", 265*38e8c45fSAndroid Build Coastguard Worker export_header_libs: [ 266*38e8c45fSAndroid Build Coastguard Worker // used to be part of the NDK, platform things depend on it 267*38e8c45fSAndroid Build Coastguard Worker "libbinder_headers_platform_shared_ndk", 268*38e8c45fSAndroid Build Coastguard Worker ], 269*38e8c45fSAndroid Build Coastguard Worker} 270