summaryrefslogtreecommitdiff
path: root/pkgs/development/r-modules/wrapper.nix
blob: e1b96aecfe28a02d516913c7b19d03bf92ad1b44 (plain)
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
44
45
{
  lib,
  symlinkJoin,
  R,
  makeWrapper,
  recommendedPackages,
  packages,
}:
symlinkJoin {
  name = R.name + "-wrapper";
  preferLocalBuild = true;
  allowSubstitutes = false;

  outputs = [
    "out"
    "man"
  ];

  buildInputs = [ R ] ++ recommendedPackages ++ packages;
  paths = [ R ];

  nativeBuildInputs = [ makeWrapper ];

  postBuild = ''
    cd ${R}/bin
    for exe in *; do
      rm "$out/bin/$exe"

      makeWrapper "${R}/bin/$exe" "$out/bin/$exe" \
        --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE"
    done

    ln -s ${R.man} $man
  '';

  # Make the list of recommended R packages accessible to other packages such as rpy2
  passthru = { inherit recommendedPackages; };

  meta = R.meta // {
    # To prevent builds on hydra
    hydraPlatforms = [ ];
    # prefer wrapper over the package
    priority = (R.meta.priority or lib.meta.defaultPriority) - 1;
  };
}