# 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("perfetto.gni") # Used in production targets (i.e. testonly == false) for the FRIEND_TEST_* # macros. group("gtest_prod_config") { if (!build_with_chromium) { public_configs = [ "//buildtools:googletest_prod_config" ] } else { public_configs = [ ":gtest_config" ] } } config("gtest_config") { if (build_with_chromium) { include_dirs = [ "//testing/gtest/include" ] } } group("gtest_deps") { testonly = true public_configs = [ ":gtest_config" ] if (!build_with_chromium) { public_deps = [ "//buildtools:gmock", "//buildtools:gtest", ] } else { public_deps = [ "//testing/gmock", "//testing/gtest", ] } } group("gtest_main") { testonly = true if (!build_with_chromium) { public_deps = [ "//buildtools:gtest_main", ] } else { public_deps = [ "//testing/gtest:gtest_main", ] } } # protoc compiler library, for building protoc plugins on the host. if (current_toolchain == host_toolchain) { group("protoc_lib_deps") { if (!build_with_chromium) { public_deps = [ "//buildtools:protoc_lib", ] } else { public_deps = [ "//third_party/protobuf:protoc_lib", ] } } } group("protobuf_full_deps") { testonly = true if (!build_with_chromium) { public_deps = [ "//buildtools:protobuf_full", ] } else { public_deps = [ "//third_party/protobuf:protobuf_full", ] } } # All targets should depend on this target to inherit the right flags and # include directories. group("default_deps") { public_configs = [ ":default_config" ] if (!build_with_chromium) { public_deps = [ "//gn/standalone/libc++:deps", "//gn/standalone/sanitizers:deps", ] } } config("default_config") { defines = [ "PERFETTO_IMPLEMENTATION" ] if (build_with_chromium) { if (is_component_build) { defines += [ "PERFETTO_SHARED_LIBRARY" ] } defines += [ "PERFETTO_BUILD_WITH_CHROMIUM" ] if (is_android) { # Included for __android_log_print libs = [ "log" ] } } include_dirs = [ "..", "../include", ] } config("public_config") { include_dirs = [ "../include", # The below are needed due to generated protobuf headers including other # headers with a path relative to the perfetto root. "${root_gen_dir}/${perfetto_root_path}/protos", ] } config("fuzzer_config") { ldflags = [ "-fsanitize=fuzzer" ] } # For now JsonCpp is supported only in standalone builds outside of Android or # Chromium. group("jsoncpp_deps") { if (build_standalone) { public_configs = [ "//buildtools:jsoncpp_config" ] public_deps = [ "//buildtools:jsoncpp", ] } }