| // |
| // 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_test { |
| name: "art_sigchain_tests", |
| defaults: [ |
| "art_gtest_defaults", |
| ], |
| srcs: ["sigchain_test.cc"], |
| shared_libs: ["libsigchain"], |
| } |