Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion Formula/g/gdal.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ class Gdal < Formula
depends_on "c-blosc"
depends_on "cfitsio"
depends_on "epsilon"
depends_on "expat"
depends_on "freexl"
depends_on "geos"
depends_on "giflib"
Expand Down Expand Up @@ -75,6 +74,7 @@ class Gdal < Formula
depends_on "zstd"

uses_from_macos "curl"
uses_from_macos "expat"
uses_from_macos "zlib"

on_macos do
Expand All @@ -93,7 +93,18 @@ def python3
"python3.13"
end

# Work around superenv to avoid mixing `expat` usage in libraries across dependency tree.
# Brew `expat` usage in Python has low impact as it isn't loaded unless pyexpat is used.
# TODO: Consider adding a DSL for this or change how we handle Python's `expat` dependency
def remove_brew_expat
env_vars = %w[CMAKE_PREFIX_PATH HOMEBREW_INCLUDE_PATHS HOMEBREW_LIBRARY_PATHS PATH PKG_CONFIG_PATH]
ENV.remove env_vars, /(^|:)#{Regexp.escape(Formula["expat"].opt_prefix)}[^:]*/
ENV.remove "HOMEBREW_DEPENDENCIES", "expat"
end

def install
remove_brew_expat if OS.mac? && MacOS.version < :sequoia

site_packages = prefix/Language::Python.site_packages(python3)
# Work around Homebrew's "prefix scheme" patch which causes non-pip installs
# to incorrectly try to write into HOMEBREW_PREFIX/lib since Python 3.10.
Expand Down
14 changes: 13 additions & 1 deletion Formula/o/osm2pgrouting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,29 @@ class Osm2pgrouting < Formula

depends_on "cmake" => :build
depends_on "boost"
depends_on "expat"
depends_on "libpq"
depends_on "libpqxx"
depends_on "pgrouting"
depends_on "postgis"

uses_from_macos "expat"

# Fix build failure due to missing include
# src/osm_elements/osm_tag.cpp:34:18: error: 'transform' is not a member of 'std'
patch :DATA

# Work around superenv to avoid mixing `expat` usage in libraries across dependency tree.
# Brew `expat` usage in Python has low impact as it isn't loaded unless pyexpat is used.
# TODO: Consider adding a DSL for this or change how we handle Python's `expat` dependency
def remove_brew_expat
env_vars = %w[CMAKE_PREFIX_PATH HOMEBREW_INCLUDE_PATHS HOMEBREW_LIBRARY_PATHS PATH PKG_CONFIG_PATH]
ENV.remove env_vars, /(^|:)#{Regexp.escape(Formula["expat"].opt_prefix)}[^:]*/
ENV.remove "HOMEBREW_DEPENDENCIES", "expat"
end

def install
remove_brew_expat if OS.mac? && MacOS.version < :sequoia

system "cmake", "-S", ".", "-B", "build", "-DCMAKE_POLICY_VERSION_MINIMUM=3.5", *std_cmake_args
system "cmake", "--build", "build"
system "cmake", "--install", "build"
Expand Down
24 changes: 13 additions & 11 deletions Formula/o/osmcoastline.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,27 @@ class Osmcoastline < Formula
depends_on "cmake" => :build
depends_on "libosmium" => :build
depends_on "protozero" => :build
depends_on "expat"
depends_on "gdal"
depends_on "geos"
depends_on "libspatialite"
depends_on "lz4"

uses_from_macos "bzip2"
uses_from_macos "expat"
uses_from_macos "sqlite"
uses_from_macos "zlib"

# Work around superenv to avoid mixing `expat` usage in libraries across dependency tree.
# Brew `expat` usage in Python has low impact as it isn't loaded unless pyexpat is used.
# TODO: Consider adding a DSL for this or change how we handle Python's `expat` dependency
def remove_brew_expat
env_vars = %w[CMAKE_PREFIX_PATH HOMEBREW_INCLUDE_PATHS HOMEBREW_LIBRARY_PATHS PATH PKG_CONFIG_PATH]
ENV.remove env_vars, /(^|:)#{Regexp.escape(Formula["expat"].opt_prefix)}[^:]*/
ENV.remove "HOMEBREW_DEPENDENCIES", "expat"
end

def install
# Work around an Xcode 15 linker issue which causes linkage against LLVM's
# libunwind due to it being present in a library search path.
if DevelopmentTools.clang_build_version >= 1500
recursive_dependencies
.select { |d| d.name.match?(/^llvm(@\d+)?$/) }
.map { |llvm_dep| llvm_dep.to_formula.opt_lib }
.each { |llvm_lib| ENV.remove "HOMEBREW_LIBRARY_PATHS", llvm_lib }
end
remove_brew_expat if OS.mac? && MacOS.version < :sequoia

protozero = Formula["protozero"].opt_include
args = %W[
Expand All @@ -50,13 +52,13 @@ def install
end

test do
(testpath/"input.opl").write <<~EOS
(testpath/"input.opl").write <<~OPL
n100 v1 x1.01 y1.01
n101 v1 x1.04 y1.01
n102 v1 x1.04 y1.04
n103 v1 x1.01 y1.04
w200 v1 Tnatural=coastline Nn100,n101,n102,n103,n100
EOS
OPL
system bin/"osmcoastline", "-v", "-o", "output.db", "input.opl"
end
end
Loading