49 lines
1.3 KiB
Nix
49 lines
1.3 KiB
Nix
{
|
|
description = "benchmarking languages with mandelbrot image generation";
|
|
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
|
|
|
outputs = { self, nixpkgs }:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs { inherit system; };
|
|
in {
|
|
devShells.${system}.default = pkgs.mkShell {
|
|
nativeBuildInputs = with pkgs; [
|
|
clang
|
|
janet
|
|
uiua-unstable
|
|
];
|
|
};
|
|
|
|
packages.${system} = {
|
|
c = pkgs.stdenv.mkDerivation {
|
|
name = "mandelbrot-c";
|
|
src = ./src;
|
|
nativeBuildInputs = [ pkgs.clang ];
|
|
buildPhase = ''
|
|
cc mandelbrot.c -o mandelbrot-c -lm
|
|
'';
|
|
installPhase = ''
|
|
mkdir -p $out/bin/
|
|
cp mandelbrot-c $out/bin/
|
|
'';
|
|
};
|
|
|
|
uiua = pkgs.stdenv.mkDerivation {
|
|
name = "mandelbrot-uiua";
|
|
src = ./src;
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
buildInputs = [ pkgs.uiua-unstable ];
|
|
installPhase = ''
|
|
mkdir -p $out/bin $out/share
|
|
cp mandelbrot.ua $out/share
|
|
makeWrapper ${pkgs.uiua-unstable}/bin/uiua \
|
|
$out/bin/mandelbrot-uiua \
|
|
--add-flags "run $out/share/mandelbrot.ua"
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|