| # Copyright 2020 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. |
| |
| import("//zircon/public/gn/prebuilt.gni") |
| import("breakpad.gni") |
| |
| declare_args() { |
| # Directory where the Rust toolchain binary ("rustc") is found. If this is |
| # "", then the prebuilt rustc is used. Using a system compiler is not |
| # supported. This toolchain is expected to support both Fuchsia targets and |
| # the host. |
| rustc_tool_dir = "" |
| |
| # This is a string identifying the particular toolchain version in use. Its |
| # only purpose is to be unique enough that it changes when switching to a new |
| # toolchain, so that recompilations with the new compiler can be triggered. |
| # |
| # When using the prebuilt, this defaults to the CIPD instance ID of the |
| # prebuilt. |
| rustc_version_string = "" |
| } |
| |
| if (rustc_tool_dir == "") { |
| _prebuilt_rustc_dir = "$prebuilt_dir/third_party/rust/$host_platform" |
| rustc_tool_dir = "$_prebuilt_rustc_dir/bin" |
| |
| # When using the prebuilt, the CIPD instance ID of the prebuilt is perfect. |
| # When not using the prebuilt, there isn't a quick way to extract the compiler |
| # version. But at least changing the setting to a different compiler will |
| # change the string. |
| # |
| # This logic is duplicated in the Fuchsia build, and we use its value when |
| # being driven by that build. |
| if (rustc_version_string == "") { |
| _prebuilt_rustc_cipd_version = |
| read_file("$_prebuilt_rustc_dir/.versions/rust.cipd_version", "json") |
| rustc_version_string = _prebuilt_rustc_cipd_version.instance_id |
| } |
| } |
| |
| # Human-readable identifier for the toolchain version. |
| # |
| # TODO(tmandry): Make this the same repo/revision info from `rustc --version`. |
| # e.g., clang_version_description = read_file("$_rustc_lib_dir/VERSION") |
| rustc_version_description = "" |