{ description = "A sisu like parser and document generator"; inputs = { flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:nixos/nixpkgs"; #nixpkgs.url = "/nixpkgs-ra/nixpkgs"; }; outputs = { self, nixpkgs, flake-utils }: { packages.x86_64-linux.spine = let pkgs = import nixpkgs { system = "x86_64-linux"; }; #targetOf = package: "${package.targetPath or "."}/${package.targetName or package.name}"; in pkgs.stdenv.mkDerivation { pname = "spine"; version = "0.11.3"; description = "A sisu like parser and document generator"; inherit self; src = self; shell = ./shell.nix; buildPhase = '' runHook preBuild HOME="$PWD" DFLAGS="-O2 -inline" for DC_ in dmd ldmd2 gdmd; do echo "- check for D compiler $DC_" DC=$(type -P $DC_ || echo "") if [ ! "$DC" == "" ]; then break fi done if [ "$DC" == "" ]; then exit "Error: could not find D compiler" fi echo "$DC_ used as D compiler to build $pname" dub build --compiler=$DC --build=release --combined --skip-registry=all runHook postBuild ''; checkPhase = '' runHook preCheck HOME="$PWD" dub test --combined --skip-registry=all runHook postCheck ''; installPhase = '' runHook preInstall mkdir -p $out/bin install -m755 ./bin/spine $out/bin/spine #cp -r bin/spine $out/bin/. runHook postInstall ''; postInstall = '' echo "$out/share/cgi-bin" echo `ls -la $out/bin/spine` ''; nativeBuildInputs = with pkgs; [ ldc dub ]; buildInputs = with pkgs; [ sqlite ]; }; defaultPackage.x86_64-linux = self.packages.x86_64-linux.spine; }; }