//
// 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 = [
    "log_event_list.cpp",
    "log_event_write.cpp",
    "logger_lock.cpp",
    "logger_name.cpp",
    "logger_read.cpp",
    "logger_write.cpp",
    "logprint.cpp",
]
liblog_host_sources = [
    "fake_log_device.cpp",
    "fake_writer.cpp",
]
liblog_target_sources = [
    "event_tag_map.cpp",
    "log_time.cpp",
    "properties.cpp",
    "pmsg_reader.cpp",
    "pmsg_writer.cpp",
    "logd_reader.cpp",
    "logd_writer.cpp",
]

cc_library_headers {
    name: "liblog_headers",
    host_supported: true,
    vendor_available: true,
    recovery_available: true,
    native_bridge_supported: true,
    export_include_dirs: ["include"],
    system_shared_libs: [],
    stl: "none",
    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,
    recovery_available: true,
    native_bridge_supported: true,
    srcs: liblog_sources,

    target: {
        host: {
            srcs: liblog_host_sources,
            cflags: ["-DFAKE_LOG_DEVICE=1"],
        },
        android: {
            version_script: "liblog.map.txt",
            srcs: liblog_target_sources,
            // AddressSanitizer runtime library depends on liblog.
            sanitize: {
                address: false,
            },
        },
        android_arm: {
            // TODO: This is to work around b/24465209. Remove after root cause is fixed
            pack_relocations: false,
            ldflags: ["-Wl,--hash-style=both"],
        },
        windows: {
            enabled: true,
        },
        not_windows: {
            srcs: ["event_tag_map.cpp"],
        },
        linux_bionic: {
            enabled: true,
        },
    },

    header_libs: ["liblog_headers"],
    export_header_lib_headers: ["liblog_headers"],

    stubs: {
        symbol_file: "liblog.map.txt",
        versions: ["10000"],
    },

    // TODO(tomcherry): Renable this before release branch is cut
    header_abi_checker: {
        enabled: false,
    },

    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
        // 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",
    native_bridge_supported: true,
    symbol_file: "liblog.map.txt",
    export_include_dirs: ["include_vndk"],
}
