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

assert(perfetto_build_standalone)

executable("tracebox") {
  deps = [
    "../../gn:default_deps",
    "../base",
    "../perfetto_cmd",
    "../perfetto_cmd:trigger_perfetto_cmd",
    "../traced/probes",
    "../traced/service",
    "../websocket_bridge:lib",
  ]
  if (enable_perfetto_traced_perf) {
    deps += [ "../profiling/perf:traced_perf_main" ]
  }
  sources = [ "tracebox.cc" ]
}
