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

subdirs = [
    "vts/performance",
]

cc_defaults {
    name: "libhwbinder_defaults",
    shared_libs: [
        "libbase",
        "liblog",
        "libcutils",
        "libutils",
    ],
    export_shared_lib_headers: [
        "libbase",
        "libutils",
    ],
    export_include_dirs: ["include"],
    include_dirs: ["frameworks/native/include"],

    vendor_available: true,
    vndk: {
        enabled: true,
        support_system_process: true,
    },
    clang: true,
    sanitize: {
        misc_undefined: ["integer"],
    },
    srcs: [
        "Binder.cpp",
        "BpHwBinder.cpp",
        "BufferedTextOutput.cpp",
        "Debug.cpp",
        "IInterface.cpp",
        "IPCThreadState.cpp",
        "Parcel.cpp",
        "ProcessState.cpp",
        "Static.cpp",
        "TextOutput.cpp",
    ],

    product_variables: {
        binder32bit: {
            cflags: ["-DBINDER_IPC_32BIT=1"],
        },
    },

    cflags: [
        "-Wall",
        "-Werror",
    ],
}

cc_library {
    name: "libhwbinder",
    defaults: [
        "libhwbinder_defaults",
        "hwbinder_pgo",
        "hwbinder_lto"
    ],
}

// Explicitly provide a no lto, no PGO variant, to workaround the issue that we
// can't detect non-lto users of the module in Android.mk.
// http://b/77320844
cc_library {
    name: "libhwbinder_noltopgo",
    defaults: [
        "libhwbinder_defaults",
    ],
}

// Provide pgo property to build hwbinder with PGO
cc_defaults {
    name: "hwbinder_pgo",
    pgo: {
        instrumentation: true,
        profile_file: "hwbinder/hwbinder.profdata",
        benchmarks: ["hwbinder"],
        enable_profile_use: true,
    },
}
// Provide lto property to build hwbinder with LTO
cc_defaults {
    name: "hwbinder_lto",
    target: {
        android: {
            lto: {
                thin: true,
            },
        },
    },
}
