| # 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 = "" | 
 |  | 
 |   # The absolute path to directory containing linux sysroot images | 
 |   target_sysroot_dir = "//build/linux" | 
 |  | 
 |   use_sysroot = current_cpu == "x86" || current_cpu == "x64" || | 
 |                 current_cpu == "arm" || current_cpu == "arm64" || | 
 |                 current_cpu == "mipsel" || current_cpu == "mips64el" | 
 | } | 
 |  | 
 | if (current_os == target_os && current_cpu == target_cpu && | 
 |     target_sysroot != "") { | 
 |   sysroot = target_sysroot | 
 | } else if (is_android) { | 
 |   import("//build/config/android/config.gni") | 
 |  | 
 |   # Android uses unified headers, and thus a single compile time sysroot | 
 |   sysroot = "$android_ndk_root/sysroot" | 
 | } else if (is_linux && use_sysroot) { | 
 |   # By default build against a sysroot image downloaded from Cloud Storage | 
 |   # during gclient runhooks. | 
 |   if (current_cpu == "x64") { | 
 |     sysroot = "$target_sysroot_dir/debian_sid_amd64-sysroot" | 
 |   } else if (current_cpu == "x86") { | 
 |     sysroot = "$target_sysroot_dir/debian_sid_i386-sysroot" | 
 |   } else if (current_cpu == "mipsel") { | 
 |     sysroot = "$target_sysroot_dir/debian_sid_mips-sysroot" | 
 |   } else if (current_cpu == "mips64el") { | 
 |     sysroot = "$target_sysroot_dir/debian_sid_mips64el-sysroot" | 
 |   } else if (current_cpu == "arm") { | 
 |     sysroot = "$target_sysroot_dir/debian_sid_arm-sysroot" | 
 |   } else if (current_cpu == "arm64") { | 
 |     sysroot = "$target_sysroot_dir/debian_sid_arm64-sysroot" | 
 |   } else { | 
 |     assert(false, "No linux sysroot for cpu: $target_cpu") | 
 |   } | 
 |  | 
 |   if (sysroot != "") { | 
 |     _script_arch = current_cpu | 
 |     if (_script_arch == "x86") { | 
 |       _script_arch = "i386" | 
 |     } else if (_script_arch == "x64") { | 
 |       _script_arch = "amd64" | 
 |     } | 
 |     assert( | 
 |         exec_script("//build/dir_exists.py", | 
 |                     [ rebase_path(sysroot) ], | 
 |                     "string") == "True", | 
 |         "Missing sysroot ($sysroot). To fix, run: build/linux/sysroot_scripts/install-sysroot.py --arch=$_script_arch") | 
 |   } | 
 | } 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 if (is_fuchsia) { | 
 |   import("//build/config/fuchsia/config.gni") | 
 |   if (current_cpu == "arm64") { | 
 |     sysroot = fuchsia_sdk + "/sysroot/aarch64-fuchsia" | 
 |   } else if (current_cpu == "x64") { | 
 |     sysroot = fuchsia_sdk + "/sysroot/x86_64-fuchsia" | 
 |   } else { | 
 |     sysroot = "" | 
 |   } | 
 | } else { | 
 |   sysroot = "" | 
 | } | 
 |  | 
 | if (is_android) { | 
 |   # Android uses unified headers in NDK r16 and later, meaning that the | 
 |   # compile time sysroot and link time sysroot are different | 
 |   link_sysroot = sysroot | 
 |   if (current_cpu == "arm") { | 
 |     link_sysroot = "$android_ndk_root/$arm_android_sysroot_subdir" | 
 |   } else if (current_cpu == "arm64") { | 
 |     link_sysroot = "$android_ndk_root/$arm64_android_sysroot_subdir" | 
 |   } else if (current_cpu == "x86") { | 
 |     link_sysroot = "$android_ndk_root/$x86_android_sysroot_subdir" | 
 |   } else if (current_cpu == "x64") { | 
 |     link_sysroot = "$android_ndk_root/$x86_64_android_sysroot_subdir" | 
 |   } else if (current_cpu == "mipsel") { | 
 |     link_sysroot = "$android_ndk_root/$mips_android_sysroot_subdir" | 
 |   } else if (current_cpu == "mips64el") { | 
 |     link_sysroot = "$android_ndk_root/$mips64_android_sysroot_subdir" | 
 |   } else { | 
 |     assert(false, "No android link sysroot for cpu: $target_cpu") | 
 |   } | 
 | } else { | 
 |   link_sysroot = sysroot | 
 | } |