aboutsummaryrefslogtreecommitdiffhomepage
path: root/flake.nix
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2022-06-01 21:47:14 -0400
committerRalph Amissah <ralph.amissah@gmail.com>2022-06-14 19:58:00 -0400
commit4808d0fa49816390772c3a2f2560dafde73dde2d (patch)
treef21fb14e2b6eac372796038934a93ec00f5fe08f /flake.nix
parenthtml links to output, flags for a bit finer control (diff)
build related, mostly nix flakes
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix74
1 files changed, 59 insertions, 15 deletions
diff --git a/flake.nix b/flake.nix
index 9c8709c..d57ddc4 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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;
};
}