blob: f4b4de1df1838f465782206f41bd3284c49f0b53 [file] [log] [blame]
# Copyright 2020 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/components.gni")
import("//build/cpp/sdk_shared_library.gni")
import("//build/cpp/sdk_source_set.gni")
import("//build/cpp/sdk_static_library.gni")
import("//build/test.gni")
sdk_source_set("cpp") {
# TODO(https://fxbug.dev/42138060): Remove when Mac links OK against this.
if ((current_toolchain == "//build/toolchain:host_x64" && host_os == "mac") ||
(current_toolchain == "//build/toolchain:host_arm64" &&
host_os == "mac")) {
build_as_static = true
}
# Keep internal for now until the API stabilizes.
category = "internal"
sdk_name = "syslog_cpp"
include_base = "//sdk"
public_deps = [
"//sdk/lib/fit-promise",
"//sdk/lib/stdcompat",
]
sources = [
"log_level.h",
"log_settings.cc",
"log_settings.h",
"logging_backend.h",
"macros.cc",
"macros.h",
]
if (is_fuchsia) {
sources += [
"logging_backend_fuchsia.cc",
"logging_backend_fuchsia_globals.h",
]
deps = [
":backend_fuchsia_globals",
"//sdk/fidl/fuchsia.diagnostics.stream:fuchsia.diagnostics.stream_hlcpp",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//sdk/lib/fdio",
"//sdk/lib/stdcompat",
"//sdk/lib/syslog/structured_backend",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/async-loop:async-loop-cpp",
"//zircon/system/ulib/sync",
]
public_deps += [ "//zircon/system/ulib/zx" ]
} else {
sources += [
"host/encoder.cc",
"host/encoder.h",
"host/logging_backend.cc",
]
}
public_configs = [ "//sdk/config" ]
}
# TODO(b/300157652): Transitional no-op target
# Remove once all drivers have been migrated off
# syslog.
group("backend") {
visibility = [
"//src/camera/drivers/hw_accel/ge2d:*",
"//src/media/drivers/amlogic_decoder:*",
"//src/storage/fvm/driver:*",
"//vendor/*",
]
}
# TODO(b/300157652): Transitional no-op target
group("backend_host") {
deps = [ ":cpp" ]
}
sdk_shared_library("backend_fuchsia_globals") {
category = "partner"
libcxx_linkage = "static"
include_base = "//sdk"
symbols_api = "backend_fuchsia_globals.ifs"
sources = [
"logging_backend_fuchsia_globals.cc",
"logging_backend_fuchsia_globals.h",
]
deps = [ "//src/zircon/lib/zircon" ]
}
# TODO(b/300157652): Transitional no-op target. This will be removed when
# all targets have migrated to the newer build rules.
# This is needed for now to bring the implicit offer
# CML rules in client_includes, and to serve as a backend
# target for other repositories until the transition is finished
# (so they can be soft-transitioned).
sdk_source_set("backend_fuchsia_lib") {
category = "internal"
sdk_name = "syslog_cpp_backend_fuchsia_lib"
include_base = "//sdk"
data_deps = [ "//sdk/lib/syslog:client_includes" ]
deps = [ ":cpp" ]
}
test("logging_cpp_unittests") {
sources = [
"host/encoder.h",
"log_settings_unittest.cc",
"logging_unittest.cc",
]
deps = [
":cpp",
"//src/lib/fxl",
"//src/lib/fxl/test:gtest_main",
"//src/lib/uuid",
"//third_party/googletest:gmock",
"//third_party/googletest:gtest",
]
if (is_fuchsia) {
deps += [
"//sdk/fidl/fuchsia.diagnostics:fuchsia.diagnostics_hlcpp",
"//sdk/fidl/fuchsia.logger:fuchsia.logger_hlcpp",
"//src/diagnostics/lib/cpp-log-tester:cpp-log-tester",
"//src/lib/diagnostics/accessor2logger",
"//src/lib/fsl",
"//third_party/rapidjson",
"//zircon/system/ulib/async",
"//zircon/system/ulib/async:async-cpp",
"//zircon/system/ulib/async-loop:async-loop-cpp",
]
}
}
test("logging_cpp_unittests_structured") {
sources = [ "log_structure_unittest.cc" ]
deps = [
":cpp",
"//src/lib/files",
"//src/lib/fxl/test:gtest_main",
"//third_party/googletest:gtest",
]
}
fuchsia_unittest_component("logging-cpp-unittests") {
manifest = "meta/logging_cpp_unittests.cml"
deps = [ ":logging_cpp_unittests" ]
}
fuchsia_unittest_component("logging-cpp-unittests-structured") {
deps = [ ":logging_cpp_unittests_structured" ]
}
fuchsia_test_package("logging-cpp-tests") {
test_components = [
":logging-cpp-unittests",
":logging-cpp-unittests-structured",
]
test_specs = {
log_settings = {
max_severity = "FATAL"
}
}
}
group("tests") {
testonly = true
public_deps = [
":logging-cpp-tests",
":logging_cpp_unittests($host_toolchain)",
]
}