{ description = "Robossembler Development Environments on Nix"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; ros-flake.url = "github:lopsided98/nix-ros-overlay?ref=staging"; }; outputs = { self, nixpkgs, ros-flake, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; ros = ros-flake.legacyPackages.${system}; # overrided packages and attributes for nix-ros-overlay humble-overrided = ros.humble.overrideScope (final: prev: { moveit-core = prev.moveit-core.overrideAttrs (old: { propagatedBuildInputs = old.propagatedBuildInputs ++ [ prev.tf2-kdl ];}); moveit-kinematics = prev.moveit-kinematics.overrideAttrs (old: { propagatedBuildInputs = old.propagatedBuildInputs ++ [ final.moveit-ros-planning ];}); }); # robossembler custom packages; defined here for share between devShells and packages blender = pkgs.callPackage ./pkgs/misc/blender { }; bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { }; pysdf = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/pysdf { }; mayo = pkgs.libsForQt5.callPackage ./pkgs/misc/mayo { }; # darknet = pkgs.callPackage ./darknet.nix { }; fstl = pkgs.libsForQt5.callPackage ./pkgs/misc/fstl { }; in { inherit pkgs; rlib = import ./. { inherit (pkgs.stdenv) mkDerivation; inherit (pkgs) lib; inherit mayo; inherit (pkgs.libsForQt5) wrapQtAppsHook; }; packages = { inherit mayo blender bpy pysdf fstl; gazebo = ros.humble.gazebo; }; devShells.ros = pkgs.mkShell { buildInputs = (with humble-overrided; [ ros2run rmw-fastrtps-dynamic-cpp urdf ament-pep257 ament-lint-auto xacro ament-cmake rclcpp-action tf2 action-msgs ament-copyright pythonPackages.pytest rosidl-default-generators behaviortree-cpp-v3 geometry-msgs rosidl-default-runtime rclpy std-msgs ament-lint-common ament-flake8 tf2-ros rclcpp gazebo-ros2-control moveit-core moveit-msgs moveit-ros-planning moveit-ros-planning-interface gazebo # rbs-skill-interfaces ]) ++ (with pkgs; [ nlohmann_json ]); RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp"; }; devShells.bpy = pkgs.mkShell { packages = [ bpy pysdf ]; }; devShells.mayo = pkgs.mkShell { packages = [ mayo ]; }; devShells.blender = pkgs.mkShell { packages = [ blender ]; }; } ); }