//
// 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.
//

// ==========================================================
// Build the library for use on the host
// ==========================================================
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
}

enum_protos = [
    "enums/adservices/fledge/*.proto",
    "enums/adservices/measurement/*.proto",
    "enums/app/**/*.proto",
    "enums/contexthub/*.proto",
    "enums/debug/*.proto",
    "enums/hardware/**/*.proto",
    "enums/hotword/*.proto",
    "enums/media/**/*.proto",
    "enums/mms/*.proto",
    "enums/nearby/*.proto",
    "enums/net/*.proto",
    "enums/neuralnetworks/*.proto",
    "enums/os/*.proto",
    "enums/server/*.proto",
    "enums/server/display/*.proto",
    "enums/server/job/*.proto",
    "enums/server/location/*.proto",
    "enums/service/*.proto",
    "enums/stats/*.proto",
    "enums/stats/accessibility/*.proto",
    "enums/stats/docsui/*.proto",
    "enums/stats/hdmi/*.proto",
    "enums/stats/intelligence/*.proto",
    "enums/stats/location/*.proto",
    "enums/stats/mediametrics/*.proto",
    "enums/stats/mediaprovider/*.proto",
    "enums/stats/mobiledatadownload/*.proto",
    "enums/stats/otaupdate/*.proto",
    "enums/stats/privacysignals/*.proto",
    "enums/stats/safetycenter/*.proto",
    "enums/stats/storage/*.proto",
    "enums/stats/sysui/*.proto",
    "enums/stats/tls/*.proto",
    "enums/stats/tv/*.proto",
    "enums/stats/wm/*.proto",
    "enums/system/**/*.proto",
    "enums/telecomm/*.proto",
    "enums/telephony/*.proto",
    "enums/uwb/*.proto",
    "enums/view/*.proto",
    "enums/wifi/*.proto",
    ":data_stall_event_proto",
    ":device_policy_proto",
    ":dns_resolver_proto",
    ":launcher_proto",
    ":network_stack_proto",
    ":connectivity_service_proto",
    ":srcs_bluetooth_protos",
    ":srcs_bluetooth_leaudio_protos",
    ":style_proto",
    ":tethering_proto",
    ":text_classifier_proto",
]

atom_protos = [
    "atoms.proto",
    "attribution_node.proto",
    "atoms/gps/*.proto",
    "atoms/adservices/*.proto",
    "atoms/expresslog/*.proto",
    "atoms/providers/mediaprovider/*.proto",
    "atoms/wifi/*.proto",
    "atoms/bluetooth/*.proto",
]

cc_library_host_shared {
    name: "libstats_proto_host",
    srcs: [
        "atom_field_options.proto",
        ":libstats_atom_message_protos",
    ] + enum_protos + atom_protos,

    proto: {
        type: "full",
        export_proto_headers: true,
        include_dirs: [
            "external/protobuf/src",
        ],
    },
}

filegroup {
    name: "libstats_atoms_proto",
    srcs: atom_protos,
}

filegroup {
    name: "libstats_internal_protos",
    srcs: [
        ":libstats_atoms_proto",
        "atom_field_options.proto",
    ],
}

filegroup {
    name: "libstats_atom_enum_protos",
    srcs: enum_protos,
}

filegroup {
    name: "libstats_atom_message_protos",
    srcs: [
        "message/*.proto",
    ],
}
