aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/compilers/rust/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/compilers/rust/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/compilers/rust/default.nix12
1 files changed, 10 insertions, 2 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/compilers/rust/default.nix b/infra/libkookie/nixpkgs/pkgs/development/compilers/rust/default.nix
index 74c076c204b4..25876cc63803 100644
--- a/infra/libkookie/nixpkgs/pkgs/development/compilers/rust/default.nix
+++ b/infra/libkookie/nixpkgs/pkgs/development/compilers/rust/default.nix
@@ -24,9 +24,10 @@
if platform.isDarwin then "macos"
else platform.parsed.kernel.name;
- # Target triple. Rust has slightly different naming conventions than we use.
+ # Returns the name of the rust target, even if it is custom. Adjustments are
+ # because rust has slightly different naming conventions than we do.
toRustTarget = platform: with platform.parsed; let
- cpu_ = platform.rustc.arch or {
+ cpu_ = platform.rustc.platform.arch or {
"armv7a" = "armv7";
"armv7l" = "armv7";
"armv6l" = "arm";
@@ -34,6 +35,13 @@
in platform.rustc.config
or "${cpu_}-${vendor.name}-${kernel.name}${lib.optionalString (abi.name != "unknown") "-${abi.name}"}";
+ # Returns the name of the rust target if it is standard, or the json file
+ # containing the custom target spec.
+ toRustTargetSpec = platform:
+ if (platform.rustc or {}) ? platform
+ then builtins.toFile (toRustTarget platform + ".json") (builtins.toJSON platform.rustc.platform)
+ else toRustTarget platform;
+
# This just contains tools for now. But it would conceivably contain
# libraries too, say if we picked some default/recommended versions from
# `cratesIO` to build by Hydra and/or try to prefer/bias in Cargo.lock for