# Copyright (C) 2022 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.

import("../../../../../gn/perfetto.gni")
import("../../../../../gn/perfetto_sql.gni")

assert(enable_perfetto_trace_processor_sqlite)

perfetto_sql_source_set("android") {
  sources = [
    "android_batt.sql",
    "android_binder.sql",
    "android_blocking_calls_cuj_metric.sql",
    "android_camera.sql",
    "android_camera_unagg.sql",
    "android_cpu.sql",
    "android_cpu_agg.sql",
    "android_cpu_raw_metrics_per_core.sql",
    "android_dma_heap.sql",
    "android_dvfs.sql",
    "android_fastrpc.sql",
    "android_frame_timeline_metric.sql",
    "android_gpu.sql",
    "android_hwcomposer.sql",
    "android_hwui_metric.sql",
    "android_hwui_threads.sql",
    "android_ion.sql",
    "android_irq_runtime.sql",
    "android_jank_cuj.sql",
    "android_lmk.sql",
    "android_lmk_reason.sql",
    "android_mem.sql",
    "android_mem_unagg.sql",
    "android_monitor_contention.sql",
    "android_multiuser.sql",
    "android_multiuser_populator.sql",
    "android_netperf.sql",
    "android_other_traces.sql",
    "android_package_list.sql",
    "android_powrails.sql",
    "android_proxy_power.sql",
    "android_rt_runtime.sql",
    "android_simpleperf.sql",
    "android_startup.sql",
    "android_surfaceflinger.sql",
    "android_task_names.sql",
    "android_trace_quality.sql",
    "android_trusty_workqueues.sql",
    "composer_execution.sql",
    "composition_layers.sql",
    "counter_span_view_merged.sql",
    "cpu_info.sql",
    "display_metrics.sql",
    "frame_missed.sql",
    "g2d.sql",
    "g2d_duration.sql",
    "global_counter_span_view.sql",
    "gpu_counter_span_view.sql",
    "jank/cujs.sql",
    "jank/cujs_boundaries.sql",
    "jank/frames.sql",
    "jank/internal/counters.sql",
    "jank/internal/derived_events.sql",
    "jank/internal/query_base.sql",
    "jank/internal/query_frame_slice.sql",
    "jank/params.sql",
    "jank/query_functions.sql",
    "jank/relevant_slices.sql",
    "jank/relevant_threads.sql",
    "jank/slices.sql",
    "java_heap_histogram.sql",
    "java_heap_stats.sql",
    "mem_stats_priority_breakdown.sql",
    "p_state.sql",
    "power_drain_in_watts.sql",
    "power_profile_data.sql",
    "power_profile_data/barbet.sql",
    "power_profile_data/bluejay.sql",
    "power_profile_data/blueline.sql",
    "power_profile_data/bonito.sql",
    "power_profile_data/bramble.sql",
    "power_profile_data/coral.sql",
    "power_profile_data/crosshatch.sql",
    "power_profile_data/flame.sql",
    "power_profile_data/marlin.sql",
    "power_profile_data/oriole.sql",
    "power_profile_data/raven.sql",
    "power_profile_data/redfin.sql",
    "power_profile_data/sargo.sql",
    "power_profile_data/sunfish.sql",
    "power_profile_data/taimen.sql",
    "power_profile_data/walleye.sql",
    "process_counter_span_view.sql",
    "process_counter_span_view.sql",
    "process_mem.sql",
    "process_metadata.sql",
    "process_oom_score.sql",
    "process_unagg_mem_view.sql",
    "profiler_smaps.sql",
    "span_view_stats.sql",
    "startup/gc_slices.sql",
    "startup/hsc.sql",
    "startup/launches.sql",
    "startup/launches_maxsdk28.sql",
    "startup/launches_minsdk29.sql",
    "startup/launches_minsdk33.sql",
    "startup/mcycles_per_launch.sql",
    "startup/slice_functions.sql",
    "startup/system_state.sql",
    "startup/thread_state_breakdown.sql",
    "unsymbolized_frames.sql",
  ]
}
