blob: b03e24cd1af4511a30696f75c80d7f983338257f [file] [log] [blame]
/*
* Copyright (C) 2018 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.
*/
// TODO(b/31559095): bionic on host should define this
package {
default_applicable_licenses: ["frameworks_native_libs_binder_ndk_license"],
}
// Added automatically by a large-scale-change
// See: http://go/android-license-faq
license {
name: "frameworks_native_libs_binder_ndk_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
],
license_text: [
"NOTICE",
],
}
cc_defaults {
name: "libbinder_ndk_host_user",
target: {
host: {
cflags: [
"-D__INTRODUCED_IN(n)=",
"-D__assert(a,b,c)=",
// We want all the APIs to be available on the host.
"-D__ANDROID_API__=10000",
],
},
darwin: {
enabled: false,
},
},
}
cc_library {
name: "libbinder_ndk",
defaults: ["libbinder_ndk_host_user"],
host_supported: true,
llndk: {
symbol_file: "libbinder_ndk.map.txt",
},
export_include_dirs: [
"include_cpp",
"include_ndk",
"include_platform",
],
cflags: [
"-Wall",
"-Wextra",
"-Werror",
],
srcs: [
"ibinder.cpp",
"ibinder_jni.cpp",
"parcel.cpp",
"parcel_jni.cpp",
"process.cpp",
"stability.cpp",
"status.cpp",
"service_manager.cpp",
],
shared_libs: [
"libandroid_runtime_lazy",
"libbase",
"libbinder",
"libutils",
],
header_libs: [
"jni_headers",
],
export_header_lib_headers: [
"jni_headers",
],
target: {
android: {
// Only one copy of this library on an Android device
static: {
enabled: false,
},
},
linux: {
version_script: "libbinder_ndk.map.txt",
},
darwin: {
enabled: false,
},
},
stubs: {
symbol_file: "libbinder_ndk.map.txt",
versions: [
"29",
"30",
],
},
tidy: true,
tidy_flags: [
// Only check our headers
"--header-filter=^.*frameworks/native/libs/binder/.*.h$",
],
tidy_checks_as_errors: [
// Explicitly list the checks that should not occur in this module.
"abseil-*",
"android-*",
"bugprone-*",
"cert-*",
"clang-analyzer-*",
"-clang-analyzer-core.CallAndMessage",
"-clang-analyzer-core.uninitialized.Assign",
"-clang-analyzer-unix.Malloc",
"-clang-analyzer-deadcode.DeadStores",
"-clang-analyzer-optin.cplusplus.UninitializedObject",
"google-*",
"-google-readability-*",
"-google-runtime-references",
"misc-*",
"-misc-no-recursion",
"-misc-non-private-member-variables-in-classes",
"-misc-redundant-expression",
"-misc-unused-parameters",
"-misc-unused-using-decls",
"performance*",
"portability*",
],
}
cc_library_headers {
name: "libbinder_headers_platform_shared",
export_include_dirs: ["include_cpp"],
vendor_available: true,
host_supported: true,
// TODO(b/153609531): remove when no longer needed.
native_bridge_supported: true,
target: {
darwin: {
enabled: false,
},
},
apex_available: [
"//apex_available:platform",
"com.android.media",
"com.android.media.swcodec",
],
min_sdk_version: "29",
}
ndk_headers {
name: "libbinder_ndk_headers",
from: "include_ndk/android",
to: "android",
srcs: [
"include_ndk/android/*.h",
],
license: "NOTICE",
}
// TODO(b/160624671): package with the aidl compiler
ndk_headers {
name: "libbinder_ndk_helper_headers",
from: "include_cpp/android",
to: "android",
srcs: [
"include_cpp/android/*.h",
],
license: "NOTICE",
}
ndk_library {
name: "libbinder_ndk",
symbol_file: "libbinder_ndk.map.txt",
first_version: "29",
}