class Mapnik < Formula desc "Toolkit for developing mapping applications" homepage "https://mapnik.org/" url "https://github.com/mapnik/mapnik/releases/download/v3.0.21/mapnik-v3.0.21.tar.bz2" sha256 "6db7918e8fd24346dfc81745e455c383a718335ffa64015cf625fed5ed92b524" head "https://github.com/mapnik/mapnik.git" bottle do sha256 "dad661596f6ccbc19dc3ba0943b37547faf3b874c2f27951683b1fde2aa9c5f5" => :mojave sha256 "aafd2fcd785323de7be9e5460826a63852efe57b314e329b916a559fd73d0579" => :sierra end depends_on "pkg-config" => :build depends_on "boost" depends_on "cairo" depends_on "freetype" depends_on "gdal" depends_on "harfbuzz" depends_on "icu4c" depends_on "jpeg" depends_on "libpng" depends_on "libtiff" depends_on "postgresql" depends_on "proj" depends_on "webp" # Upstream commit to fix build with boost >= 1.68 patch do url "https://github.com/mapnik/mapnik/commit/c067eb7eec32fdd6d1c3d0e90b13a889459f2756.diff?full_index=1" sha256 "e00e8475f04e9010dbb1724e5ae10403d2e7f1da8a83e67dfb54a7a969d81669" end def install ENV.cxx11 # Work around "error: no member named 'signbit' in the global namespace" # encountered when trying to detect boost regex in configure ENV.delete("SDKROOT") if DevelopmentTools.clang_build_version >= 900 boost = Formula["boost"].opt_prefix freetype = Formula["freetype"].opt_prefix harfbuzz = Formula["harfbuzz"].opt_prefix icu = Formula["icu4c"].opt_prefix jpeg = Formula["jpeg"].opt_prefix libpng = Formula["libpng"].opt_prefix libtiff = Formula["libtiff"].opt_prefix proj = Formula["proj"].opt_prefix webp = Formula["webp"].opt_prefix args = %W[ CC=#{ENV.cc} CXX=#{ENV.cxx} PREFIX=#{prefix} BOOST_INCLUDES=#{boost}/include BOOST_LIBS=#{boost}/lib CAIRO=True CPP_TESTS=False FREETYPE_CONFIG=#{freetype}/bin/freetype-config GDAL_CONFIG=#{Formula["gdal"].opt_bin}/gdal-config HB_INCLUDES=#{harfbuzz}/include HB_LIBS=#{harfbuzz}/lib ICU_INCLUDES=#{icu}/include ICU_LIBS=#{icu}/lib INPUT_PLUGINS=all JPEG_INCLUDES=#{jpeg}/include JPEG_LIBS=#{jpeg}/lib NIK2IMG=False PG_CONFIG=#{Formula["postgresql"].opt_bin}/pg_config PNG_INCLUDES=#{libpng}/include PNG_LIBS=#{libpng}/lib PROJ_INCLUDES=#{proj}/include PROJ_LIBS=#{proj}/lib TIFF_INCLUDES=#{libtiff}/include TIFF_LIBS=#{libtiff}/lib WEBP_INCLUDES=#{webp}/include WEBP_LIBS=#{webp}/lib ] system "./configure", *args system "make" system "make", "install" end test do output = shell_output("#{bin}/mapnik-config --prefix").chomp assert_equal prefix.to_s, output end end