about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/nim-packages/build-nim-package/default.nix
blob: 6c7aafd22c81e0ed99d81b257b03cc112f172141 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{ lib, stdenv, nim, nim_builder }:

{ strictDeps ? true, nativeBuildInputs ? [ ], configurePhase ? null
, buildPhase ? null, checkPhase ? null, installPhase ? null, meta ? { }, ...
}@attrs:

stdenv.mkDerivation (attrs // {
  inherit strictDeps;
  nativeBuildInputs = [ nim nim_builder ] ++ nativeBuildInputs;

  configurePhase = if isNull configurePhase then ''
    runHook preConfigure
    find $NIX_BUILD_TOP -name .attrs.json
    nim_builder --phase:configure
    runHook postConfigure
  '' else
    buildPhase;

  buildPhase = if isNull buildPhase then ''
    runHook preBuild
    nim_builder --phase:build
    runHook postBuild
  '' else
    buildPhase;

  checkPhase = if isNull checkPhase then ''
    runHook preCheck
    nim_builder --phase:check
    runHook postCheck
  '' else
    checkPhase;

  installPhase = if isNull installPhase then ''
    runHook preInstall
    nim_builder --phase:install
    runHook postInstall
  '' else
    installPhase;

  meta = meta // {
    maintainers = (meta.maintainers or [ ]) ++ [ lib.maintainers.ehmry ];
  };
})