//
// Copyright (C) 2019 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.
//

// ==========================================================
// Native library to register a pull atom callback with statsd
// ==========================================================
cc_defaults {
    name: "libstatspull_defaults",
    srcs: [
        "stats_pull_atom_callback.cpp",
    ],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    export_include_dirs: ["include"],
    shared_libs: [
        "libbinder_ndk",
        "liblog",
        "libstatssocket",
    ],
    static_libs: [
        "libutils",
        "statsd-aidl-ndk_platform",
    ],
}
cc_library_shared {
    name: "libstatspull",
    defaults: [
        "libstatspull_defaults"
    ],
    // enumerate stable entry points for APEX use
    stubs: {
        symbol_file: "libstatspull.map.txt",
        versions: [
            "30",
        ],
    },
    apex_available: [
        "com.android.os.statsd",
        "test_com.android.os.statsd",
    ],

    stl: "libc++_static",

    // TODO(b/151102177): Enable it when the build error is fixed.
    header_abi_checker: {
        enabled: false,
    },
}

// ONLY USE IN TESTS.
cc_library_static {
    name: "libstatspull_private",
    defaults: [
        "libstatspull_defaults",
    ],
    visibility: [
        "//frameworks/base/apex/statsd/tests/libstatspull",
    ],
}

// Note: These unit tests only test PullAtomMetadata.
// For full E2E tests of libstatspull, use LibStatsPullTests
cc_test {
    name: "libstatspull_test",
    srcs: [
        "tests/pull_atom_metadata_test.cpp",
    ],
    shared_libs: [
        "libstatspull",
        "libstatssocket",
    ],
    test_suites: ["general-tests", "mts"],
    test_config: "libstatspull_test.xml",

    //TODO(b/153588990): Remove when the build system properly separates 
    //32bit and 64bit architectures.
    compile_multilib: "both",
    multilib: {
        lib64: {
            suffix: "64",
        },
        lib32: {
            suffix: "32",
        },
    },
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-missing-field-initializers",
        "-Wno-unused-variable",
        "-Wno-unused-function",
        "-Wno-unused-parameter",
    ],
    require_root: true,
}
