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:
parent
ea6e3bfc92
commit
9bbc0f6d85
7 changed files with 98 additions and 161 deletions
172
flake.nix
172
flake.nix
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue