From 786f7b01534bb4ee220d569c634ff3fec8d973a7 Mon Sep 17 00:00:00 2001 From: Benjamin Sparks Date: Fri, 25 Apr 2025 15:02:07 +0200 Subject: [PATCH 1/4] gz-utils: move spdlog to buildInputs --- pkgs/by-name/gz/gz-utils/package.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gz/gz-utils/package.nix b/pkgs/by-name/gz/gz-utils/package.nix index 1a4bf09d40a1..b62a2f6e16d4 100644 --- a/pkgs/by-name/gz/gz-utils/package.nix +++ b/pkgs/by-name/gz/gz-utils/package.nix @@ -2,11 +2,14 @@ lib, stdenv, fetchFromGitHub, + + # nativeBuildInputs cmake, gz-cmake, + + # buildInputs spdlog, }: - stdenv.mkDerivation (finalAttrs: { pname = "gz-utils"; version = "3.1.1"; @@ -21,9 +24,10 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake gz-cmake - spdlog ]; + buildInputs = [ spdlog ]; + meta = { description = "General purpose utility classes and functions for the Gazebo libraries"; homepage = "https://gazebosim.org/home"; From 7a99f21037b593f4a2dea9c4b0088c1e987af068 Mon Sep 17 00:00:00 2001 From: Benjamin Sparks Date: Fri, 25 Apr 2025 16:01:41 +0200 Subject: [PATCH 2/4] gz-utils: use nixpkgs' CLI11 instead of the vendored one --- pkgs/by-name/gz/gz-utils/package.nix | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/gz/gz-utils/package.nix b/pkgs/by-name/gz/gz-utils/package.nix index b62a2f6e16d4..a0ea9a3818e6 100644 --- a/pkgs/by-name/gz/gz-utils/package.nix +++ b/pkgs/by-name/gz/gz-utils/package.nix @@ -8,6 +8,7 @@ gz-cmake, # buildInputs + cli11, spdlog, }: stdenv.mkDerivation (finalAttrs: { @@ -26,7 +27,17 @@ stdenv.mkDerivation (finalAttrs: { gz-cmake ]; - buildInputs = [ spdlog ]; + buildInputs = [ + cli11 + spdlog + ]; + + # Indicate to CMake that we are not using the vendored CLI11 library. + # The integration tests make (unintentional?) unconditional usage of the vendored + # CLI11 library, so we can't remove that. + cmakeFlags = [ + (lib.cmakeBool "GZ_UTILS_VENDOR_CLI11" false) + ]; meta = { description = "General purpose utility classes and functions for the Gazebo libraries"; From 90c70448cc7c24567619924a7caccfb85543f6b4 Mon Sep 17 00:00:00 2001 From: Benjamin Sparks Date: Fri, 25 Apr 2025 16:52:23 +0200 Subject: [PATCH 3/4] gz-utils: enable tests --- pkgs/by-name/gz/gz-utils/package.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkgs/by-name/gz/gz-utils/package.nix b/pkgs/by-name/gz/gz-utils/package.nix index a0ea9a3818e6..a3f63505afea 100644 --- a/pkgs/by-name/gz/gz-utils/package.nix +++ b/pkgs/by-name/gz/gz-utils/package.nix @@ -10,6 +10,12 @@ # buildInputs cli11, spdlog, + + # nativeCheckInputs + python3, + + # checkInputs + gtest, }: stdenv.mkDerivation (finalAttrs: { pname = "gz-utils"; @@ -22,6 +28,14 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-fYzysdB608jfMb/EbqiGD4hXmPxcaVTUrt9Wx0dBlto="; }; + # Remove vendored gtest, use nixpkgs' version instead. + postPatch = '' + rm -r test/gtest_vendor + + substituteInPlace test/CMakeLists.txt --replace-fail \ + "add_subdirectory(gtest_vendor)" "# add_subdirectory(gtest_vendor)" + ''; + nativeBuildInputs = [ cmake gz-cmake @@ -39,6 +53,12 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "GZ_UTILS_VENDOR_CLI11" false) ]; + nativeCheckInputs = [ python3 ]; + + checkInputs = [ gtest ]; + + doCheck = true; + meta = { description = "General purpose utility classes and functions for the Gazebo libraries"; homepage = "https://gazebosim.org/home"; From 25b3bf9e7d521256fe2944dfc5909ba381f7741c Mon Sep 17 00:00:00 2001 From: Benjamin Sparks Date: Fri, 25 Apr 2025 17:25:33 +0200 Subject: [PATCH 4/4] gz-utils: output doxygen documentation --- pkgs/by-name/gz/gz-utils/package.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/by-name/gz/gz-utils/package.nix b/pkgs/by-name/gz/gz-utils/package.nix index a3f63505afea..c41ec4ef71d7 100644 --- a/pkgs/by-name/gz/gz-utils/package.nix +++ b/pkgs/by-name/gz/gz-utils/package.nix @@ -6,6 +6,8 @@ # nativeBuildInputs cmake, gz-cmake, + doxygen, + graphviz, # buildInputs cli11, @@ -28,6 +30,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-fYzysdB608jfMb/EbqiGD4hXmPxcaVTUrt9Wx0dBlto="; }; + outputs = [ + "doc" + "out" + ]; + # Remove vendored gtest, use nixpkgs' version instead. postPatch = '' rm -r test/gtest_vendor @@ -39,6 +46,8 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake gz-cmake + doxygen + graphviz ]; buildInputs = [ @@ -53,6 +62,11 @@ stdenv.mkDerivation (finalAttrs: { (lib.cmakeBool "GZ_UTILS_VENDOR_CLI11" false) ]; + postBuild = '' + make doc + cp -r doxygen/html $doc + ''; + nativeCheckInputs = [ python3 ]; checkInputs = [ gtest ];