# Copyright (C) 2021 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("misc_sql") {
  sources = [
    "trace_metadata.sql",
    "trace_stats.sql",
  ]
}

perfetto_amalgamated_sql_header("gen_amalgamated_sql_metrics") {
  deps = [
    ":misc_sql",
    "android",
    "chrome:chrome_sql",
    "common",
    "experimental",
    "webview",
  ]
  generated_header = "amalgamated_sql_metrics.h"
  namespace = "sql_metrics"
}
