From 0862afa31c0ab37ccf7f07755bf55fd4f3e06d89 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Fri, 19 Dec 2025 15:01:11 -0800 Subject: [PATCH 1/8] Scaffold collection prototype Adds gz-scaffold-cmake, gz-scaffold-utils that install from main branch and conflict with jetty versions. Signed-off-by: Steve Peters --- Aliases/gz-cmake6 | 1 + Aliases/gz-utils5 | 1 + Formula/gz-scaffold-cmake.rb | 46 ++++++++++++++++++++++++ Formula/gz-scaffold-utils.rb | 68 ++++++++++++++++++++++++++++++++++++ 4 files changed, 116 insertions(+) create mode 120000 Aliases/gz-cmake6 create mode 120000 Aliases/gz-utils5 create mode 100644 Formula/gz-scaffold-cmake.rb create mode 100644 Formula/gz-scaffold-utils.rb diff --git a/Aliases/gz-cmake6 b/Aliases/gz-cmake6 new file mode 120000 index 000000000..cb360361f --- /dev/null +++ b/Aliases/gz-cmake6 @@ -0,0 +1 @@ +../Formula/gz-scaffold-cmake.rb \ No newline at end of file diff --git a/Aliases/gz-utils5 b/Aliases/gz-utils5 new file mode 120000 index 000000000..b0b86e500 --- /dev/null +++ b/Aliases/gz-utils5 @@ -0,0 +1 @@ +../Formula/gz-scaffold-utils.rb \ No newline at end of file diff --git a/Formula/gz-scaffold-cmake.rb b/Formula/gz-scaffold-cmake.rb new file mode 100644 index 000000000..c32cb866e --- /dev/null +++ b/Formula/gz-scaffold-cmake.rb @@ -0,0 +1,46 @@ +class GzScaffoldCmake < Formula + desc "CMake helper functions for building robotic applications" + homepage "https://gazebosim.org" + url "https://github.com/gazebosim/gz-cmake.git", branch: "main" + version "5.999.999-0-20251219" + license "Apache-2.0" + + # head "https://github.com/gazebosim/gz-cmake.git", branch: "gz-cmake5" + + depends_on "cmake" + depends_on "pkgconf" + + conflicts_with "gz-jetty-cmake", because: "both install gz-cmake" + + def install + cmake_args = std_cmake_args + cmake_args << "-DBUILD_TESTING=OFF" + + # Use a build folder + mkdir "build" do + system "cmake", "..", *cmake_args + system "make", "install" + end + end + + test do + (testpath/"CMakeLists.txt").write <<-EOS + cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) + project(gz-test VERSION 0.1.0) + find_package(gz-cmake REQUIRED) + gz_configure_project() + gz_configure_build(QUIT_IF_BUILD_ERRORS) + EOS + %w[doc include src test].each do |dir| + mkdir dir do + touch "CMakeLists.txt" + end + end + mkdir "build" do + system "cmake", ".." + end + # check for Xcode frameworks in bottle + cmd_not_grep_xcode = "! grep -rnI 'Applications[/]Xcode' #{prefix}" + system cmd_not_grep_xcode + end +end diff --git a/Formula/gz-scaffold-utils.rb b/Formula/gz-scaffold-utils.rb new file mode 100644 index 000000000..c5fb8452a --- /dev/null +++ b/Formula/gz-scaffold-utils.rb @@ -0,0 +1,68 @@ +class GzScaffoldUtils < Formula + desc "General purpose classes and functions designed for robotic applications" + homepage "https://github.com/gazebosim/gz-utils" + url "https://github.com/gazebosim/gz-utils.git", branch: "main" + version "4.999.999-0-20251219" + license "Apache-2.0" + + depends_on "cmake" => [:build, :test] + depends_on "pkgconf" => [:build, :test] + depends_on "cli11" + depends_on "gz-scaffold-cmake" + depends_on "spdlog" + + conflicts_with "gz-jetty-utils", because: "both install gz-utils" + + def install + cmake_args = std_cmake_args + cmake_args << "-DBUILD_TESTING=OFF" + cmake_args << "-DCMAKE_INSTALL_RPATH=#{rpath}" + + # Use a build folder + mkdir "build" do + system "cmake", "..", *cmake_args + system "make", "install" + end + end + + test do + (testpath/"test.cpp").write <<-EOS + #include + class SomeClassPrivate + { + }; + class SomeClass + { + private: gz::utils::ImplPtr dataPtr = + gz::utils::MakeImpl(); + }; + int main() { + SomeClass object; + return 0; + } + EOS + (testpath/"CMakeLists.txt").write <<-EOS + cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) + find_package(gz-utils QUIET REQUIRED) + add_executable(test_cmake test.cpp) + target_link_libraries(test_cmake gz-utils::gz-utils) + EOS + system "pkg-config", "gz-utils" + cflags = `pkg-config --cflags gz-utils`.split + ldflags = `pkg-config --libs gz-utils`.split + system ENV.cxx, "test.cpp", + *cflags, + *ldflags, + "-o", "test" + system "./test" + # test building with cmake + mkdir "build" do + system "cmake", ".." + system "make" + system "./test_cmake" + end + # check for Xcode frameworks in bottle + cmd_not_grep_xcode = "! grep -rnI 'Applications[/]Xcode' #{prefix}" + system cmd_not_grep_xcode + end +end From 2273de291f0958623067afaddbf0b4af93c9a36d Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Fri, 19 Dec 2025 15:05:45 -0800 Subject: [PATCH 2/8] Add matching conflicts statements Signed-off-by: Steve Peters --- Formula/gz-cmake5.rb | 2 ++ Formula/gz-utils4.rb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Formula/gz-cmake5.rb b/Formula/gz-cmake5.rb index 377892f5f..b38889afd 100644 --- a/Formula/gz-cmake5.rb +++ b/Formula/gz-cmake5.rb @@ -17,6 +17,8 @@ class GzCmake5 < Formula depends_on "cmake" depends_on "pkgconf" + conflicts_with "gz-scaffold-cmake", because: "both install gz-cmake" + def install cmake_args = std_cmake_args cmake_args << "-DBUILD_TESTING=OFF" diff --git a/Formula/gz-utils4.rb b/Formula/gz-utils4.rb index 345e3204c..15636dd5f 100644 --- a/Formula/gz-utils4.rb +++ b/Formula/gz-utils4.rb @@ -20,6 +20,8 @@ class GzUtils4 < Formula depends_on "gz-cmake5" depends_on "spdlog" + conflicts_with "gz-scaffold-utils", because: "both install gz-utils" + def install cmake_args = std_cmake_args cmake_args << "-DBUILD_TESTING=OFF" From 3199fd14ccd4d436a207666be174140189fdab32 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Fri, 19 Dec 2025 15:07:31 -0800 Subject: [PATCH 3/8] remove head Signed-off-by: Steve Peters --- Formula/gz-scaffold-cmake.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/Formula/gz-scaffold-cmake.rb b/Formula/gz-scaffold-cmake.rb index c32cb866e..e99cc7f93 100644 --- a/Formula/gz-scaffold-cmake.rb +++ b/Formula/gz-scaffold-cmake.rb @@ -5,8 +5,6 @@ class GzScaffoldCmake < Formula version "5.999.999-0-20251219" license "Apache-2.0" - # head "https://github.com/gazebosim/gz-cmake.git", branch: "gz-cmake5" - depends_on "cmake" depends_on "pkgconf" From 67bdc22c88faa61a215106c3549fc00b4aaed08c Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Fri, 6 Feb 2026 14:23:19 -0800 Subject: [PATCH 4/8] Rename to gz-rotary-* Signed-off-by: Steve Peters --- Aliases/gz-cmake6 | 2 +- Aliases/gz-utils5 | 2 +- Formula/gz-cmake5.rb | 2 +- Formula/{gz-scaffold-cmake.rb => gz-rotary-cmake.rb} | 2 +- Formula/{gz-scaffold-utils.rb => gz-rotary-utils.rb} | 4 ++-- Formula/gz-utils4.rb | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) rename Formula/{gz-scaffold-cmake.rb => gz-rotary-cmake.rb} (97%) rename Formula/{gz-scaffold-utils.rb => gz-rotary-utils.rb} (96%) diff --git a/Aliases/gz-cmake6 b/Aliases/gz-cmake6 index cb360361f..3920fd878 120000 --- a/Aliases/gz-cmake6 +++ b/Aliases/gz-cmake6 @@ -1 +1 @@ -../Formula/gz-scaffold-cmake.rb \ No newline at end of file +../Formula/gz-rotary-cmake.rb \ No newline at end of file diff --git a/Aliases/gz-utils5 b/Aliases/gz-utils5 index b0b86e500..c0172a46d 120000 --- a/Aliases/gz-utils5 +++ b/Aliases/gz-utils5 @@ -1 +1 @@ -../Formula/gz-scaffold-utils.rb \ No newline at end of file +../Formula/gz-rotary-utils.rb \ No newline at end of file diff --git a/Formula/gz-cmake5.rb b/Formula/gz-cmake5.rb index b38889afd..07d7d2f33 100644 --- a/Formula/gz-cmake5.rb +++ b/Formula/gz-cmake5.rb @@ -17,7 +17,7 @@ class GzCmake5 < Formula depends_on "cmake" depends_on "pkgconf" - conflicts_with "gz-scaffold-cmake", because: "both install gz-cmake" + conflicts_with "gz-rotary-cmake", because: "both install gz-cmake" def install cmake_args = std_cmake_args diff --git a/Formula/gz-scaffold-cmake.rb b/Formula/gz-rotary-cmake.rb similarity index 97% rename from Formula/gz-scaffold-cmake.rb rename to Formula/gz-rotary-cmake.rb index e99cc7f93..518a4994b 100644 --- a/Formula/gz-scaffold-cmake.rb +++ b/Formula/gz-rotary-cmake.rb @@ -1,4 +1,4 @@ -class GzScaffoldCmake < Formula +class GzRotaryCmake < Formula desc "CMake helper functions for building robotic applications" homepage "https://gazebosim.org" url "https://github.com/gazebosim/gz-cmake.git", branch: "main" diff --git a/Formula/gz-scaffold-utils.rb b/Formula/gz-rotary-utils.rb similarity index 96% rename from Formula/gz-scaffold-utils.rb rename to Formula/gz-rotary-utils.rb index c5fb8452a..1a15605bd 100644 --- a/Formula/gz-scaffold-utils.rb +++ b/Formula/gz-rotary-utils.rb @@ -1,4 +1,4 @@ -class GzScaffoldUtils < Formula +class GzRotaryUtils < Formula desc "General purpose classes and functions designed for robotic applications" homepage "https://github.com/gazebosim/gz-utils" url "https://github.com/gazebosim/gz-utils.git", branch: "main" @@ -8,7 +8,7 @@ class GzScaffoldUtils < Formula depends_on "cmake" => [:build, :test] depends_on "pkgconf" => [:build, :test] depends_on "cli11" - depends_on "gz-scaffold-cmake" + depends_on "gz-rotary-cmake" depends_on "spdlog" conflicts_with "gz-jetty-utils", because: "both install gz-utils" diff --git a/Formula/gz-utils4.rb b/Formula/gz-utils4.rb index 15636dd5f..61d3abbb4 100644 --- a/Formula/gz-utils4.rb +++ b/Formula/gz-utils4.rb @@ -20,7 +20,7 @@ class GzUtils4 < Formula depends_on "gz-cmake5" depends_on "spdlog" - conflicts_with "gz-scaffold-utils", because: "both install gz-utils" + conflicts_with "gz-rotary-utils", because: "both install gz-utils" def install cmake_args = std_cmake_args From 8fc125b847fcde7a5b212ced1f194bca64cc5273 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Mon, 23 Feb 2026 13:32:22 -0800 Subject: [PATCH 5/8] Use formula versions 0.1.0 Signed-off-by: Steve Peters --- Formula/gz-rotary-cmake.rb | 2 +- Formula/gz-rotary-utils.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Formula/gz-rotary-cmake.rb b/Formula/gz-rotary-cmake.rb index 518a4994b..a3136d376 100644 --- a/Formula/gz-rotary-cmake.rb +++ b/Formula/gz-rotary-cmake.rb @@ -2,7 +2,7 @@ class GzRotaryCmake < Formula desc "CMake helper functions for building robotic applications" homepage "https://gazebosim.org" url "https://github.com/gazebosim/gz-cmake.git", branch: "main" - version "5.999.999-0-20251219" + version "0.1.0" license "Apache-2.0" depends_on "cmake" diff --git a/Formula/gz-rotary-utils.rb b/Formula/gz-rotary-utils.rb index 1a15605bd..9e60282cf 100644 --- a/Formula/gz-rotary-utils.rb +++ b/Formula/gz-rotary-utils.rb @@ -2,7 +2,7 @@ class GzRotaryUtils < Formula desc "General purpose classes and functions designed for robotic applications" homepage "https://github.com/gazebosim/gz-utils" url "https://github.com/gazebosim/gz-utils.git", branch: "main" - version "4.999.999-0-20251219" + version "0.1.0" license "Apache-2.0" depends_on "cmake" => [:build, :test] From 34e9d1dc232a94ff1a9e5d2711910d6a3dc0029a Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Mon, 23 Feb 2026 13:42:37 -0800 Subject: [PATCH 6/8] Use head instead of stable url, version Signed-off-by: Steve Peters --- Formula/gz-rotary-cmake.rb | 4 ++-- Formula/gz-rotary-utils.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Formula/gz-rotary-cmake.rb b/Formula/gz-rotary-cmake.rb index a3136d376..30e687bce 100644 --- a/Formula/gz-rotary-cmake.rb +++ b/Formula/gz-rotary-cmake.rb @@ -1,10 +1,10 @@ class GzRotaryCmake < Formula desc "CMake helper functions for building robotic applications" homepage "https://gazebosim.org" - url "https://github.com/gazebosim/gz-cmake.git", branch: "main" - version "0.1.0" license "Apache-2.0" + head "https://github.com/gazebosim/gz-cmake.git", branch: "main" + depends_on "cmake" depends_on "pkgconf" diff --git a/Formula/gz-rotary-utils.rb b/Formula/gz-rotary-utils.rb index 9e60282cf..fe64b7ec6 100644 --- a/Formula/gz-rotary-utils.rb +++ b/Formula/gz-rotary-utils.rb @@ -1,10 +1,10 @@ class GzRotaryUtils < Formula desc "General purpose classes and functions designed for robotic applications" homepage "https://github.com/gazebosim/gz-utils" - url "https://github.com/gazebosim/gz-utils.git", branch: "main" - version "0.1.0" license "Apache-2.0" + head "https://github.com/gazebosim/gz-utils.git", branch: "main" + depends_on "cmake" => [:build, :test] depends_on "pkgconf" => [:build, :test] depends_on "cli11" From 131d26b3c45a74e0aec620788d562618127e1393 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Fri, 27 Feb 2026 12:32:25 -0800 Subject: [PATCH 7/8] print caveats after install Signed-off-by: Steve Peters --- Formula/gz-rotary-cmake.rb | 6 ++++++ Formula/gz-rotary-utils.rb | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/Formula/gz-rotary-cmake.rb b/Formula/gz-rotary-cmake.rb index 30e687bce..3b076ce6c 100644 --- a/Formula/gz-rotary-cmake.rb +++ b/Formula/gz-rotary-cmake.rb @@ -21,6 +21,12 @@ def install end end + def caveats + <<~EOS + This is an unstable, development version of Gazebo built from source. + EOS + end + test do (testpath/"CMakeLists.txt").write <<-EOS cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) diff --git a/Formula/gz-rotary-utils.rb b/Formula/gz-rotary-utils.rb index fe64b7ec6..d2394fcb4 100644 --- a/Formula/gz-rotary-utils.rb +++ b/Formula/gz-rotary-utils.rb @@ -25,6 +25,12 @@ def install end end + def caveats + <<~EOS + This is an unstable, development version of Gazebo built from source. + EOS + end + test do (testpath/"test.cpp").write <<-EOS #include From 8dc5349f02b644096c09945d41c52b0583f84c88 Mon Sep 17 00:00:00 2001 From: Steve Peters Date: Fri, 27 Feb 2026 14:52:10 -0800 Subject: [PATCH 8/8] gz-rotary-utils: add missing fmt dep Signed-off-by: Steve Peters --- Formula/gz-rotary-utils.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/Formula/gz-rotary-utils.rb b/Formula/gz-rotary-utils.rb index d2394fcb4..d0c881b56 100644 --- a/Formula/gz-rotary-utils.rb +++ b/Formula/gz-rotary-utils.rb @@ -8,6 +8,7 @@ class GzRotaryUtils < Formula depends_on "cmake" => [:build, :test] depends_on "pkgconf" => [:build, :test] depends_on "cli11" + depends_on "fmt" depends_on "gz-rotary-cmake" depends_on "spdlog"