diff options
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 74 |
1 files changed, 59 insertions, 15 deletions
@@ -1,22 +1,66 @@ { - description = "a sisu like document parser"; + 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 }: - let - pkgs = nixpkgs.legacyPackages.x86_64-linux; - in { - packages.x86_64-linux.spine = pkgs.stdenv.mkDerivation { - name = "spine"; - inherit self; - src = self; - shell = ./shell.nix; - installPhase = '' - install -m755 spine $out/bin/spine - ''; - }; - defaultPackage.x86_64-linux = self.packages.x86_64-linux.spine; + 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; }; } |