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

cc_defaults {
    name: "ms-tpm-20-ref-defaults",
    local_include_dirs: [
        "TPMCmd/Platform/include",
        "TPMCmd/Platform/include/prototypes",
        "TPMCmd/Simulator/include",
        "TPMCmd/Simulator/include/prototypes",
        "TPMCmd/tpm/include",
        "TPMCmd/tpm/include/Ossl",
        "TPMCmd/tpm/include/prototypes",
    ],
    device_supported: false,
    host_supported: true,
    shared_libs: [
        "libcrypto",
    ],
    cflags: [
        "-DMAX_SYM_DATA=256",
        "-DDEBUG=YES",
        "-DALG_CAMELLIA=ALG_NO",
        "-Wno-logical-op-parentheses",
        "-Wno-empty-body",
        "-Wno-missing-field-initializers",
        "-Wno-unused-parameter",
        "-Wno-typedef-redefinition",
    ],
}

cc_library {
    name: "ms-tpm-20-ref-lib",
    srcs: [
        "TPMCmd/Platform/src/*.c",
        "TPMCmd/Simulator/src/TPMCmdp.c",
        "TPMCmd/Simulator/src/TcpServer.c",
        "TPMCmd/tpm/src/command/**/*.c",
        "TPMCmd/tpm/src/crypt/*.c",
        "TPMCmd/tpm/src/crypt/ossl/*.c",
        "TPMCmd/tpm/src/events/*.c",
        "TPMCmd/tpm/src/main/*.c",
        "TPMCmd/tpm/src/subsystem/*.c",
        "TPMCmd/tpm/src/support/*.c",
        "TPMCmd/tpm/src/X509/*.c",
    ],
    export_include_dirs: [
        "TPMCmd/Platform/include",
        "TPMCmd/Platform/include/prototypes",
        "TPMCmd/Simulator/include",
        "TPMCmd/Simulator/include/prototypes",
        "TPMCmd/tpm/include",
        "TPMCmd/tpm/include/Ossl",
        "TPMCmd/tpm/include/prototypes",
    ],
    defaults: [ "ms-tpm-20-ref-defaults" ],
}

cc_binary_host {
    name: "ms-tpm-20-ref",
    srcs: [
        "TPMCmd/Simulator/src/TPMCmds.c",
    ],
    shared_libs: [
        "ms-tpm-20-ref-lib",
    ],
    defaults: [ "ms-tpm-20-ref-defaults" ],
}
