# 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") {
  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) ]
}
