//
// Copyright (C) 2021 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: ["Android-Apache-2.0"],
}

blueprint_go_binary {
    name: "compliance_checkmetadata",
    srcs: ["cmd/checkmetadata/checkmetadata.go"],
    deps: [
        "compliance-module",
        "projectmetadata-module",
        "soong-response",
    ],
    testSrcs: ["cmd/checkmetadata/checkmetadata_test.go"],
}

blueprint_go_binary {
    name: "compliance_checkshare",
    srcs: ["cmd/checkshare/checkshare.go"],
    deps: [
        "compliance-module",
        "soong-response",
    ],
    testSrcs: ["cmd/checkshare/checkshare_test.go"],
}

blueprint_go_binary {
    name: "compliancenotice_shippedlibs",
    srcs: ["cmd/shippedlibs/shippedlibs.go"],
    deps: [
        "compliance-module",
        "soong-response",
    ],
    testSrcs: ["cmd/shippedlibs/shippedlibs_test.go"],
}

blueprint_go_binary {
    name: "compliance_listshare",
    srcs: ["cmd/listshare/listshare.go"],
    deps: [
        "compliance-module",
        "soong-response",
    ],
    testSrcs: ["cmd/listshare/listshare_test.go"],
}

blueprint_go_binary {
    name: "compliance_dumpgraph",
    srcs: ["cmd/dumpgraph/dumpgraph.go"],
    deps: [
        "compliance-module",
        "soong-response",
    ],
    testSrcs: ["cmd/dumpgraph/dumpgraph_test.go"],
}

blueprint_go_binary {
    name: "compliance_dumpresolutions",
    srcs: ["cmd/dumpresolutions/dumpresolutions.go"],
    deps: [
        "compliance-module",
        "soong-response",
    ],
    testSrcs: ["cmd/dumpresolutions/dumpresolutions_test.go"],
}

blueprint_go_binary {
    name: "htmlnotice",
    srcs: ["cmd/htmlnotice/htmlnotice.go"],
    deps: [
        "compliance-module",
        "blueprint-deptools",
        "soong-response",
    ],
    testSrcs: ["cmd/htmlnotice/htmlnotice_test.go"],
}

blueprint_go_binary {
    name: "compliance_rtrace",
    srcs: ["cmd/rtrace/rtrace.go"],
    deps: [
        "compliance-module",
        "soong-response",
    ],
    testSrcs: ["cmd/rtrace/rtrace_test.go"],
}

blueprint_go_binary {
    name: "textnotice",
    srcs: ["cmd/textnotice/textnotice.go"],
    deps: [
        "compliance-module",
        "blueprint-deptools",
        "soong-response",
    ],
    testSrcs: ["cmd/textnotice/textnotice_test.go"],
}

blueprint_go_binary {
    name: "xmlnotice",
    srcs: ["cmd/xmlnotice/xmlnotice.go"],
    deps: [
        "compliance-module",
        "blueprint-deptools",
        "soong-response",
    ],
    testSrcs: ["cmd/xmlnotice/xmlnotice_test.go"],
}

bootstrap_go_package {
    name: "compliance-module",
    srcs: [
        "condition.go",
        "conditionset.go",
        "doc.go",
        "graph.go",
        "noticeindex.go",
        "policy_policy.go",
        "policy_resolve.go",
        "policy_resolvenotices.go",
        "policy_resolveshare.go",
        "policy_resolveprivacy.go",
        "policy_shareprivacyconflicts.go",
        "policy_shipped.go",
        "policy_walk.go",
        "readgraph.go",
        "resolution.go",
        "resolutionset.go",
    ],
    testSrcs: [
        "condition_test.go",
        "conditionset_test.go",
        "readgraph_test.go",
        "policy_policy_test.go",
        "policy_resolve_test.go",
        "policy_resolvenotices_test.go",
        "policy_resolveshare_test.go",
        "policy_resolveprivacy_test.go",
        "policy_shareprivacyconflicts_test.go",
        "policy_shipped_test.go",
        "policy_walk_test.go",
        "resolutionset_test.go",
        "test_util.go",
    ],
    deps: [
        "compliance-test-fs-module",
        "projectmetadata-module",
        "golang-protobuf-proto",
        "golang-protobuf-encoding-prototext",
        "license_metadata_proto",
    ],
    pkgPath: "android/soong/tools/compliance",
}
