104 lines
3.3 KiB
Nix
104 lines
3.3 KiB
Nix
{
|
|
inputs = {
|
|
nix-ros-overlay.url = "github:lopsided98/nix-ros-overlay/develop";
|
|
nixpkgs.follows = "nix-ros-overlay/nixpkgs"; # IMPORTANT!!!
|
|
};
|
|
outputs = {
|
|
self,
|
|
nix-ros-overlay,
|
|
nixpkgs,
|
|
}:
|
|
nix-ros-overlay.inputs.flake-utils.lib.eachDefaultSystem (system: let
|
|
applyDistroOverlay = rosOverlay: rosPackages:
|
|
rosPackages
|
|
// builtins.mapAttrs (
|
|
rosDistro: rosPkgs:
|
|
if rosPkgs ? overrideScope
|
|
then rosPkgs.overrideScope rosOverlay
|
|
else rosPkgs
|
|
)
|
|
rosPackages;
|
|
rosDistroOverlays = self: super: {
|
|
rosPackages = applyDistroOverlay (import ./overlay.nix) super.rosPackages;
|
|
};
|
|
pythonOverlay = self: super: {
|
|
pythonPackagesExtensions = super.pythonPackagesExtensions ++ [
|
|
(
|
|
python-final: python-prev: {
|
|
rbs-assets-library = self.python3Packages.callPackage ./nix/repos/rbs-assets-library.nix { };
|
|
}
|
|
)
|
|
];
|
|
};
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
overlays = [
|
|
nix-ros-overlay.overlays.default
|
|
rosDistroOverlays
|
|
pythonOverlay
|
|
];
|
|
config.permittedInsecurePackages = [
|
|
"freeimage-3.18.0-unstable-2024-04-18"
|
|
];
|
|
};
|
|
zsh-autocompletions = pkgs.runCommand "ros-autocompletions" {} ''
|
|
for dir in {bash-completion/completions,zsh/site-functions}; do
|
|
mkdir -p $out/share/$dir
|
|
for program in {ros2,colcon,rosidl}; do
|
|
${pkgs.python3.pkgs.argcomplete}/bin/register-python-argcomplete $program > $out/share/$dir/_$program
|
|
done
|
|
done
|
|
'';
|
|
use_zsh = true;
|
|
|
|
rosDistro = "jazzy";
|
|
in {
|
|
legacyPackages = pkgs.rosPackages;
|
|
packages = builtins.intersectAttrs (import ./overlay.nix null null) pkgs.rosPackages.${rosDistro};
|
|
checks = builtins.intersectAttrs (import ./overlay.nix null null) pkgs.rosPackages.${rosDistro};
|
|
devShells.default = pkgs.mkShell {
|
|
name = "Robossembler ROS2";
|
|
packages =
|
|
[
|
|
pkgs.colcon
|
|
# ... other non-ROS packages
|
|
(with pkgs.rosPackages.${rosDistro};
|
|
buildEnv {
|
|
paths = [
|
|
ros-core
|
|
rbs-bringup
|
|
# Include simulation runtime
|
|
rbs-runtime
|
|
# robot package
|
|
rbs-arm
|
|
];
|
|
})
|
|
]
|
|
++ (
|
|
if use_zsh
|
|
then [zsh-autocompletions pkgs.zsh]
|
|
else []
|
|
);
|
|
shellHook = ''
|
|
${
|
|
if use_zsh
|
|
then ''
|
|
echo "Swithching to ZSH shell..."
|
|
export SHELL=$(which zsh)
|
|
exec zsh
|
|
''
|
|
else ''''
|
|
}
|
|
nix store gc
|
|
'';
|
|
};
|
|
});
|
|
nixConfig = {
|
|
extra-substituters = ["https://ros.cachix.org" "https://robossembler.cachix.org" "https://cuda-maintainers.cachix.org"];
|
|
extra-trusted-public-keys = [
|
|
"ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo="
|
|
"robossembler.cachix.org-1:56jBJHroRQSGpZFkW8XMquuzQTjAF/XTo6MogmBM7SQ="
|
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
|
];
|
|
};
|
|
}
|