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

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

java_library {
    name: "perfetto_config-lite",
    proto: {
        type: "lite",
        local_include_dirs: ["."],
    },
    srcs: [
        "protos/perfetto/config/perfetto_config.proto",
    ],
}

java_library_host {
    name: "trace_summary-full",
    proto: {
        type: "full",
        canonical_path_from_root: false,
        local_include_dirs: ["."],
    },
    static_libs: [
        "libprotobuf-java-full",
    ],
    srcs: [
        ":perfetto_trace_summary_filegroup_proto",
    ],
    // b/267831518: Pin tradefed and dependencies to Java 11.
    java_version: "11",
}

java_library_host {
    name: "perfetto_trace-full",
    proto: {
        type: "full",
        local_include_dirs: ["."],
    },
    srcs: [
        "protos/perfetto/trace/perfetto_trace.proto",
    ],
    // b/267831518: Pin tradefed and dependencies to Java 11.
    java_version: "11",
}

java_library_host {
    name: "perfetto_metrics-full",
    proto: {
        type: "full",
        local_include_dirs: ["."],
    },
    srcs: [
        "protos/perfetto/metrics/perfetto_merged_metrics.proto",
    ],
    // b/267831518: Pin tradefed and dependencies to Java 11.
    java_version: "11",
}

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

package {
    default_applicable_licenses: ["external_perfetto_license"],
}

python_library {
    name: "perfetto-trace-processor-python",
    srcs: [
        ":perfetto-trace-processor-python-srcs",
        ":perfetto-trace-uri-resolver-python-srcs",
    ],
    data: [
        ":perfetto-trace-processor-python-data",
    ],
    libs: [
        "libprotobuf-python",
    ],
    host_supported: true,
}

filegroup {
    name: "perfetto-trace-uri-resolver-python-srcs",
    srcs: ["python/perfetto/trace_uri_resolver/*.py"],
    path: "python",
}

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

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

python_library {
    name: "perfetto-trace-proto-python",
    srcs: [
        ":perfetto-trace-proto-python-srcs",
    ],
    libs: [
        "libprotobuf-python",
    ],
    host_supported: true,
}

filegroup {
    name: "perfetto-trace-proto-python-srcs",
    srcs: [
        "python/perfetto/protos/perfetto/trace/*.py",
    ],
    path: "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",
    ],
}

gensrcs {
    name: "perfetto_trace_javastream_protos",
    srcs: [
        ":perfetto_javastream_filegroup_proto",
    ],
    tools: [
        "aprotoc",
        "protoc-gen-javastream",
        "soong_zip",
    ],
    cmd: "mkdir -p $(genDir)/$(in) " +
        "&& $(location aprotoc) " +
        "--plugin=$(location protoc-gen-javastream) " +

        "--javastream_opt=include_filter:perfetto.protos.TracePacket,perfetto.protos.ShellTransition,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogMessage,perfetto.protos.ProtoLogViewerConfig,perfetto.protos.ShellHandlerMapping,perfetto.protos.ShellHandlerMappings,perfetto.protos.ProtoLogGroup,perfetto.protos.ProtoLogConfig,perfetto.protos.DataSourceConfig,perfetto.protos.InternedString,perfetto.protos.InternedData,perfetto.protos.ProtoLogLevel,perfetto.protos.TestEvent,perfetto.protos.TestEvent.TestPayload,perfetto.protos.TestConfig,perfetto.protos.TestConfig.DummyFields,perfetto.protos.WinscopeExtensionsImpl,perfetto.protos.ViewCapture,perfetto.protos.AppWakelocksConfig,perfetto.protos.AppWakelockInfo,perfetto.protos.AppWakelockBundle," +

        // IME protos
        "perfetto.protos.ClientSideProto,perfetto.protos.DisplayCutoutProto,perfetto.protos.EditorInfoProto,perfetto.protos.ImeFocusControllerProto,perfetto.protos.InputConnectionCallProto,perfetto.protos.InputConnectionProto,perfetto.protos.InputMethodClientsTraceProto,perfetto.protos.InputMethodClientsTraceFileProto,perfetto.protos.InputMethodConfig,perfetto.protos.InputMethodManagerProto,perfetto.protos.InputMethodManagerServiceProto,perfetto.protos.InputMethodManagerServiceTraceProto,perfetto.protos.InputMethodManagerServiceTraceFileProto,perfetto.protos.InputMethodServiceProto,perfetto.protos.InputMethodServiceTraceProto,perfetto.protos.InputMethodServiceTraceFileProto,perfetto.protos.InsetsAnimationControlImplProto,perfetto.protos.InsetsControllerProto,perfetto.protos.InsetsProto,perfetto.protos.InsetsFrameProviderProto,perfetto.protos.InsetsSizeOverrideProto,perfetto.protos.InsetsSourceConsumerProto,perfetto.protos.InsetsSourceControlProto,perfetto.protos.InsetsSourceProto,perfetto.protos.InsetsStateProto,perfetto.protos.RectProto,perfetto.protos.SoftInputWindowProto,perfetto.protos.SurfaceControlProto,perfetto.protos.ViewRootImplProto,perfetto.protos.WindowLayoutParamsProto," +

        // WindowManager protos
        "perfetto.protos.ActivityInfoProto,perfetto.protos.ActivityRecordProto,perfetto.protos.AlphaAnimationSpecProto,perfetto.protos.AnimationAdapterProto,perfetto.protos.AnimationSpecProto,perfetto.protos.AppTransitionProto,perfetto.protos.BackNavigationProto,perfetto.protos.ConfigurationContainerProto,perfetto.protos.ConfigurationProto,perfetto.protos.DeviceConfigurationProto,perfetto.protos.DisplayAreaProto,perfetto.protos.DisplayContentProto,perfetto.protos.DisplayInfoProto,perfetto.protos.DisplayRotationProto,perfetto.protos.GlobalConfigurationProto,perfetto.protos.IdentifierProto,perfetto.protos.ImeInsetsSourceProviderProto,perfetto.protos.InsetsSourceProviderProto,perfetto.protos.KeyguardControllerProto,perfetto.protos.KeyguardPerDisplayProto,perfetto.protos.KeyguardServiceDelegateProto,perfetto.protos.LocalAnimationAdapterProto,perfetto.protos.LocaleProto,perfetto.protos.MoveAnimationSpecProto,perfetto.protos.PointProto,perfetto.protos.RemoteAnimationTargetProto,perfetto.protos.RemoteInsetsControlTargetProto,perfetto.protos.ResourcesConfigurationProto,perfetto.protos.RootWindowContainerProto,perfetto.protos.SurfaceAnimatorProto,perfetto.protos.TaskFragmentProto,perfetto.protos.TaskProto,perfetto.protos.WindowAnimationSpecProto,perfetto.protos.WindowConfigurationProto,perfetto.protos.WindowContainerChildProto,perfetto.protos.WindowContainerProto,perfetto.protos.WindowFramesProto,perfetto.protos.WindowManagerConfig,perfetto.protos.WindowManagerServicePatchProto,perfetto.protos.WindowManagerPolicyProto,perfetto.protos.WindowManagerServiceDumpProto,perfetto.protos.WindowManagerTraceEntry,perfetto.protos.WindowManagerTraceFileProto,perfetto.protos.WindowOrientationListenerProto,perfetto.protos.WindowStateAnimatorProto,perfetto.protos.WindowStateProto,perfetto.protos.WindowSurfaceControllerProto,perfetto.protos.WindowTokenProto,perfetto.protos.InsetsStateControllerProto,perfetto.protos.DisplayPolicyProto,perfetto.protos.DecorInsetsProto,perfetto.protos.DecorInsetsInfoProto,perfetto.protos.AppearanceRegionProto,perfetto.protos.SystemBarVisibilityOverrideProto,perfetto.protos.InsetsPolicyProto,perfetto.protos.InsetsControlTargetProto,perfetto.protos.DisplayFramesProto " +

        "--javastream_out=$(genDir)/$(in) " +
        "-Iexternal/protobuf/src " +
        "-Iexternal/perfetto " +
        "-I . $(in) " +
        "&& $(location soong_zip) " +
        "-jar -o $(out) -C $(genDir)/$(in) -D $(genDir)/$(in)",
    data: [
        ":libprotobuf-internal-protos",
    ],
    output_extension: "srcjar",
}

java_library {
    name: "perfetto_winscope-lite",
    proto: {
        type: "lite",
        include_dirs: ["external/protobuf/src"],
        canonical_path_from_root: false,
        local_include_dirs: ["."],
    },
    srcs: [
        ":libprotobuf-internal-descriptor-proto",
        ":perfetto_javastream_filegroup_proto",
    ],
    static_libs: [
        "libprotobuf-java-lite",
    ],
    sdk_version: "current",
    host_supported: true,
}

java_library {
    name: "perfetto_config_java_protos_system_server_current",
    srcs: [
        ":perfetto_config_filegroup_proto",
    ],
    static_libs: [
        "libprotobuf-java-lite",
    ],
    proto: {
        type: "lite",
        canonical_path_from_root: false,
        local_include_dirs: ["."],
    },
    sdk_version: "system_server_current",
    min_sdk_version: "35",
    apex_available: [
        "com.android.profiling",
    ],
}

prebuilt_etc {
    name: "perfetto_persistent_cfg.pbtxt",
    filename: "persistent_cfg.pbtxt",
    sub_dir: "perfetto",
    src: "persistent_cfg.pbtxt",
}

phony {
    name: "perfetto-extras",
    required: [
        "libperfetto_android_internal",
        "traced_perf",
        "trigger_perfetto",
    ],
}

filegroup {
    name: "heap_profile",
    srcs: [
        "tools/heap_profile",
    ],
}

aconfig_declarations {
    name: "perfetto_flags-aconfig",
    package: "perfetto.flags",
    container: "system",
    srcs: ["perfetto_flags.aconfig"],
}

cc_aconfig_library {
    name: "perfetto_flags_c_lib",
    aconfig_declarations: "perfetto_flags-aconfig",
    vendor_available: true,
    product_available: true,
    apex_available: [
        "//apex_available:anyapex",
        "//apex_available:platform",
        "com.android.profiling",
    ],
    min_sdk_version: "30",
}

// This target groups the dependencies on the android-tree rules that generate
// /etc/tracing_descriptors.gz and /vendor/etc/tracing_descriptors.gz
// Those targets are defined in /system/core and TODO(primiano): /vendor.
phony {
    name: "etc_system_tracing_proto_descriptors",
    target: {
        android: {
            required: [
                "system_tracing_protos_descriptor",
            ],
        },
    },
}

filegroup {
    name: "ravenwood-perfetto-policies",
    srcs: [
        "src/android_sdk/jni/ravenwood-perfetto-policies.txt",
    ],
}

// Host-only stubs for the small set of Android classes the perfetto Java
// SDK references that are missing from Soong's host module_current
// classpath (dalvik.annotation.optimization.{Critical,Fast}Native and
// android.system.SystemCleaner; plus android.util.{ArraySet,Log} and
// android.os.Process). Linked into the host variant of
// perfetto_trace_lib_java_defaults as a libs: dep so the stubs are visible
// to javac but not bundled into the jar; the Android variant continues
// to use the real platform classes from module_current.
java_library_host {
    name: "perfetto_trace_lib_host_stubs",
    srcs: [
        "src/android_sdk/java/host_stubs/**/*.java",
    ],
    // androidx/** is a test-only shim (AndroidJUnit4) for the standalone host
    // JUnit runner (tools/run_android_sdk_host_test), which compiles host_stubs
    // with JUnit on the classpath. It is not one of the SDK host shims this
    // library is meant to provide (see the comment above) and pulling it in here
    // drags in org.junit, which this library does not depend on -- breaking the
    // Soong host build. The Soong host/ravenwood build uses the real
    // androidx.test, so exclude it.
    exclude_srcs: [
        "src/android_sdk/java/host_stubs/androidx/**/*.java",
    ],
}

filegroup {
    name: "wattson_power_curves",
    srcs: [
        "src/trace_processor/plugins/wattson/data/**/*.csv",
    ],
    path: "src/trace_processor/plugins/wattson/data",
    visibility: ["//visibility:public"],
}
