//
// 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"],
}

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

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

blueprint_go_binary {
    name: "textnotice",
    srcs: ["cmd/textnotice.go"],
    deps: ["compliance-module"],
    testSrcs: ["cmd/textnotice_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: [
        "golang-protobuf-proto",
        "golang-protobuf-encoding-prototext",
        "license_metadata_proto",
    ],
    pkgPath: "compliance",
}
