nix-ros-overlay/build-env/default.nix
2019-04-06 22:17:45 -04:00

30 lines
786 B
Nix

{ lib, stdenv, writeText, buildEnv, catkin, cmake }:
{ paths ? [], ... }@args:
with lib;
let
propagatePackages = drvs: let
validDrvs = filter (d: d != null) drvs;
in if length validDrvs == 0 then []
else unique (validDrvs ++ (propagatePackages (unique (concatLists (catAttrs "propagatedBuildInputs" validDrvs)))));
env = buildEnv (args // {
name = "ros-env";
paths = propagatePackages paths;
ignoreCollisions = true;
passthru.env = stdenv.mkDerivation {
name = "interactive-ros-env";
buildInputs = [ env catkin ];
buildCommand = ''
echo >&2 ""
echo >&2 "*** ROS 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
echo >&2 ""
exit 1
'';
};
});
in env