// Copyright (C) 2016 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 {
    default_applicable_licenses: ["system_hwservicemanager_license"],
}

// Added automatically by a large-scale-change
// http://go/android-license-faq
license {
    name: "system_hwservicemanager_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
    ],
    license_text: [
        "NOTICE",
    ],
}

cc_defaults {
    name: "hwservicemanager_defaults",
    cflags: [
        "-Wall",
        "-Wextra",
        "-Werror",
    ],
    shared_libs: [
        "libhidlbase",
        "liblog",
    ],
}

cc_defaults {
    name: "libhwservicemanager_shared_libs",
    shared_libs: [
        "libbase",
        "libhidl-gen-utils",
        "libselinux",
        "libutils",
        "libvintf",
    ],
}

cc_library_static {
    name: "libhwservicemanager",
    host_supported: true,
    defaults: [
        "hwservicemanager_defaults",
        "libhwservicemanager_shared_libs",
    ],
    srcs: [
        "AccessControl.cpp",
        "HidlService.cpp",
        "ServiceManager.cpp",
        "Vintf.cpp",
    ],
}

cc_defaults {
    name: "libtokenmanager_shared_libs",
    shared_libs: [
        "android.hidl.token@1.0",
        "libcrypto",
    ],
}

cc_library_static {
    name: "libtokenmanager",
    defaults: [
        "hwservicemanager_defaults",
        "libtokenmanager_shared_libs",
    ],
    srcs: [
        "TokenManager.cpp",
    ],
}

cc_binary {
    name: "hwservicemanager",
    defaults: [
        "hwservicemanager_defaults",
        "libhwservicemanager_shared_libs",
        "libtokenmanager_shared_libs",
    ],
    vintf_fragments: [
        "hwservicemanager.xml",
    ],
    init_rc: [
        "hwservicemanager.rc",
    ],
    srcs: [
        "service.cpp",
    ],
    shared_libs: [
        "libcutils",
    ],
    static_libs: [
        "libhwservicemanager",
        "libtokenmanager",
    ],
    bootstrap: true,
    system_ext_specific: true,
}

// Create symlink /system/bin/hwservicemanager -> /system/system_ext/bin/hwservicemanager
// Old vendor libraries (like libhidlbase) may require /system/bin/hwservicemanager to be present
install_symlink {
    name: "hwservicemanager_compat_symlink_module",
    symlink_target: "/system/system_ext/bin/hwservicemanager",
    // installed_location is relative to /system because that's the default partition for soong
    // modules, unless we add something like `system_ext_specific: true` like in hwservicemanager.
    installed_location: "bin/hwservicemanager",
}

cc_test {
    name: "hwservicemanager_test",
    host_supported: true,
    defaults: [
        "hwservicemanager_defaults",
        "libhwservicemanager_shared_libs",
    ],
    static_libs: [
        "libgmock",
        "libhwservicemanager",
    ],
    srcs: [
        "test_lazy.cpp",
    ],
    test_suites: ["device-tests"],
}
