blob: f25c6542cec27e030651e0df8f450ab70a308038 [file] [log] [blame]
# Copyright (C) 2017 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("//build_overrides/build.gni")
import("../ipc//ipc_library.gni")
config("tracing_config") {
include_dirs = [
"include",
perfetto_root_path,
]
}
# Core tracing library, platform independent, no transport layer.
source_set("tracing") {
all_dependent_configs = [ ":tracing_config" ]
deps = [
"../perfetto_base",
]
sources = [
"include/tracing/core/basic_types.h",
"include/tracing/core/data_source_config.h",
"include/tracing/core/data_source_descriptor.h",
"include/tracing/core/producer.h",
"include/tracing/core/service.h",
"include/tracing/core/shared_memory.h",
"src/core/service_impl.cc",
"src/core/service_impl.h",
]
}
# IPC service definitions.
ipc_library("ipc_protos") {
proto_in_dir = perfetto_root_path
extra_configs = [ "../ipc:config" ]
sources = [
"src/ipc/data_source_config.proto",
"src/ipc/data_source_descriptor.proto",
"src/ipc/producer_port.proto",
]
}
# Posix specialization of the tracing library for Linux/Android/Mac. Provides
# an IPC transport over a UNIX domain socket.
source_set("ipc") {
sources = [
"include/tracing/ipc/producer_ipc_client.h",
"include/tracing/ipc/service_ipc_host.h",
"src/ipc/posix_shared_memory.cc",
"src/ipc/posix_shared_memory.h",
"src/ipc/producer/producer_ipc_client_impl.cc",
"src/ipc/producer/producer_ipc_client_impl.h",
"src/ipc/service/producer_ipc_service.cc",
"src/ipc/service/producer_ipc_service.h",
"src/ipc/service/service_ipc_host_impl.cc",
"src/ipc/service/service_ipc_host_impl.h",
]
deps = [
":ipc_protos",
":tracing",
"../ipc",
"../perfetto_base",
]
}
executable("tracing_unittests") {
testonly = true
deps = [
":ipc",
":tracing",
"../gn:default_deps",
"../gn:gtest_deps",
"../perfetto_base",
"../perfetto_base:test_support",
]
sources = [
"src/core/service_impl_unittest.cc",
"src/ipc/posix_shared_memory_unittest.cc",
"src/test/test_shared_memory.cc",
"src/test/test_shared_memory.h",
]
}
executable("tracing_test") {
testonly = true
deps = [
":ipc",
":ipc_protos",
":tracing",
"../gn:default_deps",
"../ipc",
"../perfetto_base",
"../perfetto_base:test_support",
]
sources = [
"src/test/ipc_test.cc",
]
}
if (!build_with_chromium) {
executable("tracing_benchmarks") {
testonly = true
deps = [
"../gn:default_deps",
"//buildtools:benchmark",
]
sources = [
"src/test/hello_world_benchmark.cc",
]
}
}