blob: 698721b65fa06ecfc87c01468f59845e208905e5 [file] [log] [blame]
Primiano Tucciae2879e2017-09-27 11:02:09 +09001# Copyright (C) 2017 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
Primiano Tuccia6166482017-11-20 13:05:45 +000015import("//ipc//ipc_library.gni")
16
Primiano Tuccice720022017-10-30 12:50:06 +000017config("tracing_config") {
18 include_dirs = [ "include" ]
19}
20
Primiano Tuccia6166482017-11-20 13:05:45 +000021# Core tracing library, platform independent, no transport layer.
Primiano Tuccice720022017-10-30 12:50:06 +000022source_set("tracing") {
23 all_dependent_configs = [ ":tracing_config" ]
Primiano Tuccid7d1be02017-10-30 17:41:34 +000024 deps += [ "//base" ]
Primiano Tuccice720022017-10-30 12:50:06 +000025 sources = [
Primiano Tuccid7d1be02017-10-30 17:41:34 +000026 "include/tracing/core/basic_types.h",
27 "include/tracing/core/data_source_config.h",
28 "include/tracing/core/data_source_descriptor.h",
29 "include/tracing/core/producer.h",
30 "include/tracing/core/service.h",
31 "include/tracing/core/shared_memory.h",
Primiano Tuccice720022017-10-30 12:50:06 +000032 "src/core/service_impl.cc",
Primiano Tuccid7d1be02017-10-30 17:41:34 +000033 "src/core/service_impl.h",
Primiano Tuccice720022017-10-30 12:50:06 +000034 ]
35}
36
Primiano Tuccia6166482017-11-20 13:05:45 +000037# IPC service definitions.
38ipc_library("ipc_protos") {
39 sources = [
40 "src/ipc/data_source_config.proto",
41 "src/ipc/data_source_descriptor.proto",
42 "src/ipc/producer_port.proto",
43 ]
44}
45
46# Posix specialization of the tracing library for Linux/Android/Mac. Provides
47# an IPC transport over a UNIX domain socket.
48source_set("ipc") {
49 sources = [
Primiano Tucci1d94e7d2017-11-20 14:45:16 +000050 "include/tracing/ipc/producer_ipc_client.h",
Primiano Tuccia6166482017-11-20 13:05:45 +000051 "include/tracing/ipc/service_ipc_host.h",
52 "src/ipc/posix_shared_memory.cc",
53 "src/ipc/posix_shared_memory.h",
Primiano Tucci1d94e7d2017-11-20 14:45:16 +000054 "src/ipc/producer/producer_ipc_client_impl.cc",
55 "src/ipc/producer/producer_ipc_client_impl.h",
Primiano Tuccia6166482017-11-20 13:05:45 +000056 "src/ipc/service/producer_ipc_service.cc",
57 "src/ipc/service/producer_ipc_service.h",
58 "src/ipc/service/service_ipc_host_impl.cc",
59 "src/ipc/service/service_ipc_host_impl.h",
60 ]
61 deps = [
62 ":ipc_protos",
63 ":tracing",
64 "//base",
65 ]
66}
67
Primiano Tuccice720022017-10-30 12:50:06 +000068executable("tracing_unittests") {
Primiano Tucciae2879e2017-09-27 11:02:09 +090069 testonly = true
Primiano Tucci0825bc82017-09-28 18:50:23 +010070 deps += [
Primiano Tuccia6166482017-11-20 13:05:45 +000071 ":ipc",
Primiano Tuccice720022017-10-30 12:50:06 +000072 ":tracing",
Primiano Tuccid7d1be02017-10-30 17:41:34 +000073 "//base",
74 "//base:test_support",
Hector Dearman88a10112017-10-12 11:07:10 +010075 "//buildtools:gmock",
76 "//buildtools:gtest",
77 "//buildtools:gtest_main",
Primiano Tucciae2879e2017-09-27 11:02:09 +090078 ]
79 sources = [
Primiano Tuccice720022017-10-30 12:50:06 +000080 "src/core/service_impl_unittest.cc",
Primiano Tucci69ca1262017-11-20 19:42:22 +000081 "src/ipc/posix_shared_memory_unittest.cc",
Primiano Tuccice720022017-10-30 12:50:06 +000082 "src/test/test_shared_memory.cc",
Primiano Tuccid7d1be02017-10-30 17:41:34 +000083 "src/test/test_shared_memory.h",
Primiano Tucciae2879e2017-09-27 11:02:09 +090084 ]
85}
Primiano Tucci0825bc82017-09-28 18:50:23 +010086
Primiano Tucci1d94e7d2017-11-20 14:45:16 +000087executable("tracing_test") {
88 testonly = true
89 deps += [
90 ":ipc",
Primiano Tuccif54cae42017-11-21 19:37:13 +000091 ":ipc_protos",
Primiano Tucci1d94e7d2017-11-20 14:45:16 +000092 ":tracing",
93 "//base",
94 "//base:test_support",
Primiano Tuccif54cae42017-11-21 19:37:13 +000095 "//ipc",
Primiano Tucci1d94e7d2017-11-20 14:45:16 +000096 ]
97 sources = [
98 "src/test/ipc_test.cc",
99 ]
100}
101
Primiano Tuccice720022017-10-30 12:50:06 +0000102executable("tracing_benchmarks") {
Hector Dearman88a10112017-10-12 11:07:10 +0100103 testonly = true
Primiano Tuccice720022017-10-30 12:50:06 +0000104 deps += [ "//buildtools:benchmark" ]
Hector Dearman88a10112017-10-12 11:07:10 +0100105 sources = [
Primiano Tuccice720022017-10-30 12:50:06 +0000106 "src/test/hello_world_benchmark.cc",
Hector Dearman88a10112017-10-12 11:07:10 +0100107 ]
108}