| # BSD 2-Clause License |
| # |
| # Copyright (c) 2009-present, Homebrew contributors |
| # All rights reserved. |
| # |
| # Redistribution and use in source and binary forms, with or without |
| # modification, are permitted provided that the following conditions are met: |
| # |
| # * Redistributions of source code must retain the above copyright notice, this |
| # list of conditions and the following disclaimer. |
| # |
| # * Redistributions in binary form must reproduce the above copyright notice, |
| # this list of conditions and the following disclaimer in the documentation |
| # and/or other materials provided with the distribution. |
| # |
| # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
| # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| |
| # https://github.com/Homebrew/homebrew-core/blob/-/Formula/a/apache-arrow-glib.rb |
| |
| class ApacheArrowGlib < Formula |
| desc "GLib bindings for Apache Arrow" |
| homepage "https://arrow.apache.org/" |
| url "https://www.apache.org/dyn/closer.lua?path=arrow/arrow-20.0.0/apache-arrow-20.0.0.tar.gz" |
| sha256 "9948ddb6d4798b51552d0dca3252dd6e3a7d0f9702714fc6f5a1b59397ce1d28" |
| license "Apache-2.0" |
| head "https://github.com/apache/arrow.git", branch: "main" |
| |
| livecheck do |
| formula "apache-arrow" |
| end |
| |
| depends_on "gobject-introspection" => :build |
| depends_on "meson" => :build |
| depends_on "ninja" => :build |
| depends_on "pkgconf" => [:build, :test] |
| depends_on "apache-arrow" |
| depends_on "glib" |
| |
| def install |
| system "meson", "setup", "build", "c_glib", *std_meson_args |
| system "meson", "compile", "-C", "build", "--verbose" |
| system "meson", "install", "-C", "build" |
| end |
| |
| test do |
| (testpath/"test.c").write <<~C |
| #include <arrow-glib/arrow-glib.h> |
| int main(void) { |
| GArrowNullArray *array = garrow_null_array_new(10); |
| g_object_unref(array); |
| return 0; |
| } |
| C |
| |
| flags = shell_output("pkgconf --cflags --libs arrow-glib gobject-2.0").chomp.split |
| system ENV.cc, "test.c", "-o", "test", *flags |
| system "./test" |
| end |
| end |