// Copyright (C) 2016-2020 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 "hardware_interfaces_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    default_applicable_licenses: ["hardware_interfaces_license"],
}

cc_library_static {
    name: "android.hardware.drm@1.0-helper",
    vendor_available: true,
    defaults: ["hidl_defaults"],
    srcs: [
        "SharedLibrary.cpp",
    ],
    cflags: [
        "-Werror",
        "-Wextra",
        "-Wall",
        "-Wthread-safety",
    ],
    shared_libs: [
        "liblog",
    ],
    header_libs: [
        "libutils_headers",
    ],
    export_header_lib_headers: [
        "libutils_headers",
    ],
    export_include_dirs: ["include"],
}

soong_config_module_type {
    name: "android_hardware_drm_1_0_multilib",
    module_type: "cc_defaults",
    config_namespace: "ANDROID",
    bool_variables: ["TARGET_ENABLE_MEDIADRM_64"],
    properties: ["compile_multilib"],
}

android_hardware_drm_1_0_multilib {
    name: "android.hardware.drm@1.0-multilib-lib",
    compile_multilib: "prefer32",
    soong_config_variables: {
        TARGET_ENABLE_MEDIADRM_64: {
            compile_multilib: "both",
        },
    },
}

android_hardware_drm_1_0_multilib {
    name: "android.hardware.drm@1.0-multilib-exe",
    compile_multilib: "prefer32",
    soong_config_variables: {
        TARGET_ENABLE_MEDIADRM_64: {
            compile_multilib: "first",
        },
    },
}

cc_defaults {
    name: "android.hardware.drm@1.0-service-defaults",
    proprietary: true,
    relative_install_path: "hw",
    include_dirs: ["hardware/interfaces/drm"],
    header_libs: ["media_plugin_headers"],
    static_libs: ["android.hardware.drm@1.0-helper"],

    shared_libs: [
        "android.hardware.drm@1.0",
        "android.hidl.memory@1.0",
        "libhidlbase",
        "libhardware",
        "liblog",
        "libutils",
        "libbinder",
    ],
}

//############ Build legacy drm service ############

cc_binary {
    name: "android.hardware.drm@1.0-service",
    defaults: [
        "android.hardware.drm@1.0-multilib-exe",
        "android.hardware.drm@1.0-service-defaults",
    ],
    init_rc: ["android.hardware.drm@1.0-service.rc"],
    srcs: ["service.cpp"],
}

//############ Build legacy drm lazy service ############

cc_binary {
    name: "android.hardware.drm@1.0-service-lazy",
    defaults: [
        "android.hardware.drm@1.0-multilib-exe",
        "android.hardware.drm@1.0-service-defaults",
    ],
    overrides: ["android.hardware.drm@1.0-service"],
    init_rc: ["android.hardware.drm@1.0-service-lazy.rc"],
    srcs: ["serviceLazy.cpp"],
}

//############ Build legacy drm impl library ############

cc_library_shared {
    name: "android.hardware.drm@1.0-impl",
    defaults: ["android.hardware.drm@1.0-multilib-lib"],
    proprietary: true,
    relative_install_path: "hw",

    include_dirs: [
        "frameworks/native/include",
        "frameworks/av/include",
    ],

    shared_libs: [
        "android.hardware.drm@1.0",
        "android.hidl.memory@1.0",
        "libbase",
        "libcutils",
        "libhidlbase",
        "libhidlmemory",
        "liblog",
        "libstagefright_foundation",
        "libutils",
    ],

    static_libs: ["android.hardware.drm@1.0-helper"],

    srcs: [
        "DrmFactory.cpp",
        "DrmPlugin.cpp",
        "CryptoFactory.cpp",
        "CryptoPlugin.cpp",
        "LegacyPluginPath.cpp",
        "TypeConvert.cpp",
    ],
}
