// These targets are appended to the autogenerated Android.bp by tools/gen_android_bp.

java_library_host {
  name: "perfetto_config-full",
  proto: {
      type: "full",
  },
  srcs: [
    "protos/perfetto/config/perfetto_config.proto",
  ],
}

java_library_host {
  name: "perfetto_metrics-full",
  proto: {
      type: "full",
  },
  srcs: [
    "protos/perfetto/metrics/perfetto_merged_metrics.proto",
  ],
}

// This sample target shows how to use the perfetto client API from within the
// Android tree.
cc_binary {
  name: "libperfetto_client_example",
  srcs: [
    "test/client_api_example.cc",
  ],
  static_libs: [
    "libperfetto_client_experimental",
    "perfetto_trace_protos",
  ],
  shared_libs: [
    "libprotobuf-cpp-lite",
    "liblog",
  ],
  cflags: [
    "-DGOOGLE_PROTOBUF_NO_RTTI",
    "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
  ],
  defaults: [
    "perfetto_defaults",
  ],
}

cc_library_static {
    name: "libstatslog_perfetto",
    generated_sources: ["statslog_perfetto.cpp"],
    generated_headers: ["statslog_perfetto.h"],
    cflags: [
        "-Wall",
        "-Werror",
    ],
    export_generated_headers: ["statslog_perfetto.h"],
    shared_libs: [
        "libcutils",
        "liblog",
        "libstatssocket",
        "libutils",
    ],
}

genrule {
    name: "statslog_perfetto.h",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_perfetto.h --module perfetto --namespace perfetto,android_internal",
    out: [
        "statslog_perfetto.h",
    ],
}

genrule {
    name: "statslog_perfetto.cpp",
    tools: ["stats-log-api-gen"],
    cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_perfetto.cpp --module perfetto --namespace perfetto,android_internal --importHeader statslog_perfetto.h",
    out: [
        "statslog_perfetto.cpp",
    ],
}

sh_binary {
    name: "mm_events",
    src: "tools/mm_events",
}

package {
    default_applicable_licenses: ["external_perfetto_license"],
}

python_library {
    name: "perfetto-trace-processor-python",
    srcs: [
        ":perfetto-trace-processor-python-srcs",
    ],
    data: [
        ":perfetto-trace-processor-python-data",
    ],
    version: {
        py2: {
            enabled: false,
        },
        py3: {
            enabled: true,
        },
    },
    libs: [
        "libprotobuf-python",
    ],
    host_supported: true,
}

filegroup {
    name: "perfetto-trace-processor-python-srcs",
    srcs: ["src/trace_processor/python/perfetto/**/*.py"],
    path: "src/trace_processor/python",
}

filegroup {
    name: "perfetto-trace-processor-python-data",
    srcs: ["src/trace_processor/python/perfetto/**/*.descriptor*"],
    path: "src/trace_processor/python",
}

// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
    name: "external_perfetto_license",
    visibility: [":__subpackages__"],
    license_kinds: [
        "SPDX-license-identifier-Apache-2.0",
        "SPDX-license-identifier-BSD",
        "SPDX-license-identifier-CC-BY",
    ],
    license_text: [
        "LICENSE",
    ],
}
