//
// 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: "checkshare",
    srcs: ["cmd/checkshare.go"],
    deps: ["compliance-module"],
    testSrcs: ["cmd/checkshare_test.go"],
}

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

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

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

bootstrap_go_package {
    name: "compliance-module",
    srcs: [
        "actionset.go",
        "condition.go",
        "conditionset.go",
        "doc.go",
        "graph.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: [
        "golang-protobuf-proto",
        "golang-protobuf-encoding-prototext",
        "license_metadata_proto",
    ],
    pkgPath: "compliance",
}
