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

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
soong_namespace {
    imports: [
        "hardware/samsung_slsi-linaro/exynos/tee/kinibi520",
        "hardware/samsung_slsi-linaro/exynos/tee/kinibi510",
        "hardware/samsung_slsi-linaro/exynos/tee/kinibi500"
    ],
}

cc_defaults {
    name: "libkeymint.trustonic.default",
    vendor: true,
    srcs: [
        "src/AndroidKeyMintDevice.cpp",
        "src/AndroidKeyMintOperation.cpp",
        "src/AndroidRemotelyProvisionedComponentDevice.cpp",
        "src/AndroidSharedSecret.cpp",
        "src/AndroidSecureClock.cpp",
        "src/authlist.cpp",
        "src/cust_tee_keymint_impl.cpp",
        "src/cust_tee_keymint_utils.cpp",
        "src/km_encodings.cpp",
        "src/km_shared_util.cpp",
        "src/serialization.cpp",
        "src/tlcKeymint_if.cpp",
        "src/TrustonicKeymintDeviceImpl.cpp",
        //ExySp
        "src/exynos_ssp_hwctl.cpp"
    ],
    shared_libs: [
        "libhidlbase",
        "android.hardware.security.keymint-V2-ndk",
        "android.hardware.security.sharedsecret-V1-ndk",
        "android.hardware.security.secureclock-V1-ndk",
        "libbase",
        "libbinder_ndk",
        "libcrypto",
        "libcutils",
        "liblog",
        "libutils",
    ],
    static_libs: [
        "libMcClient_static",
    ],
    header_libs: [
        "trustonic-api-headers",
    ],
    local_include_dirs: [
     "include",
    ],
}

cc_binary {
    name: "android.hardware.security.keymint@1.0_tee-service",
    relative_install_path: "hw",
    defaults: ["hidl_defaults",
	"libkeymint.trustonic.default",
    ],
    init_rc: ["android.hardware.security.keymint@1.0_tee-service.rc"],

    vendor: true,
    cflags: [
        "-Wall",
        "-Wextra",
    ],
    shared_libs: [
        "android.hardware.security.keymint-V2-ndk",
        "android.hardware.security.sharedsecret-V1-ndk",
        "android.hardware.security.secureclock-V1-ndk",
        "libbase",
        "libbinder_ndk",
        "libcppbor_external",
        "liblog",
        "libutils",
    ],
    srcs: [
        "src/service.cpp",
    ],
    header_libs: [
        "trustonic-api-headers",
    ],
    required: [
	"android.hardware.hardware_keystore.xml",
    ],
}
