# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This header file defines the "sysroot" variable which is the absolute path
# of the sysroot. If no sysroot applies, the variable will be an empty string.

import("//build/config/chrome_build.gni")

declare_args() {
  # The absolute path of the sysroot that is applied when compiling using
  # the target toolchain.
  target_sysroot = ""
  use_sysroot = false
}

if (current_toolchain == default_toolchain && target_sysroot != "") {
  sysroot = target_sysroot
} else if (is_android) {
  import("//build/config/android/config.gni")
  if (current_cpu == "x86") {
    sysroot = rebase_path("$android_ndk_root/$x86_android_sysroot_subdir")
  } else if (current_cpu == "arm") {
    sysroot = rebase_path("$android_ndk_root/$arm_android_sysroot_subdir")
  } else if (current_cpu == "mipsel") {
    sysroot = rebase_path("$android_ndk_root/$mips_android_sysroot_subdir")
  } else if (current_cpu == "x64") {
    sysroot = rebase_path("$android_ndk_root/$x86_64_android_sysroot_subdir")
  } else if (current_cpu == "arm64") {
    sysroot = rebase_path("$android_ndk_root/$arm64_android_sysroot_subdir")
  } else if (current_cpu == "mips64") {
    sysroot = rebase_path("$android_ndk_root/$mips64_android_sysroot_subdir")
  } else {
    sysroot = ""
  }
} else if (is_linux && !is_chromeos && use_sysroot) {
  # By default build against a sysroot image downloaded from Cloud Storage
  # during gclient runhooks.
  if (current_cpu == "x64") {
    sysroot = rebase_path("//build/linux/debian_wheezy_amd64-sysroot")
  } else if (current_cpu == "x86") {
    sysroot = rebase_path("//build/linux/debian_wheezy_i386-sysroot")
  } else if (current_cpu == "mipsel") {
    sysroot = rebase_path("//build/linux/debian_wheezy_mips-sysroot")
  } else if (current_cpu == "arm") {
    sysroot = rebase_path("//build/linux/debian_wheezy_arm-sysroot")
  } else {
    # Any other builds don't use a sysroot.
    sysroot = ""
  }
} else if (is_mac) {
  import("//build/config/mac/mac_sdk.gni")
  sysroot = mac_sdk_path
} else if (is_ios) {
  import("//build/config/ios/ios_sdk.gni")
  sysroot = ios_sdk_path
} else {
  sysroot = ""
}
