118 lines
2.6 KiB
Nix
118 lines
2.6 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
utils.url = "github:numtide/flake-utils";
|
|
|
|
nix-npm-buildpackage = {
|
|
url = "github:serokell/nix-npm-buildpackage";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
gitignore = {
|
|
url = "github:hercules-ci/gitignore.nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
flake-compat = {
|
|
url = "github:edolstra/flake-compat";
|
|
flake = false;
|
|
};
|
|
};
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
utils,
|
|
nix-npm-buildpackage,
|
|
gitignore,
|
|
...
|
|
}:
|
|
utils.lib.eachDefaultSystem (system: let
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
overlays = [nix-npm-buildpackage.overlays.default];
|
|
};
|
|
|
|
src = gitignore.lib.gitignoreSource ./.;
|
|
|
|
nodeDependencies = with pkgs; [
|
|
nasm
|
|
zlib
|
|
optipng
|
|
libpng
|
|
libtool
|
|
automake
|
|
autoconf
|
|
vips
|
|
vips.dev
|
|
pkg-config
|
|
python3
|
|
nodePackages.node-gyp
|
|
nodePackages.node-gyp-build
|
|
];
|
|
|
|
buildVars = {
|
|
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = "1";
|
|
PUPPETEER_EXECUTABLE_PATH = "${pkgs.chromium}/bin/chromium";
|
|
};
|
|
|
|
preBuild = ''
|
|
export LD=$CC
|
|
'';
|
|
in {
|
|
packages.gen2-space-front-raw = pkgs.buildNpmPackage {
|
|
inherit src;
|
|
|
|
dontNpmPrune = true;
|
|
|
|
extraNodeModulesArgs = {
|
|
buildInputs = nodeDependencies;
|
|
};
|
|
|
|
extraEnvVars = buildVars;
|
|
};
|
|
packages.gen2-space-front = pkgs.stdenv.mkDerivation ({
|
|
name = "gen2-space-front";
|
|
|
|
src = self.packages.${system}.gen2-space-front-raw;
|
|
|
|
buildInputs = with pkgs; [nodejs elmPackages.elm];
|
|
|
|
configurePhase = pkgs.elmPackages.fetchElmDeps {
|
|
elmVersion = "0.19.1";
|
|
registryDat = ./registry.dat;
|
|
elmPackages = import ./elm-srcs.nix;
|
|
};
|
|
|
|
buildPhase = ''
|
|
mkdir dist
|
|
node $src/node_modules/vite/bin/vite.js build
|
|
'';
|
|
|
|
installPhase = ''
|
|
mv dist $out
|
|
'';
|
|
}
|
|
// buildVars);
|
|
packages.default = self.packages.${system}.gen2-space-front;
|
|
|
|
devShells.default = pkgs.mkShell ({
|
|
inputsFrom = builtins.attrValues self.packages.${system};
|
|
shellHook = ''
|
|
export LD=$CC
|
|
'';
|
|
buildInputs =
|
|
nodeDependencies
|
|
++ (with pkgs; [
|
|
elmPackages.elm
|
|
elmPackages.elm-format
|
|
elmPackages.elm-review
|
|
|
|
elm2nix
|
|
nodejs
|
|
]);
|
|
}
|
|
// buildVars);
|
|
});
|
|
}
|