{ description = "a sisu like parser and document generator"; inputs.flake-utils.url = "github:numtide/flake-utils"; inputs.nixpkgs.url = "github:nixos/nixpkgs"; #inputs.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.12.0"; 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 `ls -la $out/bin/spine` echo "" echo "nix build or nix develop? (suggestions):" echo '- nix build' echo ' nix build .#spine --print-build-logs' echo ' nix build --print-build-logs' echo '- nix run' echo ' nix run .#spine --print-build-logs' echo ' nix run default.nix --print-build-logs' echo '- nix shell' echo ' nix shell --print-build-logs --command spine -v' echo '- nix develop' echo ' nix develop --build -f derivation.nix -I .envrc --print-build-logs' echo ' nix develop ; eval "$buildPhase"' echo 'spine -v' echo 'nix-instantiate | nix show-derivation | jq' echo `ls -la $out/bin/spine` echo "built:" $out/bin/spine -v ''; nativeBuildInputs = with pkgs; [ ldc dub ]; buildInputs = with pkgs; [ sqlite ]; }; packages.x86_64-linux.default = self.packages.x86_64-linux.spine; }; } #nix flake update #nix flake check #nix flake show #nix develop #nix build .#default --print-build-logs