{ 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"; }; outputs = { self, nixpkgs, ros-flake, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; ros = ros-flake.legacyPackages.${system}.rolling; # robossembler custom packages; defined here for share between devShells and packages bpy = pkgs.python3Packages.callPackage ./pkgs/development/python-modules/bpy { }; blender = pkgs.callPackage ./pkgs/misc/blender { }; in { packages = { blender = blender; python3Packages = pkgs.recurseIntoAttrs bpy; }; devShells.ros = pkgs.mkShell { buildInputs = (with ros; [ ros2run rmw-fastrtps-dynamic-cpp ]); RMW_IMPLEMENTATION = "rmw_fastrtps_dynamic_cpp"; shellHook = '' export LD_LIBRARY_PATH=${(with pkgs; lib.makeLibraryPath [ libsodium ])} ''; }; devShells.bpy = pkgs.mkShell { packages = [ bpy ]; }; devShells.blender = pkgs.mkShell { packages = [ blender ]; }; } ); }