platform_system_core/base/Android.bp
Tom Cherry 349b0c43ad Move SetLogger and SetAborter from libbase to liblog
libbase is copied into each APEX module which requires it, meaning
that there may be multiple instances of libbase running within a
single process with their own copy of libbase's globals.  This means
that SetLogger() and SetAborter() will only impact logs from the
instance of libbase that calls it.  This change moves this state to
liblog, since it will only ever have one instance in a single
process.

One major side-effect here is that now both ALOGE style and LOG(...)
style logs will be handled through the same logger function.  For
example, a logger specified through libbase's SetLogger() will now see
logs sent to liblog through ALOGE().  This is intended behavior.

A second side-effect is that libbase's stderr logger is used for all
host logging now.  It's simply a better logging default than the
fake_log_device logger in liblog currently and makes ALOGE and
LOG(...) logs on host follow the same format.

Bug: 119867234
Test: libbase and liblog unit tests; logging works
Change-Id: Ib52cbfb4e43749e50910ed19a993dffae19ace86
2020-01-21 11:05:24 -08:00

216 lines
4.9 KiB
Text

//
// Copyright (C) 2015 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.
//
cc_defaults {
name: "libbase_cflags_defaults",
cflags: [
"-Wall",
"-Werror",
"-Wextra",
],
target: {
android: {
cflags: [
"-D_FILE_OFFSET_BITS=64",
],
},
},
}
cc_library_headers {
name: "libbase_headers",
vendor_available: true,
recovery_available: true,
host_supported: true,
native_bridge_supported: true,
export_include_dirs: ["include"],
target: {
linux_bionic: {
enabled: true,
},
windows: {
enabled: true,
},
},
}
cc_defaults {
name: "libbase_defaults",
defaults: ["libbase_cflags_defaults"],
srcs: [
"abi_compatibility.cpp",
"chrono_utils.cpp",
"cmsg.cpp",
"file.cpp",
"liblog_symbols.cpp",
"logging.cpp",
"mapped_file.cpp",
"parsebool.cpp",
"parsenetaddress.cpp",
"process.cpp",
"properties.cpp",
"stringprintf.cpp",
"strings.cpp",
"threads.cpp",
"test_utils.cpp",
],
static: {
cflags: ["-DNO_LIBLOG_DLSYM"],
},
cppflags: ["-Wexit-time-destructors"],
shared_libs: ["liblog"],
target: {
android: {
sanitize: {
misc_undefined: ["integer"],
},
},
linux: {
srcs: [
"errors_unix.cpp",
],
},
darwin: {
srcs: [
"errors_unix.cpp",
],
},
linux_bionic: {
enabled: true,
},
windows: {
srcs: [
"errors_windows.cpp",
"utf8.cpp",
],
exclude_srcs: [
"cmsg.cpp",
],
enabled: true,
},
},
}
cc_library {
name: "libbase",
defaults: ["libbase_defaults"],
vendor_available: true,
recovery_available: true,
host_supported: true,
native_bridge_supported: true,
vndk: {
enabled: true,
support_system_process: true,
},
header_libs: [
"libbase_headers",
],
export_header_lib_headers: ["libbase_headers"],
static_libs: ["fmtlib"],
whole_static_libs: ["fmtlib"],
export_static_lib_headers: ["fmtlib"],
}
cc_library_static {
name: "libbase_ndk",
defaults: ["libbase_defaults"],
sdk_version: "current",
stl: "c++_static",
export_include_dirs: ["include"],
static_libs: ["fmtlib_ndk"],
whole_static_libs: ["fmtlib_ndk"],
export_static_lib_headers: ["fmtlib_ndk"],
}
// Tests
// ------------------------------------------------------------------------------
cc_test {
name: "libbase_test",
defaults: ["libbase_cflags_defaults"],
host_supported: true,
srcs: [
"cmsg_test.cpp",
"endian_test.cpp",
"errors_test.cpp",
"expected_test.cpp",
"file_test.cpp",
"logging_test.cpp",
"macros_test.cpp",
"mapped_file_test.cpp",
"no_destructor_test.cpp",
"parsedouble_test.cpp",
"parsebool_test.cpp",
"parseint_test.cpp",
"parsenetaddress_test.cpp",
"process_test.cpp",
"properties_test.cpp",
"result_test.cpp",
"scopeguard_test.cpp",
"stringprintf_test.cpp",
"strings_test.cpp",
"test_main.cpp",
"test_utils_test.cpp",
],
target: {
android: {
sanitize: {
misc_undefined: ["integer"],
},
},
linux: {
srcs: ["chrono_utils_test.cpp"],
},
windows: {
srcs: ["utf8_test.cpp"],
cflags: ["-Wno-unused-parameter"],
enabled: true,
},
},
local_include_dirs: ["."],
shared_libs: ["libbase"],
compile_multilib: "both",
multilib: {
lib32: {
suffix: "32",
},
lib64: {
suffix: "64",
},
},
test_suites: ["device-tests"],
}
cc_benchmark {
name: "libbase_benchmark",
defaults: ["libbase_cflags_defaults"],
srcs: ["format_benchmark.cpp"],
shared_libs: ["libbase"],
compile_multilib: "both",
multilib: {
lib32: {
suffix: "32",
},
lib64: {
suffix: "64",
},
},
}