runtime/.nix/flake.nix

74 lines
2.6 KiB
Nix
Raw Normal View History

2024-10-25 18:56:58 +03:00
{
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=" ];
};
}