1*89a63228SAndroid Build Coastguard Worker// Copyright (C) 2007 The Android Open Source Project 2*89a63228SAndroid Build Coastguard Worker// 3*89a63228SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*89a63228SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*89a63228SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*89a63228SAndroid Build Coastguard Worker// 7*89a63228SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*89a63228SAndroid Build Coastguard Worker// 9*89a63228SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*89a63228SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*89a63228SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*89a63228SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*89a63228SAndroid Build Coastguard Worker// limitations under the License. 14*89a63228SAndroid Build Coastguard Worker 15*89a63228SAndroid Build Coastguard Worker// 16*89a63228SAndroid Build Coastguard Worker// Definitions for building the native code needed for the core library. 17*89a63228SAndroid Build Coastguard Worker// 18*89a63228SAndroid Build Coastguard Worker 19*89a63228SAndroid Build Coastguard Worker// Defaults that apply to all of the modules 20*89a63228SAndroid Build Coastguard Worker 21*89a63228SAndroid Build Coastguard Workercc_defaults { 22*89a63228SAndroid Build Coastguard Worker name: "core_native_default_flags", 23*89a63228SAndroid Build Coastguard Worker host_supported: true, 24*89a63228SAndroid Build Coastguard Worker cflags: [ 25*89a63228SAndroid Build Coastguard Worker "-Wall", 26*89a63228SAndroid Build Coastguard Worker "-Wextra", 27*89a63228SAndroid Build Coastguard Worker "-Werror", 28*89a63228SAndroid Build Coastguard Worker ], 29*89a63228SAndroid Build Coastguard Worker cppflags: ["-DU_USING_ICU_NAMESPACE=0"], 30*89a63228SAndroid Build Coastguard Worker 31*89a63228SAndroid Build Coastguard Worker target: { 32*89a63228SAndroid Build Coastguard Worker darwin: { 33*89a63228SAndroid Build Coastguard Worker enabled: false, 34*89a63228SAndroid Build Coastguard Worker }, 35*89a63228SAndroid Build Coastguard Worker windows: { 36*89a63228SAndroid Build Coastguard Worker enabled: false, 37*89a63228SAndroid Build Coastguard Worker }, 38*89a63228SAndroid Build Coastguard Worker }, 39*89a63228SAndroid Build Coastguard Worker min_sdk_version: "S", 40*89a63228SAndroid Build Coastguard Worker} 41*89a63228SAndroid Build Coastguard Worker 42*89a63228SAndroid Build Coastguard Workercc_defaults { 43*89a63228SAndroid Build Coastguard Worker name: "core_native_default_libs", 44*89a63228SAndroid Build Coastguard Worker header_libs: ["jni_headers"], 45*89a63228SAndroid Build Coastguard Worker shared_libs: [ 46*89a63228SAndroid Build Coastguard Worker "libbase", 47*89a63228SAndroid Build Coastguard Worker "liblog", 48*89a63228SAndroid Build Coastguard Worker "libnativehelper#impl", 49*89a63228SAndroid Build Coastguard Worker ], 50*89a63228SAndroid Build Coastguard Worker static_libs: ["libnativehelper_compat_libc++"], 51*89a63228SAndroid Build Coastguard Worker} 52*89a63228SAndroid Build Coastguard Worker 53*89a63228SAndroid Build Coastguard Workercc_library_shared { 54*89a63228SAndroid Build Coastguard Worker name: "libjavacore", 55*89a63228SAndroid Build Coastguard Worker visibility: [ 56*89a63228SAndroid Build Coastguard Worker "//art/build/apex", 57*89a63228SAndroid Build Coastguard Worker "//art/runtime", 58*89a63228SAndroid Build Coastguard Worker "//art/tools/ahat", 59*89a63228SAndroid Build Coastguard Worker ], 60*89a63228SAndroid Build Coastguard Worker apex_available: [ 61*89a63228SAndroid Build Coastguard Worker "com.android.art", 62*89a63228SAndroid Build Coastguard Worker "com.android.art.debug", 63*89a63228SAndroid Build Coastguard Worker ], 64*89a63228SAndroid Build Coastguard Worker defaults: [ 65*89a63228SAndroid Build Coastguard Worker "core_native_default_flags", 66*89a63228SAndroid Build Coastguard Worker "core_native_default_libs", 67*89a63228SAndroid Build Coastguard Worker ], 68*89a63228SAndroid Build Coastguard Worker srcs: [ 69*89a63228SAndroid Build Coastguard Worker ":luni_native_srcs", 70*89a63228SAndroid Build Coastguard Worker ], 71*89a63228SAndroid Build Coastguard Worker shared_libs: [ 72*89a63228SAndroid Build Coastguard Worker "libandroidio", 73*89a63228SAndroid Build Coastguard Worker "libicu", 74*89a63228SAndroid Build Coastguard Worker "libexpat", 75*89a63228SAndroid Build Coastguard Worker "libz", 76*89a63228SAndroid Build Coastguard Worker ], 77*89a63228SAndroid Build Coastguard Worker static_libs: [ 78*89a63228SAndroid Build Coastguard Worker "libcrypto_for_art", 79*89a63228SAndroid Build Coastguard Worker "libziparchive", 80*89a63228SAndroid Build Coastguard Worker ], 81*89a63228SAndroid Build Coastguard Worker version_script: "libjavacore.map", 82*89a63228SAndroid Build Coastguard Worker} 83*89a63228SAndroid Build Coastguard Worker 84*89a63228SAndroid Build Coastguard Workercc_library_shared { 85*89a63228SAndroid Build Coastguard Worker name: "libandroidio", 86*89a63228SAndroid Build Coastguard Worker visibility: [ 87*89a63228SAndroid Build Coastguard Worker "//art/build/apex", 88*89a63228SAndroid Build Coastguard Worker "//art/build/sdk", 89*89a63228SAndroid Build Coastguard Worker "//art/tools/ahat", 90*89a63228SAndroid Build Coastguard Worker "//external/conscrypt", 91*89a63228SAndroid Build Coastguard Worker ], 92*89a63228SAndroid Build Coastguard Worker apex_available: [ 93*89a63228SAndroid Build Coastguard Worker "com.android.art", 94*89a63228SAndroid Build Coastguard Worker "com.android.art.debug", 95*89a63228SAndroid Build Coastguard Worker ], 96*89a63228SAndroid Build Coastguard Worker defaults: [ 97*89a63228SAndroid Build Coastguard Worker "core_native_default_flags", 98*89a63228SAndroid Build Coastguard Worker ], 99*89a63228SAndroid Build Coastguard Worker shared_libs: [ 100*89a63228SAndroid Build Coastguard Worker "liblog", 101*89a63228SAndroid Build Coastguard Worker ], 102*89a63228SAndroid Build Coastguard Worker srcs: [ 103*89a63228SAndroid Build Coastguard Worker ":libandroidio_srcs", 104*89a63228SAndroid Build Coastguard Worker ], 105*89a63228SAndroid Build Coastguard Worker stubs: { 106*89a63228SAndroid Build Coastguard Worker symbol_file: "libandroidio.map.txt", 107*89a63228SAndroid Build Coastguard Worker versions: ["1"], 108*89a63228SAndroid Build Coastguard Worker }, 109*89a63228SAndroid Build Coastguard Worker} 110*89a63228SAndroid Build Coastguard Worker 111*89a63228SAndroid Build Coastguard Workercc_defaults { 112*89a63228SAndroid Build Coastguard Worker name: "libopenjdk_native_defaults", 113*89a63228SAndroid Build Coastguard Worker defaults: [ 114*89a63228SAndroid Build Coastguard Worker "core_native_default_flags", 115*89a63228SAndroid Build Coastguard Worker "core_native_default_libs", 116*89a63228SAndroid Build Coastguard Worker ], 117*89a63228SAndroid Build Coastguard Worker srcs: [":libopenjdk_native_srcs"], 118*89a63228SAndroid Build Coastguard Worker local_include_dirs: [ 119*89a63228SAndroid Build Coastguard Worker "luni/src/main/native", 120*89a63228SAndroid Build Coastguard Worker ], 121*89a63228SAndroid Build Coastguard Worker cflags: [ 122*89a63228SAndroid Build Coastguard Worker // TODO(narayan): Prune down this list of exclusions once the underlying 123*89a63228SAndroid Build Coastguard Worker // issues have been fixed. Most of these are small changes except for 124*89a63228SAndroid Build Coastguard Worker // -Wunused-parameter. 125*89a63228SAndroid Build Coastguard Worker "-Wno-unused-parameter", 126*89a63228SAndroid Build Coastguard Worker "-Wno-unused-variable", 127*89a63228SAndroid Build Coastguard Worker "-Wno-parentheses-equality", 128*89a63228SAndroid Build Coastguard Worker "-Wno-constant-logical-operand", 129*89a63228SAndroid Build Coastguard Worker "-Wno-sometimes-uninitialized", 130*89a63228SAndroid Build Coastguard Worker ], 131*89a63228SAndroid Build Coastguard Worker 132*89a63228SAndroid Build Coastguard Worker shared_libs: [ 133*89a63228SAndroid Build Coastguard Worker "libandroidio", 134*89a63228SAndroid Build Coastguard Worker "libicu", 135*89a63228SAndroid Build Coastguard Worker "libz", 136*89a63228SAndroid Build Coastguard Worker ], 137*89a63228SAndroid Build Coastguard Worker static_libs: [ 138*89a63228SAndroid Build Coastguard Worker "libcrypto_for_art", 139*89a63228SAndroid Build Coastguard Worker "libfdlibm", 140*89a63228SAndroid Build Coastguard Worker ], 141*89a63228SAndroid Build Coastguard Worker 142*89a63228SAndroid Build Coastguard Worker target: { 143*89a63228SAndroid Build Coastguard Worker musl: { 144*89a63228SAndroid Build Coastguard Worker cflags: [ 145*89a63228SAndroid Build Coastguard Worker // Sigh. 146*89a63228SAndroid Build Coastguard Worker "-D_LARGEFILE64_SOURCE", 147*89a63228SAndroid Build Coastguard Worker "-D_GNU_SOURCE", 148*89a63228SAndroid Build Coastguard Worker "-DLINUX", 149*89a63228SAndroid Build Coastguard Worker ], 150*89a63228SAndroid Build Coastguard Worker }, 151*89a63228SAndroid Build Coastguard Worker glibc: { 152*89a63228SAndroid Build Coastguard Worker cflags: [ 153*89a63228SAndroid Build Coastguard Worker "-D__GLIBC__", 154*89a63228SAndroid Build Coastguard Worker // Sigh. 155*89a63228SAndroid Build Coastguard Worker "-D_LARGEFILE64_SOURCE", 156*89a63228SAndroid Build Coastguard Worker "-D_GNU_SOURCE", 157*89a63228SAndroid Build Coastguard Worker "-DLINUX", 158*89a63228SAndroid Build Coastguard Worker ], 159*89a63228SAndroid Build Coastguard Worker }, 160*89a63228SAndroid Build Coastguard Worker android: { 161*89a63228SAndroid Build Coastguard Worker shared_libs: [ 162*89a63228SAndroid Build Coastguard Worker "libdl_android", 163*89a63228SAndroid Build Coastguard Worker ], 164*89a63228SAndroid Build Coastguard Worker }, 165*89a63228SAndroid Build Coastguard Worker }, 166*89a63228SAndroid Build Coastguard Worker} 167*89a63228SAndroid Build Coastguard Worker 168*89a63228SAndroid Build Coastguard Workercc_library_shared { 169*89a63228SAndroid Build Coastguard Worker name: "libopenjdk", 170*89a63228SAndroid Build Coastguard Worker visibility: [ 171*89a63228SAndroid Build Coastguard Worker "//art/build/apex", 172*89a63228SAndroid Build Coastguard Worker "//art/tools/ahat", 173*89a63228SAndroid Build Coastguard Worker ], 174*89a63228SAndroid Build Coastguard Worker apex_available: [ 175*89a63228SAndroid Build Coastguard Worker "com.android.art", 176*89a63228SAndroid Build Coastguard Worker "com.android.art.debug", 177*89a63228SAndroid Build Coastguard Worker ], 178*89a63228SAndroid Build Coastguard Worker defaults: ["libopenjdk_native_defaults"], 179*89a63228SAndroid Build Coastguard Worker shared_libs: [ 180*89a63228SAndroid Build Coastguard Worker "libopenjdkjvm", 181*89a63228SAndroid Build Coastguard Worker ], 182*89a63228SAndroid Build Coastguard Worker} 183*89a63228SAndroid Build Coastguard Worker 184*89a63228SAndroid Build Coastguard Worker// Debug version of libopenjdk. Depends on libopenjdkjvmd. 185*89a63228SAndroid Build Coastguard Workercc_library_shared { 186*89a63228SAndroid Build Coastguard Worker name: "libopenjdkd", 187*89a63228SAndroid Build Coastguard Worker visibility: [ 188*89a63228SAndroid Build Coastguard Worker "//art/build/apex", 189*89a63228SAndroid Build Coastguard Worker "//art/tools/ahat", 190*89a63228SAndroid Build Coastguard Worker ], 191*89a63228SAndroid Build Coastguard Worker apex_available: [ 192*89a63228SAndroid Build Coastguard Worker "com.android.art.debug", 193*89a63228SAndroid Build Coastguard Worker ], 194*89a63228SAndroid Build Coastguard Worker defaults: ["libopenjdk_native_defaults"], 195*89a63228SAndroid Build Coastguard Worker shared_libs: [ 196*89a63228SAndroid Build Coastguard Worker "libopenjdkjvmd", 197*89a63228SAndroid Build Coastguard Worker ], 198*89a63228SAndroid Build Coastguard Worker} 199*89a63228SAndroid Build Coastguard Worker 200*89a63228SAndroid Build Coastguard Worker// Test JNI library. 201*89a63228SAndroid Build Coastguard Workercc_library_shared { 202*89a63228SAndroid Build Coastguard Worker name: "libjavacoretests", 203*89a63228SAndroid Build Coastguard Worker visibility: [ 204*89a63228SAndroid Build Coastguard Worker "//art/build/sdk", 205*89a63228SAndroid Build Coastguard Worker "//cts/tests/libcore/luni", 206*89a63228SAndroid Build Coastguard Worker ], 207*89a63228SAndroid Build Coastguard Worker defaults: ["core_native_default_flags"], 208*89a63228SAndroid Build Coastguard Worker host_supported: true, 209*89a63228SAndroid Build Coastguard Worker 210*89a63228SAndroid Build Coastguard Worker srcs: [ 211*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_dalvik_system_JniTest.cpp", 212*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_java_io_FileTest.cpp", 213*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_java_lang_OldStackTraceElementTest.cpp", 214*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_java_lang_ThreadTest.cpp", 215*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_java_nio_BufferTest.cpp", 216*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_java_time_TimeApisConsistencyTest.cpp", 217*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_libcore_util_NativeAllocationRegistryTest.cpp", 218*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/tests_support_AndroidProperties.cpp", 219*89a63228SAndroid Build Coastguard Worker ], 220*89a63228SAndroid Build Coastguard Worker shared_libs: [ 221*89a63228SAndroid Build Coastguard Worker "liblog", 222*89a63228SAndroid Build Coastguard Worker "libnativehelper", 223*89a63228SAndroid Build Coastguard Worker ], 224*89a63228SAndroid Build Coastguard Worker static_libs: [ 225*89a63228SAndroid Build Coastguard Worker "libbase", 226*89a63228SAndroid Build Coastguard Worker ], 227*89a63228SAndroid Build Coastguard Worker} 228*89a63228SAndroid Build Coastguard Worker 229*89a63228SAndroid Build Coastguard Worker// Set of gtest unit tests. 230*89a63228SAndroid Build Coastguard Workercc_test { 231*89a63228SAndroid Build Coastguard Worker name: "libjavacore-unit-tests", 232*89a63228SAndroid Build Coastguard Worker defaults: ["core_native_default_flags"], 233*89a63228SAndroid Build Coastguard Worker 234*89a63228SAndroid Build Coastguard Worker // TODO(b/172480617): Fix this source dependency from 235*89a63228SAndroid Build Coastguard Worker // platform_testing/build/tasks/tests/native_test_list.mk. 236*89a63228SAndroid Build Coastguard Worker enabled: true, 237*89a63228SAndroid Build Coastguard Worker 238*89a63228SAndroid Build Coastguard Worker // Add -fno-builtin so that the compiler doesn't attempt to inline 239*89a63228SAndroid Build Coastguard Worker // memcpy calls that are not really aligned. 240*89a63228SAndroid Build Coastguard Worker cflags: ["-fno-builtin"], 241*89a63228SAndroid Build Coastguard Worker srcs: [ 242*89a63228SAndroid Build Coastguard Worker "luni/src/test/native/libcore_io_Memory_test.cpp", 243*89a63228SAndroid Build Coastguard Worker // libcore_io_Memory_test.cpp includes libcore_io_Memory.cpp which 244*89a63228SAndroid Build Coastguard Worker // depends on JniConstants.cpp (but these are not used in the tests). 245*89a63228SAndroid Build Coastguard Worker "luni/src/main/native/JniConstants.cpp", 246*89a63228SAndroid Build Coastguard Worker ], 247*89a63228SAndroid Build Coastguard Worker 248*89a63228SAndroid Build Coastguard Worker shared_libs: [ 249*89a63228SAndroid Build Coastguard Worker "liblog", 250*89a63228SAndroid Build Coastguard Worker "libnativehelper", 251*89a63228SAndroid Build Coastguard Worker ], 252*89a63228SAndroid Build Coastguard Worker 253*89a63228SAndroid Build Coastguard Worker static_libs: ["libnativehelper_compat_libc++"], 254*89a63228SAndroid Build Coastguard Worker} 255*89a63228SAndroid Build Coastguard Worker 256*89a63228SAndroid Build Coastguard Worker// Set of benchmarks for libjavacore functions. 257*89a63228SAndroid Build Coastguard Workercc_benchmark { 258*89a63228SAndroid Build Coastguard Worker name: "libjavacore-benchmarks", 259*89a63228SAndroid Build Coastguard Worker defaults: ["core_native_default_flags"], 260*89a63228SAndroid Build Coastguard Worker 261*89a63228SAndroid Build Coastguard Worker // TODO(b/172480617): Fix this source dependency from 262*89a63228SAndroid Build Coastguard Worker // platform_testing/build/tasks/tests/native_metric_test_list.mk. 263*89a63228SAndroid Build Coastguard Worker enabled: true, 264*89a63228SAndroid Build Coastguard Worker 265*89a63228SAndroid Build Coastguard Worker srcs: [ 266*89a63228SAndroid Build Coastguard Worker "luni/src/benchmark/native/libcore_io_Memory_bench.cpp", 267*89a63228SAndroid Build Coastguard Worker // libcore_io_Memory_bench.cpp includes libcore_io_Memory.cpp which 268*89a63228SAndroid Build Coastguard Worker // depends on JniConstants.cpp (but these are not used in the benchmark). 269*89a63228SAndroid Build Coastguard Worker "luni/src/main/native/JniConstants.cpp", 270*89a63228SAndroid Build Coastguard Worker ], 271*89a63228SAndroid Build Coastguard Worker test_suites: ["device-tests"], 272*89a63228SAndroid Build Coastguard Worker 273*89a63228SAndroid Build Coastguard Worker shared_libs: [ 274*89a63228SAndroid Build Coastguard Worker "liblog", 275*89a63228SAndroid Build Coastguard Worker "libnativehelper", 276*89a63228SAndroid Build Coastguard Worker ], 277*89a63228SAndroid Build Coastguard Worker} 278