1*0797b24eSAndroid Build Coastguard Worker// Copyright (C) 2009 The Android Open Source Project 2*0797b24eSAndroid Build Coastguard Worker// 3*0797b24eSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*0797b24eSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*0797b24eSAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*0797b24eSAndroid Build Coastguard Worker// 7*0797b24eSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*0797b24eSAndroid Build Coastguard Worker// 9*0797b24eSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*0797b24eSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*0797b24eSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*0797b24eSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*0797b24eSAndroid Build Coastguard Worker// limitations under the License. 14*0797b24eSAndroid Build Coastguard Worker 15*0797b24eSAndroid Build Coastguard Workerpackage { 16*0797b24eSAndroid Build Coastguard Worker default_applicable_licenses: ["libnativehelper_license"], 17*0797b24eSAndroid Build Coastguard Worker default_team: "trendy_team_art_mainline", 18*0797b24eSAndroid Build Coastguard Worker} 19*0797b24eSAndroid Build Coastguard Worker 20*0797b24eSAndroid Build Coastguard Worker// Added automatically by a large-scale-change 21*0797b24eSAndroid Build Coastguard Worker// http://go/android-license-faq 22*0797b24eSAndroid Build Coastguard Workerlicense { 23*0797b24eSAndroid Build Coastguard Worker name: "libnativehelper_license", 24*0797b24eSAndroid Build Coastguard Worker visibility: [":__subpackages__"], 25*0797b24eSAndroid Build Coastguard Worker license_kinds: [ 26*0797b24eSAndroid Build Coastguard Worker "SPDX-license-identifier-Apache-2.0", 27*0797b24eSAndroid Build Coastguard Worker ], 28*0797b24eSAndroid Build Coastguard Worker license_text: [ 29*0797b24eSAndroid Build Coastguard Worker "NOTICE", 30*0797b24eSAndroid Build Coastguard Worker ], 31*0797b24eSAndroid Build Coastguard Worker} 32*0797b24eSAndroid Build Coastguard Worker 33*0797b24eSAndroid Build Coastguard Workercc_defaults { 34*0797b24eSAndroid Build Coastguard Worker name: "libnativehelper_defaults", 35*0797b24eSAndroid Build Coastguard Worker cflags: [ 36*0797b24eSAndroid Build Coastguard Worker "-fvisibility=protected", 37*0797b24eSAndroid Build Coastguard Worker "-std=c11", 38*0797b24eSAndroid Build Coastguard Worker ], 39*0797b24eSAndroid Build Coastguard Worker shared_libs: ["liblog"], 40*0797b24eSAndroid Build Coastguard Worker export_shared_lib_headers: ["liblog"], 41*0797b24eSAndroid Build Coastguard Worker} 42*0797b24eSAndroid Build Coastguard Worker 43*0797b24eSAndroid Build Coastguard Workercc_library_headers { 44*0797b24eSAndroid Build Coastguard Worker name: "jni_headers", 45*0797b24eSAndroid Build Coastguard Worker host_supported: true, 46*0797b24eSAndroid Build Coastguard Worker export_include_dirs: ["include_jni"], 47*0797b24eSAndroid Build Coastguard Worker native_bridge_supported: true, 48*0797b24eSAndroid Build Coastguard Worker product_available: true, 49*0797b24eSAndroid Build Coastguard Worker vendor_available: true, 50*0797b24eSAndroid Build Coastguard Worker target: { 51*0797b24eSAndroid Build Coastguard Worker windows: { 52*0797b24eSAndroid Build Coastguard Worker enabled: true, 53*0797b24eSAndroid Build Coastguard Worker }, 54*0797b24eSAndroid Build Coastguard Worker }, 55*0797b24eSAndroid Build Coastguard Worker apex_available: [ 56*0797b24eSAndroid Build Coastguard Worker "//apex_available:platform", 57*0797b24eSAndroid Build Coastguard Worker "//apex_available:anyapex", 58*0797b24eSAndroid Build Coastguard Worker ], 59*0797b24eSAndroid Build Coastguard Worker ramdisk_available: true, 60*0797b24eSAndroid Build Coastguard Worker // recovery_available currently required for libchrome (https://r.android.com/799940). 61*0797b24eSAndroid Build Coastguard Worker recovery_available: true, 62*0797b24eSAndroid Build Coastguard Worker visibility: ["//visibility:public"], 63*0797b24eSAndroid Build Coastguard Worker stl: "none", 64*0797b24eSAndroid Build Coastguard Worker system_shared_libs: [], 65*0797b24eSAndroid Build Coastguard Worker // The minimum sdk version required by users of this module. 66*0797b24eSAndroid Build Coastguard Worker sdk_version: "minimum", 67*0797b24eSAndroid Build Coastguard Worker // As part of mainline modules(APEX), it should support at least 29(Q) 68*0797b24eSAndroid Build Coastguard Worker min_sdk_version: "29", 69*0797b24eSAndroid Build Coastguard Worker} 70*0797b24eSAndroid Build Coastguard Worker 71*0797b24eSAndroid Build Coastguard Workercc_library_headers { 72*0797b24eSAndroid Build Coastguard Worker name: "libnativehelper_header_only", 73*0797b24eSAndroid Build Coastguard Worker host_supported: true, 74*0797b24eSAndroid Build Coastguard Worker export_include_dirs: [ 75*0797b24eSAndroid Build Coastguard Worker "header_only_include", 76*0797b24eSAndroid Build Coastguard Worker ], 77*0797b24eSAndroid Build Coastguard Worker header_libs: ["jni_headers"], 78*0797b24eSAndroid Build Coastguard Worker export_header_lib_headers: ["jni_headers"], 79*0797b24eSAndroid Build Coastguard Worker // As part of mainline modules(APEX), it should support at least 29(Q) 80*0797b24eSAndroid Build Coastguard Worker min_sdk_version: "29", 81*0797b24eSAndroid Build Coastguard Worker sdk_version: "minimum", 82*0797b24eSAndroid Build Coastguard Worker apex_available: [ 83*0797b24eSAndroid Build Coastguard Worker "//apex_available:platform", 84*0797b24eSAndroid Build Coastguard Worker "//apex_available:anyapex", 85*0797b24eSAndroid Build Coastguard Worker ], 86*0797b24eSAndroid Build Coastguard Worker} 87*0797b24eSAndroid Build Coastguard Worker 88*0797b24eSAndroid Build Coastguard Workercc_library_headers { 89*0797b24eSAndroid Build Coastguard Worker name: "jni_platform_headers", 90*0797b24eSAndroid Build Coastguard Worker host_supported: true, 91*0797b24eSAndroid Build Coastguard Worker export_include_dirs: [ 92*0797b24eSAndroid Build Coastguard Worker "include_platform_header_only", 93*0797b24eSAndroid Build Coastguard Worker ], 94*0797b24eSAndroid Build Coastguard Worker header_libs: ["jni_headers"], 95*0797b24eSAndroid Build Coastguard Worker export_header_lib_headers: ["jni_headers"], 96*0797b24eSAndroid Build Coastguard Worker sdk_version: "minimum", 97*0797b24eSAndroid Build Coastguard Worker apex_available: [ 98*0797b24eSAndroid Build Coastguard Worker "//apex_available:platform", 99*0797b24eSAndroid Build Coastguard Worker "com.android.art", 100*0797b24eSAndroid Build Coastguard Worker "com.android.art.debug", 101*0797b24eSAndroid Build Coastguard Worker ], 102*0797b24eSAndroid Build Coastguard Worker min_sdk_version: "S", // 31 103*0797b24eSAndroid Build Coastguard Worker} 104*0797b24eSAndroid Build Coastguard Worker 105*0797b24eSAndroid Build Coastguard Worker// This library contains code that is compatible with 106*0797b24eSAndroid Build Coastguard Worker// both ART and JVM. All code specific to ART should go 107*0797b24eSAndroid Build Coastguard Worker// inside libnativehelper directly. 108*0797b24eSAndroid Build Coastguard Workercc_library_static { 109*0797b24eSAndroid Build Coastguard Worker name: "libnativehelper_any_vm", 110*0797b24eSAndroid Build Coastguard Worker defaults: ["libnativehelper_defaults"], 111*0797b24eSAndroid Build Coastguard Worker host_supported: true, 112*0797b24eSAndroid Build Coastguard Worker srcs: [ 113*0797b24eSAndroid Build Coastguard Worker "DlHelp.c", 114*0797b24eSAndroid Build Coastguard Worker "ExpandableString.c", 115*0797b24eSAndroid Build Coastguard Worker "JNIHelp.c", 116*0797b24eSAndroid Build Coastguard Worker "JniInvocation.c", 117*0797b24eSAndroid Build Coastguard Worker ], 118*0797b24eSAndroid Build Coastguard Worker export_include_dirs: [ 119*0797b24eSAndroid Build Coastguard Worker "header_only_include", 120*0797b24eSAndroid Build Coastguard Worker "include", 121*0797b24eSAndroid Build Coastguard Worker "include_jni", 122*0797b24eSAndroid Build Coastguard Worker "include_platform", 123*0797b24eSAndroid Build Coastguard Worker "include_platform_header_only", 124*0797b24eSAndroid Build Coastguard Worker ], 125*0797b24eSAndroid Build Coastguard Worker visibility: ["//frameworks/base/libs/nativehelper_jvm"], 126*0797b24eSAndroid Build Coastguard Worker stl: "none", 127*0797b24eSAndroid Build Coastguard Worker apex_available: [ 128*0797b24eSAndroid Build Coastguard Worker "com.android.art", 129*0797b24eSAndroid Build Coastguard Worker "com.android.art.debug", 130*0797b24eSAndroid Build Coastguard Worker ], 131*0797b24eSAndroid Build Coastguard Worker min_sdk_version: "S", // 31 132*0797b24eSAndroid Build Coastguard Worker target: { 133*0797b24eSAndroid Build Coastguard Worker windows: { 134*0797b24eSAndroid Build Coastguard Worker enabled: true, 135*0797b24eSAndroid Build Coastguard Worker }, 136*0797b24eSAndroid Build Coastguard Worker }, 137*0797b24eSAndroid Build Coastguard Worker} 138*0797b24eSAndroid Build Coastguard Worker 139*0797b24eSAndroid Build Coastguard Workercc_library_shared { 140*0797b24eSAndroid Build Coastguard Worker name: "libnativehelper", 141*0797b24eSAndroid Build Coastguard Worker defaults: ["libnativehelper_defaults"], 142*0797b24eSAndroid Build Coastguard Worker bootstrap: false, 143*0797b24eSAndroid Build Coastguard Worker host_supported: true, 144*0797b24eSAndroid Build Coastguard Worker srcs: [ 145*0797b24eSAndroid Build Coastguard Worker "JNIPlatformHelp.c", 146*0797b24eSAndroid Build Coastguard Worker "JniConstants.c", 147*0797b24eSAndroid Build Coastguard Worker "file_descriptor_jni.c", 148*0797b24eSAndroid Build Coastguard Worker ], 149*0797b24eSAndroid Build Coastguard Worker whole_static_libs: ["libnativehelper_any_vm"], 150*0797b24eSAndroid Build Coastguard Worker export_static_lib_headers: ["libnativehelper_any_vm"], 151*0797b24eSAndroid Build Coastguard Worker stl: "none", 152*0797b24eSAndroid Build Coastguard Worker stubs: { 153*0797b24eSAndroid Build Coastguard Worker symbol_file: "libnativehelper.map.txt", 154*0797b24eSAndroid Build Coastguard Worker versions: ["S"], 155*0797b24eSAndroid Build Coastguard Worker }, 156*0797b24eSAndroid Build Coastguard Worker // Only distributed in the ART Module. 157*0797b24eSAndroid Build Coastguard Worker apex_available: [ 158*0797b24eSAndroid Build Coastguard Worker "com.android.art", 159*0797b24eSAndroid Build Coastguard Worker "com.android.art.debug", 160*0797b24eSAndroid Build Coastguard Worker ], 161*0797b24eSAndroid Build Coastguard Worker min_sdk_version: "S", // 31 162*0797b24eSAndroid Build Coastguard Worker} 163*0797b24eSAndroid Build Coastguard Worker 164*0797b24eSAndroid Build Coastguard Worker// Lazy loading version of libnativehelper that can be used by code 165*0797b24eSAndroid Build Coastguard Worker// that is running before the ART APEX is mounted and 166*0797b24eSAndroid Build Coastguard Worker// libnativehelper.so is available. 167*0797b24eSAndroid Build Coastguard Workercc_library_static { 168*0797b24eSAndroid Build Coastguard Worker name: "libnativehelper_lazy", 169*0797b24eSAndroid Build Coastguard Worker defaults: ["libnativehelper_defaults"], 170*0797b24eSAndroid Build Coastguard Worker bootstrap: true, 171*0797b24eSAndroid Build Coastguard Worker host_supported: true, 172*0797b24eSAndroid Build Coastguard Worker export_include_dirs: [ 173*0797b24eSAndroid Build Coastguard Worker "header_only_include", 174*0797b24eSAndroid Build Coastguard Worker "include", 175*0797b24eSAndroid Build Coastguard Worker "include_jni", 176*0797b24eSAndroid Build Coastguard Worker "include_platform", 177*0797b24eSAndroid Build Coastguard Worker "include_platform_header_only", 178*0797b24eSAndroid Build Coastguard Worker ], 179*0797b24eSAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 180*0797b24eSAndroid Build Coastguard Worker srcs: ["libnativehelper_lazy.c"], 181*0797b24eSAndroid Build Coastguard Worker target: { 182*0797b24eSAndroid Build Coastguard Worker linux: { 183*0797b24eSAndroid Build Coastguard Worker version_script: "libnativehelper.map.txt", 184*0797b24eSAndroid Build Coastguard Worker }, 185*0797b24eSAndroid Build Coastguard Worker }, 186*0797b24eSAndroid Build Coastguard Worker} 187*0797b24eSAndroid Build Coastguard Worker 188*0797b24eSAndroid Build Coastguard Worker// NDK-only build for the target (device). 189*0797b24eSAndroid Build Coastguard Worker// - Relies only on NDK exposed functionality. 190*0797b24eSAndroid Build Coastguard Worker// - This doesn't include JniInvocation. 191*0797b24eSAndroid Build Coastguard Worker// - This library is less than 20 KB - it is recommended that callers link it statically. 192*0797b24eSAndroid Build Coastguard Worker// - Used to link libc++ (hence the name) but no longer does. 193*0797b24eSAndroid Build Coastguard Workercc_library { 194*0797b24eSAndroid Build Coastguard Worker name: "libnativehelper_compat_libc++", 195*0797b24eSAndroid Build Coastguard Worker defaults: ["libnativehelper_defaults"], 196*0797b24eSAndroid Build Coastguard Worker host_supported: true, 197*0797b24eSAndroid Build Coastguard Worker cflags: ["-Werror"], 198*0797b24eSAndroid Build Coastguard Worker 199*0797b24eSAndroid Build Coastguard Worker header_libs: ["jni_headers"], 200*0797b24eSAndroid Build Coastguard Worker export_header_lib_headers: ["jni_headers"], 201*0797b24eSAndroid Build Coastguard Worker export_include_dirs: [ 202*0797b24eSAndroid Build Coastguard Worker "header_only_include", 203*0797b24eSAndroid Build Coastguard Worker "include", 204*0797b24eSAndroid Build Coastguard Worker ], 205*0797b24eSAndroid Build Coastguard Worker local_include_dirs: [ 206*0797b24eSAndroid Build Coastguard Worker "include_platform_header_only", 207*0797b24eSAndroid Build Coastguard Worker ], 208*0797b24eSAndroid Build Coastguard Worker srcs: [ 209*0797b24eSAndroid Build Coastguard Worker "ExpandableString.c", 210*0797b24eSAndroid Build Coastguard Worker "JNIHelp.c", 211*0797b24eSAndroid Build Coastguard Worker ], 212*0797b24eSAndroid Build Coastguard Worker 213*0797b24eSAndroid Build Coastguard Worker min_sdk_version: "29", 214*0797b24eSAndroid Build Coastguard Worker sdk_version: "19", 215*0797b24eSAndroid Build Coastguard Worker stl: "none", 216*0797b24eSAndroid Build Coastguard Worker apex_available: [ 217*0797b24eSAndroid Build Coastguard Worker "//apex_available:anyapex", 218*0797b24eSAndroid Build Coastguard Worker "//apex_available:platform", 219*0797b24eSAndroid Build Coastguard Worker ], 220*0797b24eSAndroid Build Coastguard Worker} 221*0797b24eSAndroid Build Coastguard Worker 222*0797b24eSAndroid Build Coastguard Worker// The NDK module definitions reside in 223*0797b24eSAndroid Build Coastguard Worker// system/extras/module_ndk_libs/libnativehelper in platform, with copies of 224*0797b24eSAndroid Build Coastguard Worker// these headers and map.txt. Any changes here should be synced there and vice 225*0797b24eSAndroid Build Coastguard Worker// versa. 226*0797b24eSAndroid Build Coastguard Worker// 227*0797b24eSAndroid Build Coastguard Worker// TODO(b/170644498): Improve tooling to remove this duplication. 228*0797b24eSAndroid Build Coastguard Worker// 229*0797b24eSAndroid Build Coastguard Worker// ndk_headers { 230*0797b24eSAndroid Build Coastguard Worker// name: "ndk_jni.h", 231*0797b24eSAndroid Build Coastguard Worker// from: "include_jni", 232*0797b24eSAndroid Build Coastguard Worker// to: "", 233*0797b24eSAndroid Build Coastguard Worker// srcs: ["include_jni/jni.h"], 234*0797b24eSAndroid Build Coastguard Worker// license: "NOTICE", 235*0797b24eSAndroid Build Coastguard Worker// } 236*0797b24eSAndroid Build Coastguard Worker// 237*0797b24eSAndroid Build Coastguard Worker// ndk_headers { 238*0797b24eSAndroid Build Coastguard Worker// name: "libnativehelper_ndk_headers", 239*0797b24eSAndroid Build Coastguard Worker// from: "include", 240*0797b24eSAndroid Build Coastguard Worker// to: "", 241*0797b24eSAndroid Build Coastguard Worker// srcs: ["include/android/*.h"], 242*0797b24eSAndroid Build Coastguard Worker// license: "NOTICE", 243*0797b24eSAndroid Build Coastguard Worker// } 244*0797b24eSAndroid Build Coastguard Worker// 245*0797b24eSAndroid Build Coastguard Worker// ndk_library { 246*0797b24eSAndroid Build Coastguard Worker// name: "libnativehelper", 247*0797b24eSAndroid Build Coastguard Worker// symbol_file: "libnativehelper.map.txt", 248*0797b24eSAndroid Build Coastguard Worker// first_version: "S", 249*0797b24eSAndroid Build Coastguard Worker// } 250*0797b24eSAndroid Build Coastguard Worker 251*0797b24eSAndroid Build Coastguard Worker// 252*0797b24eSAndroid Build Coastguard Worker// Tests. 253*0797b24eSAndroid Build Coastguard Worker// 254*0797b24eSAndroid Build Coastguard Worker 255*0797b24eSAndroid Build Coastguard Workersubdirs = [ 256*0797b24eSAndroid Build Coastguard Worker "tests", 257*0797b24eSAndroid Build Coastguard Worker "tests_mts", 258*0797b24eSAndroid Build Coastguard Worker] 259