// // Copyright (C) 2014 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. // package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "art_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 // SPDX-license-identifier-BSD default_applicable_licenses: ["art_license"], } cc_library { name: "libsigchain", defaults: ["art_defaults"], visibility: [ "//frameworks/base/cmds/app_process", ], // Make libsigchain symbols global, so that an app library which // is loaded in a classloader linker namespace looks for // libsigchain symbols before libc. // -z,global marks the binary with the DF_1_GLOBAL flag which puts the symbols // in the global group. It does not affect their visibilities like the version // script does. ldflags: ["-Wl,-z,global"], host_supported: true, target: { linux: { srcs: ["sigchain.cc"], }, darwin: { srcs: ["sigchain_fake.cc"], }, android: { static_libs: ["libasync_safe"], }, }, export_include_dirs: ["."], apex_available: [ "com.android.art", "com.android.art.debug", ], stubs: { symbol_file: "libsigchain.map.txt", versions: ["1"], }, } // Create a fake version of libsigchain which expose the necessary symbols // but throws when called. This can be used to get static binaries which don't // need the real functionality of the sig chain but need to please the linker. cc_library_static { name: "libsigchain_fake", host_supported: true, defaults: ["art_defaults"], srcs: ["sigchain_fake.cc"], target: { android: { static_libs: ["libasync_safe"], }, }, export_include_dirs: ["."], } art_cc_defaults { name: "art_sigchain_tests_defaults", srcs: ["sigchain_test.cc"], shared_libs: ["libsigchain"], } // Version of ART gtest `art_sigchain_tests` bundled with the ART APEX on target. // TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete. art_cc_test { name: "art_sigchain_tests", defaults: [ "art_gtest_defaults", "art_sigchain_tests_defaults", ], } // Standalone version of ART gtest `art_sigchain_tests`, not bundled with the ART APEX on target. art_cc_test { name: "art_standalone_sigchain_tests", defaults: [ "art_standalone_gtest_defaults", "art_sigchain_tests_defaults", ], }