# Copyright (C) 2019 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("perfetto.gni")

perfetto_benchmarks_targets = [
  "gn:default_deps",
  "src/base:benchmarks",
  "src/kallsyms:benchmarks",
  "src/protozero:benchmarks",
  "src/protozero/filtering:benchmarks",
  "src/shared_lib/test:benchmarks",
  "src/trace_processor/containers:benchmarks",
  "src/trace_processor/db:benchmarks",
  "src/trace_processor/rpc:benchmarks",
  "src/trace_processor/sqlite:benchmarks",
  "src/trace_processor/tables:benchmarks",
  "src/trace_processor/util:benchmarks",
  "src/traced/probes/ftrace:benchmarks",
  "src/tracing:benchmarks",
  "src/tracing/service:benchmarks",
  "test:benchmark_main",
  "test:end_to_end_benchmarks",
]

if (enable_perfetto_heapprofd) {
  perfetto_benchmarks_targets += [ "src/profiling/memory:benchmarks" ]
}
