// Copyright (C) 2007 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. // // Definitions for building the native code needed for the core library. // // Defaults that apply to all of the modules cc_defaults { name: "core_native_default_flags", defaults: ["art_module_source_build_defaults"], host_supported: true, cflags: [ "-Wall", "-Wextra", "-Werror", ], cppflags: ["-DU_USING_ICU_NAMESPACE=0"], target: { darwin: { enabled: false, }, }, min_sdk_version: "S", } cc_defaults { name: "core_native_default_libs", header_libs: ["jni_headers"], shared_libs: [ "libbase", "liblog", "libnativehelper", ], static_libs: ["libnativehelper_compat_libc++"], } cc_library_shared { name: "libjavacore", visibility: [ "//art/build/apex", "//art/runtime", ], apex_available: [ "com.android.art", "com.android.art.debug", ], defaults: [ "core_native_default_flags", "core_native_default_libs", ], srcs: [ ":luni_native_srcs", ], shared_libs: [ "libandroidio", "libcrypto", "libicu", "libexpat", "libz", ], static_libs: [ "libziparchive", ], } cc_library_shared { name: "libandroidio", visibility: [ "//art/build/apex", "//art/build/sdk", "//external/conscrypt", ], apex_available: [ "com.android.art", "com.android.art.debug", ], defaults: [ "core_native_default_flags", ], shared_libs: [ "liblog", ], srcs: [ ":libandroidio_srcs", ], stubs: { symbol_file: "libandroidio.map.txt", versions: ["1"], }, } cc_defaults { name: "libopenjdk_native_defaults", defaults: [ "core_native_default_flags", "core_native_default_libs", ], srcs: [":libopenjdk_native_srcs"], local_include_dirs: [ "luni/src/main/native", ], cflags: [ // TODO(narayan): Prune down this list of exclusions once the underlying // issues have been fixed. Most of these are small changes except for // -Wunused-parameter. "-Wno-unused-parameter", "-Wno-unused-variable", "-Wno-parentheses-equality", "-Wno-constant-logical-operand", "-Wno-sometimes-uninitialized", ], shared_libs: [ "libandroidio", "libcrypto", "libicu", "libz", ], static_libs: [ "libfdlibm", ], target: { musl: { cflags: [ // Sigh. "-D_LARGEFILE64_SOURCE", "-D_GNU_SOURCE", "-DLINUX", ], }, glibc: { cflags: [ "-D__GLIBC__", // Sigh. "-D_LARGEFILE64_SOURCE", "-D_GNU_SOURCE", "-DLINUX", ], }, android: { shared_libs: [ "libdl_android", ], }, }, } cc_library_shared { name: "libopenjdk", visibility: [ "//art/build/apex", ], apex_available: [ "com.android.art", "com.android.art.debug", ], defaults: ["libopenjdk_native_defaults"], shared_libs: [ "libopenjdkjvm", ], } // Debug version of libopenjdk. Depends on libopenjdkjvmd. cc_library_shared { name: "libopenjdkd", visibility: [ "//art/build/apex", ], apex_available: [ "com.android.art.debug", ], defaults: ["libopenjdk_native_defaults"], shared_libs: [ "libopenjdkjvmd", ], } // Test JNI library. cc_library_shared { name: "libjavacoretests", visibility: [ "//art/build/sdk", "//cts/tests/libcore/luni", ], defaults: ["core_native_default_flags"], host_supported: true, srcs: [ "luni/src/test/native/libcore_dalvik_system_JniTest.cpp", "luni/src/test/native/libcore_java_io_FileTest.cpp", "luni/src/test/native/libcore_java_lang_OldStackTraceElementTest.cpp", "luni/src/test/native/libcore_java_lang_ThreadTest.cpp", "luni/src/test/native/libcore_java_nio_BufferTest.cpp", "luni/src/test/native/libcore_java_time_TimeApisConsistencyTest.cpp", "luni/src/test/native/libcore_libcore_util_NativeAllocationRegistryTest.cpp", "luni/src/test/native/tests_support_AndroidProperties.cpp", ], shared_libs: [ "liblog", "libnativehelper", ], static_libs: [ "libbase", ], } // Set of gtest unit tests. cc_test { name: "libjavacore-unit-tests", defaults: ["core_native_default_flags"], // TODO(b/172480617): Fix this source dependency from // platform_testing/build/tasks/tests/native_test_list.mk. enabled: true, // Add -fno-builtin so that the compiler doesn't attempt to inline // memcpy calls that are not really aligned. cflags: ["-fno-builtin"], srcs: [ "luni/src/test/native/libcore_io_Memory_test.cpp", // libcore_io_Memory_test.cpp includes libcore_io_Memory.cpp which // depends on JniConstants.cpp (but these are not used in the tests). "luni/src/main/native/JniConstants.cpp", ], shared_libs: [ "liblog", "libnativehelper", ], static_libs: ["libnativehelper_compat_libc++"], } // Set of benchmarks for libjavacore functions. cc_benchmark { name: "libjavacore-benchmarks", defaults: ["core_native_default_flags"], // TODO(b/172480617): Fix this source dependency from // platform_testing/build/tasks/tests/native_metric_test_list.mk. enabled: true, srcs: [ "luni/src/benchmark/native/libcore_io_Memory_bench.cpp", // libcore_io_Memory_bench.cpp includes libcore_io_Memory.cpp which // depends on JniConstants.cpp (but these are not used in the benchmark). "luni/src/main/native/JniConstants.cpp", ], test_suites: ["device-tests"], shared_libs: [ "liblog", "libnativehelper", ], }