// Copyright 2017 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.

package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "frameworks_av_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["frameworks_av_license"],
}

cc_defaults {
    name: "libmediautils_defaults",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wextra",
    ],
    sanitize: {
        cfi: true,
        integer_overflow: true,
    },
    target: {
        host: {
            sanitize: {
                cfi: false,
            },
        },
    },
}

filegroup {
    name: "libmediautils_core_srcs",
    srcs: [
        "AImageReaderUtils.cpp",
        "BatteryNotifier.cpp",
        "ISchedulingPolicyService.cpp",
        "Library.cpp",
        "MediaUtilsDelayed.cpp",
        "MethodStatistics.cpp",
        "Process.cpp",
        "ProcessInfo.cpp",
        "SchedulingPolicyService.cpp",
        "ServiceUtilities.cpp",
        "ThreadSnapshot.cpp",
        "TimeCheck.cpp",
        "TimerThread.cpp",
    ],
}

cc_library_headers {
    name: "libmediautils_headers",
    host_supported: true,
    vendor_available: true, // required for platform/hardware/interfaces
    shared_libs: [
        "liblog",
    ],
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
}


cc_library {
    name: "libmediautils",
    host_supported: true,
    defaults: ["libmediautils_defaults"],
    srcs: [
        ":libmediautils_core_srcs",
    ],
    static_libs: [
        "libbatterystats_aidl",
        "libprocessinfoservice_aidl",
    ],
    shared_libs: [
        "libaudioclient_aidl_conversion",
        "libaudioutils", // for clock.h, Statistics.h
        "libbase",
        "libbinder",
        "libcutils",
        "libhidlbase",
        "liblog",
        "libpermission",
        "libutils",
        "android.hardware.graphics.bufferqueue@1.0",
        "android.hidl.token@1.0-utils",
        "packagemanager_aidl-cpp",
    ],
    export_static_lib_headers: [
        "libbatterystats_aidl",
    ],

    logtags: ["EventLogTags.logtags"],

    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
        "-Wthread-safety",
    ],

    export_shared_lib_headers: [
        "libpermission",
    ],

    required: [
        "libmediautils_delayed", // lazy loaded
    ],

    target: {
        android: {
            srcs: [
                "LimitProcessMemory.cpp",
                "MemoryLeakTrackUtil.cpp",
            ],
            static_libs: [
                "libc_malloc_debug_backtrace",
            ],
            include_dirs: [
                // For DEBUGGER_SIGNAL
                "system/core/debuggerd/include",
            ],
            header_libs: [
                "bionic_libc_platform_headers",
            ],
        },
    },

    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
}

cc_library {
    name: "libmediautils_delayed", // match with MEDIAUTILS_DELAYED_LIBRARY_NAME
    host_supported: true,
    defaults: ["libmediautils_defaults"],
    srcs: [
        "MediaUtilsDelayedLibrary.cpp",
    ],
    shared_libs: [
        "liblog",
        "libutils",
        "libutilscallstack",
    ],
}

cc_library {
    name: "libmediautils_vendor",
    defaults: ["libmediautils_defaults"],
    vendor_available: true, // required for platform/hardware/interfaces
    srcs: [
        "MemoryLeakTrackUtil.cpp",
    ],

    shared_libs: [
        "liblog",
        "libutils",
    ],

    static_libs: [
        "libc_malloc_debug_backtrace",
    ],

    header_libs: [
        "bionic_libc_platform_headers",
    ],

    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
}
