74 lines
2.6 KiB
Nix
74 lines
2.6 KiB
Nix
|
|
||
|
{
|
||
|
inputs = {
|
||
|
#nix-ros-overlay.url = "/home/movefasta/Documents/robossembler/nix-ros-overlay";
|
||
|
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: {
|
||
|
# Apply the overlay to multiple ROS distributions
|
||
|
rosPackages = applyDistroOverlay (import ./overlay.nix) super.rosPackages;
|
||
|
};
|
||
|
pkgs = import nixpkgs {
|
||
|
inherit system;
|
||
|
overlays = [
|
||
|
nix-ros-overlay.overlays.default
|
||
|
rosDistroOverlays
|
||
|
];
|
||
|
};
|
||
|
|
||
|
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 = "Example project";
|
||
|
packages = [
|
||
|
pkgs.colcon
|
||
|
# ... other non-ROS packages
|
||
|
(with pkgs.rosPackages.${rosDistro}; buildEnv {
|
||
|
paths = [
|
||
|
ros-core
|
||
|
behavior-tree
|
||
|
controller-interface
|
||
|
controller-manager
|
||
|
dynmsg
|
||
|
# dynmsg-demo # YAML failed
|
||
|
dynmsg-msgs
|
||
|
gz-ros2-control
|
||
|
# gz-ros2-control-tests(demos) # error: 'get_robot_description' was not declared in this scope
|
||
|
hardware-interface
|
||
|
hardware-interface-testing
|
||
|
joint-limits
|
||
|
joint-limits-interface
|
||
|
# rbs-arm # error: 'get_robot_description' was not declared in this scope
|
||
|
robot-builder
|
||
|
ros2controlcli
|
||
|
rqt-controller-manager
|
||
|
# test-dynmsg # YAML
|
||
|
transmission-interface
|
||
|
ros2-controllers
|
||
|
|
||
|
# ... other ROS packages
|
||
|
];
|
||
|
})
|
||
|
];
|
||
|
};
|
||
|
});
|
||
|
nixConfig = {
|
||
|
extra-substituters = [ "https://ros.cachix.org" ];
|
||
|
extra-trusted-public-keys = [ "ros.cachix.org-1:dSyZxI8geDCJrwgvCOHDoAfOm5sV1wCPjBkKL+38Rvo=" ];
|
||
|
};
|
||
|
}
|