# 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)

# This target cannot be named "chrome" because it breaks Chrome on iOS from
# being built.
perfetto_sql_source_set("chrome_sql") {
  sources = [
    "actual_power_by_category.sql",
    "actual_power_by_rail_mode.sql",
    "chrome_args_class_names.sql",
    "chrome_event_metadata.sql",
    "chrome_histogram_hashes.sql",
    "chrome_input_to_browser_intervals.sql",
    "chrome_input_to_browser_intervals_base.sql",
    "chrome_input_to_browser_intervals_template.sql",
    "chrome_long_tasks.sql",
    "chrome_long_tasks_delaying_input_processing.sql",
    "chrome_performance_mark_hashes.sql",
    "chrome_processes.sql",
    "chrome_reliable_range.sql",
    "chrome_scroll_inputs_per_frame.sql",
    "chrome_scroll_jank_caused_by_scheduling.sql",
    "chrome_scroll_jank_v2.sql",
    "chrome_slice_names.sql",
    "chrome_stack_samples_for_task.sql",
    "chrome_tasks.sql",
    "chrome_tasks_delaying_input_processing.sql",
    "chrome_tasks_delaying_input_processing_base.sql",
    "chrome_tasks_delaying_input_processing_template.sql",
    "chrome_tasks_template.sql",
    "chrome_thread_slice.sql",
    "chrome_unsymbolized_args.sql",
    "chrome_user_event_hashes.sql",
    "cpu_time_by_category.sql",
    "cpu_time_by_rail_mode.sql",
    "estimated_power_by_category.sql",
    "estimated_power_by_rail_mode.sql",
    "event_latency_scroll_jank.sql",
    "event_latency_scroll_jank_cause.sql",
    "event_latency_to_breakdowns.sql",
    "experimental_reliable_chrome_tasks_delaying_input_processing.sql",
    "gesture_flow_event.sql",
    "gesture_flow_event_queuing_delay.sql",
    "gesture_jank.sql",
    "jank_utilities.sql",
    "rail_modes.sql",
    "scroll_flow_event.sql",
    "scroll_flow_event_queuing_delay.sql",
    "scroll_jank.sql",
    "scroll_jank_cause.sql",
    "scroll_jank_cause_blocking_task.sql",
    "scroll_jank_cause_blocking_touch_move.sql",
    "scroll_jank_cause_get_bitmap.sql",
    "scroll_jank_cause_queuing_delay.sql",
    "sufficient_chrome_processes.sql",
    "test_chrome_metric.sql",
    "touch_flow_event.sql",
    "touch_flow_event_queuing_delay.sql",
    "touch_jank.sql",
    "vsync_intervals.sql",
  ]
}
