# 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("//build_overrides/build.gni") import("../../gn/perfetto.gni") import("../../gn/wasm.gni") source_set("base") { deps = [ "../../gn:default_deps", ] public_deps = [ "../../include/perfetto/base", ] sources = [ "file_utils.cc", "metatrace.cc", "paged_memory.cc", "string_splitter.cc", "string_utils.cc", "string_view.cc", "thread_checker.cc", "time.cc", "virtual_destructors.cc", ] # TODO(brucedawson): Enable these for Windows when possible. if (!is_win) { sources += [ "event.cc", "pipe.cc", "temp_file.cc", "thread_task_runner.cc", "unix_task_runner.cc", ] } if ((perfetto_build_standalone || perfetto_build_with_android) && (is_linux || is_android) && !is_wasm) { sources += [ "watchdog_posix.cc" ] } if (is_debug && perfetto_build_standalone && !is_wasm) { deps += [ ":debug_crash_stack_trace" ] } } # The "android_task_runner" should be depended on only by targets that # explicitly need it, as it pulls in a dependency on libandroid.so that in turn # pulls dozen of other .so(s). if (is_android && (perfetto_build_standalone || perfetto_build_with_android)) { source_set("android_task_runner") { deps = [ ":base", "../../gn:default_deps", ] sources = [ "android_task_runner.cc", ] all_dependent_configs = [ ":android_config" ] } config("android_config") { libs = [ "android" ] } } if (is_debug && perfetto_build_standalone && !is_wasm) { source_set("debug_crash_stack_trace") { sources = [ "debug_crash_stack_trace.cc", ] deps = [ "../../gn:default_deps", "../../include/perfetto/base", ] if (is_linux || is_android) { deps += [ "../../buildtools:libbacktrace" ] } cflags = [ "-Wno-deprecated" ] } } if (perfetto_build_with_ipc_layer) { # This cannot be in :base as it does not build on WASM. source_set("unix_socket") { deps = [ "../../gn:default_deps", "../../include/perfetto/base", ] sources = [ "unix_socket.cc", ] } } source_set("test_support") { testonly = true deps = [ ":base", "../../gn:default_deps", "../../gn:gtest_deps", ] sources = [ "test/utils.cc", "test/utils.h", "test/vm_test_utils.cc", "test/vm_test_utils.h", ] # The Perfetto task runner is not used on Windows. if (!is_win) { sources += [ "test/test_task_runner.cc", "test/test_task_runner.h", ] } } source_set("unittests") { testonly = true deps = [ ":base", ":test_support", "../../gn:default_deps", "../../gn:gtest_deps", ] if (is_android && (perfetto_build_standalone || perfetto_build_with_android)) { deps += [ ":android_task_runner" ] } sources = [ "circular_queue_unittest.cc", "no_destructor_unittest.cc", "optional_unittest.cc", "paged_memory_unittest.cc", "scoped_file_unittest.cc", "string_splitter_unittest.cc", "string_utils_unittest.cc", "string_view_unittest.cc", "string_writer_unittest.cc", "time_unittest.cc", "weak_ptr_unittest.cc", ] # TODO(brucedawson): Enable these for Windows when possible. if (!is_win) { sources += [ "task_runner_unittest.cc", "temp_file_unittest.cc", "thread_checker_unittest.cc", "thread_task_runner_unittest.cc", "utils_unittest.cc", ] } if (perfetto_build_standalone || perfetto_build_with_android) { sources += [ "unix_socket_unittest.cc" ] if (is_linux || is_android) { sources += [ "watchdog_unittest.cc" ] } } }