blob: 9ae9e95fcd95f58d56da8d6666e4d25732d8e3cd [file] [log] [blame]
# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/zircon/zx_library.gni")
template("trace_library") {
zx_library(target_name) {
forward_variables_from(invoker, "*")
sdk_headers = [
"lib/trace/internal/event_args.h",
"lib/trace/internal/event_common.h",
"lib/trace/internal/event_internal.h",
"lib/trace/internal/pairs_internal.h",
"lib/trace/internal/string_traits.h",
"lib/trace/event.h",
"lib/trace/event_args.h",
"lib/trace/observer.h",
]
# Header dependencies, not including the trace engine.
# <trace/internal/event_internal.h> has #include <trace-engine/instrumentation.h>.
public_deps += [
# <trace/observer.h> has #include <trace-engine/instrumentation.h> (already
# covered, <lib/async/cpp/wait.h>, <fit/function.h>, and <lib/zx/event.h>.
":trace-headersonly",
"//sdk/lib/fit",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/zx",
]
sources = [
"event.cc",
"observer.cc",
]
# Source dependencies, not including the trace engine.
deps += [
"//sdk/lib/fit",
"//zircon/system/ulib/async",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/zx",
]
}
}
set_defaults("trace_library") {
configs = default_common_binary_configs
}
config("trace_include") {
include_dirs = [ "include" ]
}
sdk_source_set("trace-headersonly") {
category = "partner"
sdk_name = "trace-headersonly"
public = [
"include/lib/trace/event.h",
"include/lib/trace/event_args.h",
"include/lib/trace/internal/event_args.h",
"include/lib/trace/internal/event_common.h",
"include/lib/trace/internal/event_internal.h",
"include/lib/trace/internal/pairs_internal.h",
"include/lib/trace/internal/string_traits.h",
"include/lib/trace/observer.h",
]
sdk_headers_for_internal_use = [
"include/lib/trace/internal/event_internal.h",
"include/lib/trace/internal/pairs_internal.h",
"include/lib/trace/internal/event_args.h",
"include/lib/trace/internal/event_common.h",
"include/lib/trace/internal/string_traits.h",
]
public_deps = [
"//sdk/lib/fit",
"//zircon/system/ulib/async",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/trace-engine:trace-engine-headersonly",
"//zircon/system/ulib/zx",
]
public_configs = [ ":trace_include" ]
}
# The default version for the normal case, and for the SDK.
# For the SDK this needs to be published as "source": We're implemented in
# C++ and C++ SDK libraries can't be published as "static".
# TODO(https://fxbug.dev/42097099): libtrace-engine.so is getting linked into places it shouldn't.
trace_library("trace") {
sdk_publishable = true
sdk = "source"
public_deps = [ "//zircon/system/ulib/trace-engine" ]
deps = [ "//zircon/system/ulib/trace-engine" ]
configs += [
# TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
"//build/config:Wno-conversion",
]
}
# A special version for programs and shared libraries that can't use
# libtrace-engine.so.
# N.B. Please verify that you really need this before using it.
# Generally you DON'T want to use this.
trace_library("trace-with-static-engine") {
sdk = "static"
public_deps = [ "//zircon/system/ulib/trace-engine:trace-engine-static" ]
deps = [ "//zircon/system/ulib/trace-engine:trace-engine-static" ]
# TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
}