mapnik: Harden build. New: --with-gdal --with-geos
- Mapnik searches for py2cairo -> added dep if --with-cairo - Explicitly give includes and libs for icu, boost, proj, jpeg, libtif, and cairo - pkg-config is not only used for cairo -> moved it out of the `if build.include? 'with-cairo'` block Closes Homebrew/homebrew#17032. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
This commit is contained in:
parent
8ce5172558
commit
270b18e1f5
1 changed files with 39 additions and 12 deletions
|
@ -8,6 +8,8 @@ class Mapnik < Formula
|
|||
head 'https://github.com/mapnik/mapnik.git'
|
||||
|
||||
option 'with-cairo', 'Build with Cairo'
|
||||
option 'with-gdal', 'Build with optional "Geospatial Data Abstraction Library"'
|
||||
option 'with-geos', 'Build with the GEOS (Geometry Engine)'
|
||||
|
||||
depends_on :libtool => :build
|
||||
depends_on :freetype
|
||||
|
@ -17,15 +19,23 @@ class Mapnik < Formula
|
|||
depends_on 'icu4c'
|
||||
depends_on 'jpeg'
|
||||
depends_on 'boost'
|
||||
depends_on 'gdal' if build.include? 'with-gdal'
|
||||
depends_on 'geos' if build.include? 'with-geos'
|
||||
depends_on 'pkg-config' => :build
|
||||
|
||||
if build.include? 'with-cairo'
|
||||
depends_on 'pkg-config' => :build
|
||||
depends_on 'cairo' => :optional
|
||||
depends_on 'py2cairo'
|
||||
depends_on 'cairomm' => :optional
|
||||
end
|
||||
|
||||
def install
|
||||
icu = Formula.factory("icu4c")
|
||||
icu = Formula.factory("icu4c").opt_prefix
|
||||
boost = Formula.factory('boost').opt_prefix
|
||||
proj = Formula.factory('proj').opt_prefix
|
||||
jpeg = Formula.factory('jpeg').opt_prefix
|
||||
libtiff = Formula.factory('libtiff').opt_prefix
|
||||
cairo = Formula.factory('cairo').opt_prefix if build.include? 'cairo'
|
||||
# mapnik compiles can take ~1.5 GB per job for some .cpp files
|
||||
# so lets be cautious by limiting to CPUS/2
|
||||
jobs = ENV.make_jobs
|
||||
|
@ -33,16 +43,33 @@ class Mapnik < Formula
|
|||
jobs = Integer(jobs/2)
|
||||
end
|
||||
|
||||
system "python",
|
||||
"scons/scons.py",
|
||||
"configure",
|
||||
"CC=\"#{ENV.cc}\"",
|
||||
"CXX=\"#{ENV.cxx}\"",
|
||||
"JOBS=#{jobs}",
|
||||
"PREFIX=#{prefix}",
|
||||
"ICU_INCLUDES=#{icu.include}",
|
||||
"ICU_LIBS=#{icu.lib}",
|
||||
"PYTHON_PREFIX=#{prefix}" # Install to Homebrew's site-packages
|
||||
args = [ "scons/scons.py",
|
||||
"configure",
|
||||
"CC=\"#{ENV.cc}\"",
|
||||
"CXX=\"#{ENV.cxx}\"",
|
||||
"JOBS=#{jobs}",
|
||||
"PREFIX=#{prefix}",
|
||||
"ICU_INCLUDES=#{icu}/include",
|
||||
"ICU_LIBS=#{icu}/lib",
|
||||
"PYTHON_PREFIX=#{prefix}", # Install to Homebrew's site-packages
|
||||
"JPEG_INCLUDES=#{jpeg}/include",
|
||||
"JPEG_LIBS=#{jpeg}/lib",
|
||||
"TIFF_INCLUDES=#{libtiff}/include",
|
||||
"TIFF_LIBS=#{libtiff}/lib",
|
||||
"BOOST_INCLUDES=#{boost}/include",
|
||||
"BOOST_LIBS=#{boost}/lib",
|
||||
"PROJ_INCLUDES=#{proj}/include",
|
||||
"PROJ_LIBS=#{proj}/lib" ]
|
||||
|
||||
if build.include? 'cairo'
|
||||
args << "CAIRO_INCLUDES=#{cairo}/include"
|
||||
args << "CAIRO_LIBS=#{cairo}/lib"
|
||||
end
|
||||
args << "GEOS_CONFIG=#{Formula.factory('geos').opt_prefix}/bin/geos-config" if build.include? 'with-geos'
|
||||
args << "GDAL_CONFIG=#{Formula.factory('gdal').opt_prefix}/bin/gdal-config" if build.include? 'with-gdal'
|
||||
|
||||
system "python", *args
|
||||
|
||||
system "python",
|
||||
"scons/scons.py",
|
||||
"install"
|
||||
|
|
Loading…
Reference in a new issue