blob: 505068535c748b333d5bcb442b946a74c5404548 [file] [log] [blame]
# See Project CHIP LICENSE file for licensing information.
import("//build_overrides/build.gni")
import("//build_overrides/chip.gni")
import("//build_overrides/pigweed.gni")
import("${chip_root}/src/platform/device.gni")
source_set("headers") {
public = [ "LogV.h" ]
}
if (current_os == "android") {
static_library("android") {
sources = [ "impl/android/Logging.cpp" ]
deps = [
":headers",
"${chip_root}/src/lib/core:chip_config_header",
"${chip_root}/src/lib/support:attributes",
"${chip_root}/src/lib/support:logging_constants",
"${chip_root}/src/platform:platform_buildconfig",
]
libs = [ "log" ]
}
}
# We need to reference the output file of ":stdio" at build time,
# but get_target_outputs() does not work for binary targets. As a
# workaround, define a reasonable path and make the target use it.
stdio_archive = "$root_out_dir/liblogging-stdio.a"
static_library("stdio") {
if (chip_device_platform == "darwin") {
sources = [ "impl/stdio/darwin/Logging.cpp" ]
} else {
sources = [ "impl/stdio/Logging.cpp" ]
}
deps = [
":headers",
"${chip_root}/src/lib/core:chip_config_header",
"${chip_root}/src/lib/support:attributes",
"${chip_root}/src/lib/support:logging_constants",
"${chip_root}/src/platform:platform_buildconfig",
]
# Ensure we end up with the expected output file name
output_dir = get_path_info(stdio_archive, "dir")
output_name = get_path_info(stdio_archive, "name")
output_extension = get_path_info(stdio_archive, "extension")
output_prefix_override = true
}
# Depending on this target (via public_deps) pulls in the stdio
# logger and ensures it takes precendce over the platform backend.
group("force_stdio") {
deps = [ ":stdio" ]
public_configs = [ ":force_stdio_config" ]
}
config("force_stdio_config") {
# Ensure the linker sees the stdio implementation first. This
# works because ldflags come before inputs on the command line.
ldflags = [ rebase_path(stdio_archive, root_build_dir) ]
}