|  | // | 
|  | // Copyright (C) 2008-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. | 
|  | // | 
|  |  | 
|  | liblog_sources = [ | 
|  | "config_read.c", | 
|  | "config_write.c", | 
|  | "local_logger.c", | 
|  | "log_event_list.c", | 
|  | "log_event_write.c", | 
|  | "log_ratelimit.cpp", | 
|  | "logger_lock.c", | 
|  | "logger_name.c", | 
|  | "logger_read.c", | 
|  | "logger_write.c", | 
|  | "logprint.c", | 
|  | "stderr_write.c", | 
|  | ] | 
|  | liblog_host_sources = [ | 
|  | "fake_log_device.c", | 
|  | "fake_writer.c", | 
|  | ] | 
|  | liblog_target_sources = [ | 
|  | "event_tag_map.cpp", | 
|  | "log_time.cpp", | 
|  | "properties.c", | 
|  | "pmsg_reader.c", | 
|  | "pmsg_writer.c", | 
|  | "logd_reader.c", | 
|  | "logd_writer.c", | 
|  | ] | 
|  |  | 
|  | cc_library_headers { | 
|  | name: "liblog_headers", | 
|  | host_supported: true, | 
|  | vendor_available: true, | 
|  | export_include_dirs: ["include"], | 
|  | target: { | 
|  | windows: { | 
|  | enabled: true, | 
|  | }, | 
|  | linux_bionic: { | 
|  | enabled: true, | 
|  | }, | 
|  | vendor: { | 
|  | override_export_include_dirs: ["include_vndk"], | 
|  | }, | 
|  | }, | 
|  | } | 
|  |  | 
|  | // Shared and static library for host and device | 
|  | // ======================================================== | 
|  | cc_library { | 
|  | name: "liblog", | 
|  | host_supported: true, | 
|  |  | 
|  | srcs: liblog_sources, | 
|  |  | 
|  | target: { | 
|  | host: { | 
|  | srcs: liblog_host_sources, | 
|  | cflags: ["-DFAKE_LOG_DEVICE=1"], | 
|  | }, | 
|  | android: { | 
|  | srcs: liblog_target_sources, | 
|  | // AddressSanitizer runtime library depends on liblog. | 
|  | sanitize: { | 
|  | address: false, | 
|  | }, | 
|  | }, | 
|  | windows: { | 
|  | srcs: ["uio.c"], | 
|  | enabled: true, | 
|  | }, | 
|  | not_windows: { | 
|  | srcs: ["event_tag_map.cpp"], | 
|  | }, | 
|  | linux_bionic: { | 
|  | enabled: true, | 
|  | }, | 
|  | }, | 
|  |  | 
|  | header_libs: ["liblog_headers"], | 
|  | export_header_lib_headers: ["liblog_headers"], | 
|  |  | 
|  | cflags: [ | 
|  | "-Werror", | 
|  | "-fvisibility=hidden", | 
|  | // This is what we want to do: | 
|  | //  liblog_cflags := $(shell \ | 
|  | //   sed -n \ | 
|  | //       's/^\([0-9]*\)[ \t]*liblog[ \t].*/-DLIBLOG_LOG_TAG=\1/p' \ | 
|  | //       $(LOCAL_PATH)/event.logtags) | 
|  | // so make sure we do not regret hard-coding it as follows: | 
|  | "-DLIBLOG_LOG_TAG=1006", | 
|  | "-DSNET_EVENT_LOG_TAG=1397638484", | 
|  | ], | 
|  | logtags: ["event.logtags"], | 
|  | compile_multilib: "both", | 
|  | } | 
|  |  | 
|  | ndk_headers { | 
|  | name: "liblog_ndk_headers", | 
|  | from: "include/android", | 
|  | to: "android", | 
|  | srcs: ["include/android/log.h"], | 
|  | license: "NOTICE", | 
|  | } | 
|  |  | 
|  | ndk_library { | 
|  | name: "liblog", | 
|  | symbol_file: "liblog.map.txt", | 
|  | first_version: "9", | 
|  | unversioned_until: "current", | 
|  | } | 
|  |  | 
|  | llndk_library { | 
|  | name: "liblog", | 
|  | symbol_file: "liblog.map.txt", | 
|  | unversioned: true, | 
|  | export_include_dirs: ["include_vndk"], | 
|  | } |