From 1e05a2eb88d61dde3148faff57f726713ecf8579 Mon Sep 17 00:00:00 2001 From: hacker1024 Date: Sun, 13 Oct 2024 18:55:47 +1100 Subject: [PATCH] buildEnv: Populate GZ_CONFIG_PATH in wrapper --- distros/build-env/default.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/distros/build-env/default.nix b/distros/build-env/default.nix index bc36f0229a..cdbcb908a2 100644 --- a/distros/build-env/default.nix +++ b/distros/build-env/default.nix @@ -10,7 +10,7 @@ # # By default, all binaries in the environment are wrapped, setting the relevant # ROS environment variables, allowing use outside of nix-shell. -{ lib, stdenv, buildPackages, writeText, buildEnv, makeWrapper, python, ros-environment }: +{ lib, stdenv, buildPackages, writeText, buildEnv, symlinkJoin, makeWrapper, python, ros-environment }: { paths ? [], wrapPrograms ? true, postBuild ? "", passthru ? { }, ... }@args: with lib; @@ -33,6 +33,11 @@ let propagatedPaths = propagatePackages paths; + gzEnv = symlinkJoin { + name = "gz-env"; + paths = map (pkg: "${pkg}/${pkg.gzConfigPath}") (builtins.filter (pkg: pkg ? gzConfigPath) propagatedPaths.rosPackages); + }; + env = (buildEnv ((removeAttrs args [ "wrapPrograms" ]) // { name = "ros-env"; # Only add ROS packages to environment. The rest are propagated like normal. @@ -63,6 +68,7 @@ let --prefix CMAKE_PREFIX_PATH : "$out" \ --prefix AMENT_PREFIX_PATH : "$out" \ --prefix ROS_PACKAGE_PATH : "$out/share" \ + --prefix GZ_CONFIG_PATH : '${gzEnv}' \ --set ROS_DISTRO '${ros-environment.rosDistro}' \ --set ROS_VERSION '${toString ros-environment.rosVersion}' \ --set ROS_PYTHON_VERSION '${lib.versions.major python.version}' \