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

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

cc_library_headers {
    name: "libbinder_headers",
    export_include_dirs: ["include"],
    vendor_available: true,
    host_supported: true,
    // TODO(b/153609531): remove when no longer needed.
    native_bridge_supported: true,

    header_libs: [
        "libbase_headers",
        "libbinder_headers_platform_shared",
        "libcutils_headers",
        "libutils_headers",
    ],
    export_header_lib_headers: [
        "libbase_headers",
        "libbinder_headers_platform_shared",
        "libcutils_headers",
        "libutils_headers",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.media",
        "com.android.media.swcodec",
    ],
    min_sdk_version: "29",
    target: {
        darwin: {
            enabled: false,
        },
    },
}

// These interfaces are android-specific implementation unrelated to binder
// transport itself and should be moved to AIDL or in domain-specific libs.
//
// Currently, these are only on system android (not vendor, not host)
// TODO(b/183654927) - move these into separate libraries
libbinder_device_interface_sources = [
    "IPermissionController.cpp",
    "PermissionCache.cpp",
    "PermissionController.cpp",
]
libbinder_no_vendor_interface_sources = [
    ":packagemanager_aidl",
]

cc_library {
    name: "libbinder",

    version_script: "libbinder.map",

    // for vndbinder
    vendor_available: true,
    vndk: {
        enabled: true,
    },
    double_loadable: true,
    host_supported: true,
    // TODO(b/153609531): remove when no longer needed.
    native_bridge_supported: true,

    // TODO(b/31559095): get headers from bionic on host
    include_dirs: [
        "bionic/libc/kernel/android/uapi/",
        "bionic/libc/kernel/uapi/",
    ],

    // libbinder does not offer a stable wire protocol.
    // if a second copy of it is installed, then it may break after security
    // or dessert updates. Instead, apex users should use libbinder_ndk.
    apex_available: [
        "//apex_available:platform",
        // TODO(b/166468760) remove these three
        "com.android.media.swcodec",
        "test_com.android.media.swcodec",
    ],

    srcs: [
        "Binder.cpp",
        "BpBinder.cpp",
        "BufferedTextOutput.cpp",
        "Debug.cpp",
        "IInterface.cpp",
        "IMemory.cpp",
        "IPCThreadState.cpp",
        "IResultReceiver.cpp",
        "IServiceManager.cpp",
        "IShellCallback.cpp",
        "LazyServiceRegistrar.cpp",
        "MemoryBase.cpp",
        "MemoryDealer.cpp",
        "MemoryHeapBase.cpp",
        "Parcel.cpp",
        "ParcelableHolder.cpp",
        "ParcelFileDescriptor.cpp",
        "PersistableBundle.cpp",
        "ProcessState.cpp",
        "RpcAddress.cpp",
        "RpcSession.cpp",
        "RpcServer.cpp",
        "RpcState.cpp",
        "Static.cpp",
        "Stability.cpp",
        "Status.cpp",
        "TextOutput.cpp",
        "Utils.cpp",
        ":libbinder_aidl",
    ] + libbinder_no_vendor_interface_sources,

    target: {
        android: {
            srcs: libbinder_device_interface_sources,

            // NOT static to keep the wire protocol unfrozen
            static: {
                enabled: false,
            },
        },
        vendor: {
            exclude_srcs: libbinder_device_interface_sources + libbinder_no_vendor_interface_sources,
        },
        darwin: {
            enabled: false,
        },
        host: {
            static_libs: [
                "libbase",
            ],
            srcs: [
                "ServiceManagerHost.cpp",
                "UtilsHost.cpp",
            ],
        },
    },

    aidl: {
        export_aidl_headers: true,
    },

    // TODO(b/142684679): for com.android.media which is compiled
    // as vendor and used as system code.
    use_apex_name_macro: true,

    cflags: [
        "-Wall",
        "-Wextra",
        "-Wextra-semi",
        "-Werror",
        "-Wzero-as-null-pointer-constant",
        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
        "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
    ],
    product_variables: {
        binder32bit: {
            cflags: ["-DBINDER_IPC_32BIT=1"],
        },

        debuggable: {
            cflags: ["-DBINDER_RPC_DEV_SERVERS"],
        },
    },

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

    header_libs: [
        "libbinder_headers",
    ],

    export_header_lib_headers: [
        "libbinder_headers",
    ],

    clang: true,
    sanitize: {
        misc_undefined: ["integer"],
    },
    min_sdk_version: "29",

    tidy: true,
    tidy_flags: [
        // Only check our headers
        "--header-filter=^.*frameworks/native/libs/binder/.*.h$",
    ],
    tidy_checks: [
        "-performance-no-int-to-ptr",
    ],
    tidy_checks_as_errors: [
        // Explicitly list the checks that should not occur in this module.
        "abseil-*",
        "android-*",
        "bugprone-*",
        "cert-*",
        "clang-analyzer-*",
        "google-*",
        "misc-*",
        "performance*",
        "portability*",
    ],

    pgo: {
        sampling: true,
        profile_file: "libbinder/libbinder.profdata",
    },
}

// AIDL interface between libbinder and framework.jar
filegroup {
    name: "libbinder_aidl",
    srcs: [
        "aidl/android/os/IClientCallback.aidl",
        "aidl/android/os/IServiceCallback.aidl",
        "aidl/android/os/IServiceManager.aidl",
        "aidl/android/os/ServiceDebugInfo.aidl",
    ],
    path: "aidl",
}

filegroup {
    name: "packagemanager_aidl",
    srcs: [
        "aidl/android/content/pm/IPackageChangeObserver.aidl",
        "aidl/android/content/pm/IPackageManagerNative.aidl",
        "aidl/android/content/pm/PackageChangeEvent.aidl",
    ],
    path: "aidl",
}

aidl_interface {
    name: "libbinder_aidl_test_stub",
    unstable: true,
    local_include_dir: "aidl",
    srcs: [":libbinder_aidl"],
    vendor_available: true,
    backend: {
        java: {
            enabled: false,
        },
    },
}

// TODO(b/184872979): remove once the Rust API is created.
cc_library {
    name: "libbinder_rpc_unstable",
    srcs: ["libbinder_rpc_unstable.cpp"],
    defaults: ["libbinder_ndk_host_user"],
    shared_libs: [
        "libbase",
        "libbinder",
        "libbinder_ndk",
        "libutils",
    ],

    // enumerate stable entry points, for apex use
    stubs: {
        symbol_file: "libbinder_rpc_unstable.map.txt",
    },

    // This library is intentionally limited to these targets, and it will be removed later.
    // Do not expand the visibility.
    visibility: [
        "//packages/modules/Virtualization/authfs:__subpackages__",
        "//packages/modules/Virtualization/compos",
        "//packages/modules/Virtualization/microdroid",
    ],
}

// libbinder historically contained additional interfaces that provided specific
// functionality in the platform but have nothing to do with binder itself. These
// are moved out of libbinder in order to avoid the overhead of their vtables.
// If you are working on or own one of these interfaces, the responsible things
// to would be:
// - give them a new home
// - convert them to AIDL instead of having manually written parceling code

cc_library {
    name: "libbatterystats_aidl",
    srcs: [
        "IBatteryStats.cpp",
    ],
    export_include_dirs: ["include_batterystats"],
    shared_libs: [
        "libbinder",
        "libutils",
    ],
}

cc_library {
    name: "libprocessinfoservice_aidl",
    srcs: [
        "IProcessInfoService.cpp",
        "ProcessInfoService.cpp",
    ],
    export_include_dirs: ["include_processinfo"],
    shared_libs: [
        "libbinder",
        "libutils",
        "liblog",
    ],
}

cc_library {
    name: "libactivitymanager_aidl",
    srcs: [
        "ActivityManager.cpp",
        "IActivityManager.cpp",
        "IUidObserver.cpp",
        ":activity_manager_procstate_aidl",
    ],
    export_include_dirs: ["include_activitymanager"],
    shared_libs: [
        "libbinder",
        "libutils",
        "liblog",
    ],
    aidl: {
        export_aidl_headers: true,
    },
}

cc_binary {
    name: "servicedispatcher",
    host_supported: false,
    srcs: [
        "servicedispatcher.cpp",
    ],
    shared_libs: [
        "libbase",
        "libbinder",
        "liblog",
        "libutils",
    ],
}
