mirror of
https://github.com/lopsided98/nix-ros-overlay.git
synced 2025-06-12 18:54:50 +03:00
30 lines
786 B
Nix
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
|