// 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,perfetto.protos.DisplayVideoConfig," +

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

filegroup {
    name: "perfetto_cpp_blob_emitter",
    srcs: [
        "python/tools/cpp_blob_emitter.py",
    ],
}
