# Copyright 2016 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.

declare_args() {
  # The absolute path of the sysroot that is used with the target toolchain.
  target_sysroot = ""
}

if (current_os == target_os && target_sysroot != "") {
  sysroot = target_sysroot
} else if (is_fuchsia) {
  sysroot = rebase_path("$root_build_dir/sysroot")
} else if (is_linux) {
  sysroot = rebase_path("//buildtools/sysroot")
} else if (is_mac) {
  import("//build/config/mac/config.gni")
  sysroot = mac_sdk_path
} else {
  sysroot = ""
}
