diff --git a/Aliases/gz-transport14 b/Aliases/gz-transport14 deleted file mode 120000 index db444c952..000000000 --- a/Aliases/gz-transport14 +++ /dev/null @@ -1 +0,0 @@ -../Formula/gz-transport13.rb \ No newline at end of file diff --git a/Formula/gz-transport14.rb b/Formula/gz-transport14.rb new file mode 100644 index 000000000..786abbddd --- /dev/null +++ b/Formula/gz-transport14.rb @@ -0,0 +1,85 @@ +class GzTransport14 < Formula + desc "Transport middleware for robotics" + homepage "https://gazebosim.org" + url "https://github.com/gazebosim/gz-transport.git", branch: "main" + version "13.999.999-0-20231016" + license "Apache-2.0" + + head "https://github.com/gazebosim/gz-transport.git", branch: "main" + + depends_on "doxygen" => [:build, :optional] + depends_on "pybind11" => :build + + depends_on "cmake" + depends_on "cppzmq" + depends_on "gz-cmake4" + depends_on "gz-msgs11" + depends_on "gz-tools2" + depends_on "gz-utils3" + depends_on macos: :mojave # c++17 + depends_on "ossp-uuid" + depends_on "pkg-config" + depends_on "protobuf" + depends_on "python@3.11" + depends_on "zeromq" + + def install + rpaths = [ + rpath, + rpath(source: libexec/"gz/transport14", target: lib), + ] + cmake_args = std_cmake_args + cmake_args << "-DBUILD_TESTING=OFF" + cmake_args << "-DCMAKE_INSTALL_RPATH=#{rpaths.join(";")}" + + # Use build folder + mkdir "build" do + system "cmake", "..", *cmake_args + system "make", "install" + end + + (lib/"python3.11/site-packages").install Dir[lib/"python/*"] + rmdir prefix/"lib/python" + end + + test do + # test CLI executables + system libexec/"gz/transport14/gz-transport-service" + system libexec/"gz/transport14/gz-transport-topic" + # build against API + (testpath/"test.cpp").write <<-EOS + #include + #include + int main() { + gz::transport::NodeOptions options; + return 0; + } + EOS + (testpath/"CMakeLists.txt").write <<-EOS + cmake_minimum_required(VERSION 3.10 FATAL_ERROR) + find_package(gz-transport14 QUIET REQUIRED) + add_executable(test_cmake test.cpp) + target_link_libraries(test_cmake gz-transport14::gz-transport14) + EOS + system "pkg-config", "gz-transport14" + cflags = `pkg-config --cflags gz-transport14`.split + system ENV.cc, "test.cpp", + *cflags, + "-L#{lib}", + "-lgz-transport14", + "-lc++", + "-o", "test" + ENV["GZ_PARTITION"] = rand((1 << 32) - 1).to_s + system "./test" + 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 + # check python import + system Formula["python@3.11"].opt_bin/"python3.11", "-c", "import gz.transport14" + end +end