1
Fork 0
mirror of https://github.com/RGBCube/alejandra synced 2025-07-30 12:07:46 +00:00

feat: correct aarch64-darwin build

This commit is contained in:
Kevin Amado 2022-02-17 13:16:03 -05:00
parent ea6e3bfc92
commit 9bbc0f6d85
No known key found for this signature in database
GPG key ID: FFF341057F503148
7 changed files with 98 additions and 161 deletions

172
flake.nix
View file

@ -2,127 +2,93 @@
description = "The Uncompromising Nix Code Formatter";
inputs = {
fenix.url = "github:nix-community/fenix";
fenix.inputs.nixpkgs.follows = "nixpkgs";
flakeCompat.url = github:edolstra/flake-compat;
flakeCompat.flake = false;
nixpkgs.url = "github:nixos/nixpkgs";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
};
outputs = inputs: let
build = host: target: let
nixpkgs = import inputs.nixpkgs {
commit = inputs.self.shortRev or "dirty";
date = inputs.self.lastModifiedDate or inputs.self.lastModified or "19700101";
version = "0.2.0+${builtins.substring 0 8 date}.${commit}";
nixpkgsForHost = host:
import inputs.nixpkgs {
overlays = [
(
self: super: {
alejandra = self.rustPlatform.buildRustPackage {
pname = "alejandra";
inherit version;
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
passthru.tests = {
version = nixpkgs.testVersion { package = super.alejandra; };
};
meta = {
description = "The Uncompromising Nix Code Formatter.";
homepage = "https://github.com/kamadorueda/alejandra";
license = self.lib.licenses.unlicense;
maintainers = [nixpkgs.lib.maintainers.kamadorueda];
};
};
}
)
];
system = host;
crossSystem = builtins.getAttr target {
"aarch64-apple-darwin" = inputs.nixpkgs.lib.systems.examples.aarch64-darwin;
"aarch64-unknown-linux-musl".config = "aarch64-unknown-linux-musl";
"x86_64-apple-darwin" = null;
"x86_64-unknown-linux-gnu" = null;
"x86_64-unknown-linux-musl".config = "x86_64-unknown-linux-musl";
};
};
fenix = inputs.fenix.packages.${host};
rustPlatform = nixpkgs.makeRustPlatform {
cargo = fenix.latest.cargo;
rustc = fenix.combine [
fenix.latest.rustc
fenix.targets.${target}.latest.rust-std
];
};
in rec {
bin = rustPlatform.buildRustPackage {
pname = "alejandra";
version =
let
commit = inputs.self.shortRev or "dirty";
date = inputs.self.lastModifiedDate or inputs.self.lastModified or "19700101";
in "0.2.0+${builtins.substring 0 8 date}.${commit}";
src = ./.;
inherit target;
cargoLock.lockFile = ./Cargo.lock;
meta = {
description = "The Uncompromising Nix Code Formatter.";
homepage = "https://github.com/kamadorueda/alejandra";
license = nixpkgs.lib.licenses.unlicense;
maintainers = [nixpkgs.lib.maintainers.kamadorueda];
};
};
integrations.vscode-env = nixpkgs.mkYarnPackage {
name = "alejandra";
src = ./integrations/vscode;
packageJSON = ./integrations/vscode/package.json;
yarnLock = ./integrations/vscode/yarn.lock;
yarnNix = ./integrations/vscode/yarn.lock.nix;
};
integrations.vscode = nixpkgs.stdenv.mkDerivation {
name = "alejandra";
src = ./integrations/vscode;
env = integrations.vscode-env;
buildInputs = [nixpkgs.yarn];
builder = builtins.toFile "builder.sh" ''
source $stdenv/setup
cd $src
$env/libexec/alejandra/node_modules/.bin/vsce package --out $out
'';
};
shell = nixpkgs.mkShell {
name = "alejandra";
packages = [
fenix.latest.toolchain
nixpkgs.cargo-tarpaulin
nixpkgs.jq
nixpkgs.nodejs
nixpkgs.nodePackages.prettier
nixpkgs.nodePackages.prettier-plugin-toml
nixpkgs.shfmt
nixpkgs.treefmt
nixpkgs.yarn
nixpkgs.yarn2nix
];
};
};
nixpkgs."aarch64-darwin" = nixpkgsForHost "aarch64-darwin";
nixpkgs."aarch64-linux" = nixpkgsForHost "aarch64-linux";
nixpkgs."x86_64-darwin" = nixpkgsForHost "x86_64-darwin";
nixpkgs."x86_64-linux" = nixpkgsForHost "x86_64-linux";
in rec {
checks."aarch64-darwin" = packages."aarch64-darwin";
checks."x86_64-darwin" = packages."x86_64-darwin";
checks."aarch64-linux" = packages."aarch64-linux";
checks."x86_64-darwin" = packages."x86_64-darwin";
checks."x86_64-linux" = packages."x86_64-linux";
defaultPackage."aarch64-darwin" =
packages."aarch64-darwin"."aarch64-apple-darwin";
defaultPackage."aarch64-linux" =
packages."aarch64-linux"."aarch64-unknown-linux-musl";
defaultPackage."x86_64-darwin" =
packages."x86_64-darwin"."x86_64-apple-darwin";
defaultPackage."x86_64-linux" =
packages."x86_64-linux"."x86_64-unknown-linux-gnu";
defaultPackage."aarch64-darwin" = packages."aarch64-darwin"."alejandra-aarch64-apple-darwin";
defaultPackage."aarch64-linux" = packages."aarch64-linux"."alejandra-aarch64-unknown-linux-musl";
defaultPackage."x86_64-darwin" = packages."x86_64-darwin"."alejandra-x86_64-apple-darwin";
defaultPackage."x86_64-linux" = packages."x86_64-linux"."alejandra-x86_64-unknown-linux-gnu";
devShell."x86_64-linux" =
(build "x86_64-linux" "x86_64-unknown-linux-gnu").shell;
with nixpkgs."x86_64-linux";
mkShell {
name = "alejandra";
packages = [
cargo-tarpaulin
jq
nodejs
nodePackages.prettier
nodePackages.prettier-plugin-toml
shfmt
treefmt
yarn
yarn2nix
];
};
packages."aarch64-darwin"."aarch64-apple-darwin" =
(build "aarch64-darwin" "aarch64-apple-darwin").bin;
inherit nixpkgs;
packages."aarch64-linux"."aarch64-unknown-linux-musl" =
(build "aarch64-linux" "aarch64-unknown-linux-musl").bin;
packages."aarch64-darwin"."alejandra-aarch64-apple-darwin" = nixpkgs."aarch64-darwin".alejandra;
packages."aarch64-linux"."alejandra-aarch64-unknown-linux-musl" = nixpkgs."aarch64-linux".alejandra;
packages."x86_64-darwin"."alejandra-x86_64-apple-darwin" = nixpkgs."x86_64-darwin".alejandra;
packages."x86_64-linux"."alejandra-aarch64-unknown-linux-musl" = nixpkgs."x86_64-linux".pkgsCross.aarch64-multiplatform-musl.alejandra;
packages."x86_64-linux"."alejandra-x86_64-unknown-linux-gnu" = nixpkgs."x86_64-linux".alejandra;
packages."x86_64-linux"."alejandra-x86_64-unknown-linux-musl" = nixpkgs."x86_64-linux".pkgsCross.musl64.alejandra;
packages."x86_64-darwin"."x86_64-apple-darwin" =
(build "x86_64-darwin" "x86_64-apple-darwin").bin;
packages."x86_64-linux"."integrations-vscode" =
(build "x86_64-linux" "x86_64-unknown-linux-gnu").integrations.vscode;
packages."x86_64-linux"."aarch64-unknown-linux-musl" =
(build "x86_64-linux" "aarch64-unknown-linux-musl").bin;
packages."x86_64-linux"."x86_64-unknown-linux-gnu" =
(build "x86_64-linux" "x86_64-unknown-linux-gnu").bin;
packages."x86_64-linux"."x86_64-unknown-linux-musl" =
(build "x86_64-linux" "x86_64-unknown-linux-musl").bin;
packages."x86_64-linux"."alejandra-vscode-vsix" = nixpkgs."x86_64-linux".mkYarnPackage {
name = "alejandra";
src = ./integrations/vscode;
packageJSON = ./integrations/vscode/package.json;
yarnLock = ./integrations/vscode/yarn.lock;
yarnNix = ./integrations/vscode/yarn.lock.nix;
};
};
}