homebrew-core/Formula/gdal.rb

202 lines
5.8 KiB
Ruby
Raw Normal View History

require 'formula'
Refactored GDAL formula to increase functionality The usefullness of the GDAL library is limited by the number of formats it supports. In light of this, the formula has been re-worked to provide maximum support for file formats without increasing the dependency list, with the exception of common image formats such as JPEG and GIF. Changes made in persuit of this goal are: - Removed libtiff as a dependency-- now provided by an internal GDAL library for support of the BigTIFF format. - Added `jpeg` and `giflib` as dependencies to complete support for common image file formats. - Enabled GDAL-native BSB, GRIB and PCRaster support. - Added support for Expat, CURL, and Sqlite3 which are provided by OS X. - Added support for `--HEAD` builds that compile from the gdal-dev source available via SVN. Also, disabled drivers have been grouped according to open-source/proprietary status. Additionally, a `--complete` installation option has been added. This option is will trigger the installation of additional Homebrew formulae that increase the capabilities of GDAL. By specifying the `--complete` flag, GDAL will now depend on and link against the following libraries in order to provide more drivers for reading and writing data: Raster Formats: - HDF5 - NetCDF - JasPer Vector Formats: - ODBC - LibSpatialite - Xerces-C Support for database servers has been added via the `--with-postgres` and `--with-mysql` flags. These will cause PostgreSQL or MySQL to be added the dependency list of GDAL. Python bindings are now built by default as they provide ~18 additional command line tools in addition to the Python module. The formula ensures that these bindings are installed into the Homebrew prefix and not some random Python site directory. Compilation of the bindings can be disabled by passing the `--without-python` flag to `brew install`. The Perl, PHP and Ruby bindings remain disabled as they install outside of the Homebrew prefix. Users may manually enable them at their discretion. Getting these bindings to install into the brew prefix is an area for further development. Finally, some cleanup of the configure options has occurred: - Removed invalid configuration options. - Fixed threading support. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-25 17:58:18 +00:00
def complete?
ARGV.include? "--complete"
end
def postgres?
ARGV.include? "--with-postgres"
end
def mysql?
ARGV.include? "--with-mysql"
end
def no_python?
ARGV.include? "--without-python"
end
2011-03-10 05:11:03 +00:00
class Gdal < Formula
url 'http://download.osgeo.org/gdal/gdal-1.8.0.tar.gz'
Refactored GDAL formula to increase functionality The usefullness of the GDAL library is limited by the number of formats it supports. In light of this, the formula has been re-worked to provide maximum support for file formats without increasing the dependency list, with the exception of common image formats such as JPEG and GIF. Changes made in persuit of this goal are: - Removed libtiff as a dependency-- now provided by an internal GDAL library for support of the BigTIFF format. - Added `jpeg` and `giflib` as dependencies to complete support for common image file formats. - Enabled GDAL-native BSB, GRIB and PCRaster support. - Added support for Expat, CURL, and Sqlite3 which are provided by OS X. - Added support for `--HEAD` builds that compile from the gdal-dev source available via SVN. Also, disabled drivers have been grouped according to open-source/proprietary status. Additionally, a `--complete` installation option has been added. This option is will trigger the installation of additional Homebrew formulae that increase the capabilities of GDAL. By specifying the `--complete` flag, GDAL will now depend on and link against the following libraries in order to provide more drivers for reading and writing data: Raster Formats: - HDF5 - NetCDF - JasPer Vector Formats: - ODBC - LibSpatialite - Xerces-C Support for database servers has been added via the `--with-postgres` and `--with-mysql` flags. These will cause PostgreSQL or MySQL to be added the dependency list of GDAL. Python bindings are now built by default as they provide ~18 additional command line tools in addition to the Python module. The formula ensures that these bindings are installed into the Homebrew prefix and not some random Python site directory. Compilation of the bindings can be disabled by passing the `--without-python` flag to `brew install`. The Perl, PHP and Ruby bindings remain disabled as they install outside of the Homebrew prefix. Users may manually enable them at their discretion. Getting these bindings to install into the brew prefix is an area for further development. Finally, some cleanup of the configure options has occurred: - Removed invalid configuration options. - Fixed threading support. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-25 17:58:18 +00:00
head 'https://svn.osgeo.org/gdal/trunk/gdal', :using => :svn
homepage 'http://www.gdal.org/'
md5 'c762cdab0f7e51a677ba49278a8a263d'
Refactored GDAL formula to increase functionality The usefullness of the GDAL library is limited by the number of formats it supports. In light of this, the formula has been re-worked to provide maximum support for file formats without increasing the dependency list, with the exception of common image formats such as JPEG and GIF. Changes made in persuit of this goal are: - Removed libtiff as a dependency-- now provided by an internal GDAL library for support of the BigTIFF format. - Added `jpeg` and `giflib` as dependencies to complete support for common image file formats. - Enabled GDAL-native BSB, GRIB and PCRaster support. - Added support for Expat, CURL, and Sqlite3 which are provided by OS X. - Added support for `--HEAD` builds that compile from the gdal-dev source available via SVN. Also, disabled drivers have been grouped according to open-source/proprietary status. Additionally, a `--complete` installation option has been added. This option is will trigger the installation of additional Homebrew formulae that increase the capabilities of GDAL. By specifying the `--complete` flag, GDAL will now depend on and link against the following libraries in order to provide more drivers for reading and writing data: Raster Formats: - HDF5 - NetCDF - JasPer Vector Formats: - ODBC - LibSpatialite - Xerces-C Support for database servers has been added via the `--with-postgres` and `--with-mysql` flags. These will cause PostgreSQL or MySQL to be added the dependency list of GDAL. Python bindings are now built by default as they provide ~18 additional command line tools in addition to the Python module. The formula ensures that these bindings are installed into the Homebrew prefix and not some random Python site directory. Compilation of the bindings can be disabled by passing the `--without-python` flag to `brew install`. The Perl, PHP and Ruby bindings remain disabled as they install outside of the Homebrew prefix. Users may manually enable them at their discretion. Getting these bindings to install into the brew prefix is an area for further development. Finally, some cleanup of the configure options has occurred: - Removed invalid configuration options. - Fixed threading support. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-25 17:58:18 +00:00
depends_on 'jpeg'
depends_on 'giflib'
depends_on 'proj'
depends_on 'geos'
Refactored GDAL formula to increase functionality The usefullness of the GDAL library is limited by the number of formats it supports. In light of this, the formula has been re-worked to provide maximum support for file formats without increasing the dependency list, with the exception of common image formats such as JPEG and GIF. Changes made in persuit of this goal are: - Removed libtiff as a dependency-- now provided by an internal GDAL library for support of the BigTIFF format. - Added `jpeg` and `giflib` as dependencies to complete support for common image file formats. - Enabled GDAL-native BSB, GRIB and PCRaster support. - Added support for Expat, CURL, and Sqlite3 which are provided by OS X. - Added support for `--HEAD` builds that compile from the gdal-dev source available via SVN. Also, disabled drivers have been grouped according to open-source/proprietary status. Additionally, a `--complete` installation option has been added. This option is will trigger the installation of additional Homebrew formulae that increase the capabilities of GDAL. By specifying the `--complete` flag, GDAL will now depend on and link against the following libraries in order to provide more drivers for reading and writing data: Raster Formats: - HDF5 - NetCDF - JasPer Vector Formats: - ODBC - LibSpatialite - Xerces-C Support for database servers has been added via the `--with-postgres` and `--with-mysql` flags. These will cause PostgreSQL or MySQL to be added the dependency list of GDAL. Python bindings are now built by default as they provide ~18 additional command line tools in addition to the Python module. The formula ensures that these bindings are installed into the Homebrew prefix and not some random Python site directory. Compilation of the bindings can be disabled by passing the `--without-python` flag to `brew install`. The Perl, PHP and Ruby bindings remain disabled as they install outside of the Homebrew prefix. Users may manually enable them at their discretion. Getting these bindings to install into the brew prefix is an area for further development. Finally, some cleanup of the configure options has occurred: - Removed invalid configuration options. - Fixed threading support. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-25 17:58:18 +00:00
if complete?
# Raster libraries
depends_on "netcdf" # Also brings in HDF5
depends_on "jasper" # May need a keg-only GeoJasPer library as this one is
# not geo-spatially enabled.
# Vector libraries
depends_on "unixodbc" # OS X version is not complete enough
depends_on "libspatialite"
depends_on "xerces-c"
end
depends_on "postgresql" if postgres?
depends_on "mysql" if mysql?
def options
[
['--complete', 'Use additional Homebrew libraries to provide more drivers.'],
['--with-postgres', 'Specify PostgreSQL as a dependency.'],
['--with-mysql', 'Specify MySQL as a dependency.'],
['--without-python', 'Build without Python support (disables a lot of tools).']
]
end
def get_configure_args
args = [
# Base configuration.
"--disable-debug",
"--with-local=#{prefix}",
"--with-threads",
"--with-libtool",
# GDAL native backends.
"--with-libtiff=internal", # For bigTIFF support
"--with-geotiff=internal",
"--with-pcraster=internal",
"--with-pcidsk=internal",
"--with-bsb",
"--with-grib",
"--with-pam",
# Backends supported by OS X.
"--with-libz=/usr",
"--with-png=/usr/X11",
"--with-expat=/usr",
"--with-curl=/usr/bin/curl-config",
"--with-sqlite3=/usr",
# Default Homebrew backends.
"--with-jpeg=#{HOMEBREW_PREFIX}",
"--with-jpeg12",
"--with-gif=#{HOMEBREW_PREFIX}",
# GRASS backend explicitly disabled. Creates a chicken-and-egg problem.
# Should be installed seperately after GRASS installation using the
# official GDAL GRASS plugin.
"--without-grass",
"--without-libgrass"
]
# Optional library support for additional formats.
if complete?
args.concat [
"--with-netcdf=#{HOMEBREW_PREFIX}",
"--with-hdf5=#{HOMEBREW_PREFIX}",
"--with-jasper=#{HOMEBREW_PREFIX}",
"--with-odbc=#{HOMEBREW_PREFIX}",
"--with-spatialite=#{HOMEBREW_PREFIX}",
"--with-xerces=#{HOMEBREW_PREFIX}"
]
else
args.concat [
"--without-cfitsio",
"--without-netcdf",
"--without-ogdi",
"--without-hdf4",
"--without-hdf5",
"--without-jasper",
"--without-xerces",
"--without-epsilon",
"--without-spatialite",
"--with-dods-root=no",
# The following libraries are either proprietary or available under
# non-free licenses. Interested users will have to install such
# software manually.
"--without-msg",
"--without-mrsid",
"--without-jp2mrsid",
"--without-kakadu",
"--without-fme",
"--without-ecw",
"--without-dwgdirect"
]
end
# Database support.
args << "--without-pg" unless postgres?
args << "--without-mysql" unless mysql?
args << "--without-sde" # ESRI ArcSDE databases
args << "--without-ingres" # Ingres databases
args << "--without-oci" # Oracle databases
args << "--without-idb" # IBM Informix DataBlades
# Hombrew-provided databases.
args << "--with-pg=#{HOMEBREW_PREFIX}/bin/pg_config" if postgres?
args << "--with-mysql=#{HOMEBREW_PREFIX}/bin/mysql_config" if mysql?
args << "--without-python" # Installed using a seperate set of
# steps so that everything winds up
# in the prefix.
# Scripting APIs that have not been re-worked to respect Homebrew prefixes.
#
# Currently disabled as they install willy-nilly into locations outside of
# the Hombrew prefix. Enable if you feel like it, but uninstallation may be
# a manual affair.
#
# TODO: Fix installation of script bindings so they install into the
# Homebrew prefix.
args << "--without-perl"
args << "--without-php"
args << "--without-ruby"
return args
end
def install
Refactored GDAL formula to increase functionality The usefullness of the GDAL library is limited by the number of formats it supports. In light of this, the formula has been re-worked to provide maximum support for file formats without increasing the dependency list, with the exception of common image formats such as JPEG and GIF. Changes made in persuit of this goal are: - Removed libtiff as a dependency-- now provided by an internal GDAL library for support of the BigTIFF format. - Added `jpeg` and `giflib` as dependencies to complete support for common image file formats. - Enabled GDAL-native BSB, GRIB and PCRaster support. - Added support for Expat, CURL, and Sqlite3 which are provided by OS X. - Added support for `--HEAD` builds that compile from the gdal-dev source available via SVN. Also, disabled drivers have been grouped according to open-source/proprietary status. Additionally, a `--complete` installation option has been added. This option is will trigger the installation of additional Homebrew formulae that increase the capabilities of GDAL. By specifying the `--complete` flag, GDAL will now depend on and link against the following libraries in order to provide more drivers for reading and writing data: Raster Formats: - HDF5 - NetCDF - JasPer Vector Formats: - ODBC - LibSpatialite - Xerces-C Support for database servers has been added via the `--with-postgres` and `--with-mysql` flags. These will cause PostgreSQL or MySQL to be added the dependency list of GDAL. Python bindings are now built by default as they provide ~18 additional command line tools in addition to the Python module. The formula ensures that these bindings are installed into the Homebrew prefix and not some random Python site directory. Compilation of the bindings can be disabled by passing the `--without-python` flag to `brew install`. The Perl, PHP and Ruby bindings remain disabled as they install outside of the Homebrew prefix. Users may manually enable them at their discretion. Getting these bindings to install into the brew prefix is an area for further development. Finally, some cleanup of the configure options has occurred: - Removed invalid configuration options. - Fixed threading support. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-25 17:58:18 +00:00
system "./configure", "--prefix=#{prefix}", *get_configure_args
system "make"
system "make install"
Refactored GDAL formula to increase functionality The usefullness of the GDAL library is limited by the number of formats it supports. In light of this, the formula has been re-worked to provide maximum support for file formats without increasing the dependency list, with the exception of common image formats such as JPEG and GIF. Changes made in persuit of this goal are: - Removed libtiff as a dependency-- now provided by an internal GDAL library for support of the BigTIFF format. - Added `jpeg` and `giflib` as dependencies to complete support for common image file formats. - Enabled GDAL-native BSB, GRIB and PCRaster support. - Added support for Expat, CURL, and Sqlite3 which are provided by OS X. - Added support for `--HEAD` builds that compile from the gdal-dev source available via SVN. Also, disabled drivers have been grouped according to open-source/proprietary status. Additionally, a `--complete` installation option has been added. This option is will trigger the installation of additional Homebrew formulae that increase the capabilities of GDAL. By specifying the `--complete` flag, GDAL will now depend on and link against the following libraries in order to provide more drivers for reading and writing data: Raster Formats: - HDF5 - NetCDF - JasPer Vector Formats: - ODBC - LibSpatialite - Xerces-C Support for database servers has been added via the `--with-postgres` and `--with-mysql` flags. These will cause PostgreSQL or MySQL to be added the dependency list of GDAL. Python bindings are now built by default as they provide ~18 additional command line tools in addition to the Python module. The formula ensures that these bindings are installed into the Homebrew prefix and not some random Python site directory. Compilation of the bindings can be disabled by passing the `--without-python` flag to `brew install`. The Perl, PHP and Ruby bindings remain disabled as they install outside of the Homebrew prefix. Users may manually enable them at their discretion. Getting these bindings to install into the brew prefix is an area for further development. Finally, some cleanup of the configure options has occurred: - Removed invalid configuration options. - Fixed threading support. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-25 17:58:18 +00:00
unless no_python?
# If setuptools happens to be installed, setup.py will cowardly refuse to
# install to anywhere that is not on the PYTHONPATH.
#
# Really setuptools, we're all consenting adults here...
python_lib = lib + "python"
ENV.append 'PYTHONPATH', python_lib
# setuptools is also apparently incapable of making the directory it's
# self
python_lib.mkpath
# `python-config` may try to talk us into building bindings for more
# architectures than we really should.
2011-03-18 17:30:47 +00:00
if MacOS.prefer_64_bit?
Refactored GDAL formula to increase functionality The usefullness of the GDAL library is limited by the number of formats it supports. In light of this, the formula has been re-worked to provide maximum support for file formats without increasing the dependency list, with the exception of common image formats such as JPEG and GIF. Changes made in persuit of this goal are: - Removed libtiff as a dependency-- now provided by an internal GDAL library for support of the BigTIFF format. - Added `jpeg` and `giflib` as dependencies to complete support for common image file formats. - Enabled GDAL-native BSB, GRIB and PCRaster support. - Added support for Expat, CURL, and Sqlite3 which are provided by OS X. - Added support for `--HEAD` builds that compile from the gdal-dev source available via SVN. Also, disabled drivers have been grouped according to open-source/proprietary status. Additionally, a `--complete` installation option has been added. This option is will trigger the installation of additional Homebrew formulae that increase the capabilities of GDAL. By specifying the `--complete` flag, GDAL will now depend on and link against the following libraries in order to provide more drivers for reading and writing data: Raster Formats: - HDF5 - NetCDF - JasPer Vector Formats: - ODBC - LibSpatialite - Xerces-C Support for database servers has been added via the `--with-postgres` and `--with-mysql` flags. These will cause PostgreSQL or MySQL to be added the dependency list of GDAL. Python bindings are now built by default as they provide ~18 additional command line tools in addition to the Python module. The formula ensures that these bindings are installed into the Homebrew prefix and not some random Python site directory. Compilation of the bindings can be disabled by passing the `--without-python` flag to `brew install`. The Perl, PHP and Ruby bindings remain disabled as they install outside of the Homebrew prefix. Users may manually enable them at their discretion. Getting these bindings to install into the brew prefix is an area for further development. Finally, some cleanup of the configure options has occurred: - Removed invalid configuration options. - Fixed threading support. Signed-off-by: Adam Vandenberg <flangy@gmail.com>
2010-09-25 17:58:18 +00:00
ENV.append_to_cflags '-arch x86_64'
else
ENV.append_to_cflags '-arch i386'
end
Dir.chdir 'swig/python' do
system "python", "setup.py", "install_lib", "--install-dir=#{python_lib}"
bin.install Dir['scripts/*']
end
end
end
unless no_python?
def caveats
<<-EOS
This version of GDAL was built with Python support. In addition to providing
modules that makes GDAL functions available to Python scripts, the Python
binding provides ~18 additional command line tools. However, both the Python
bindings and the additional tools will be unusable unless the following
directory is added to the PYTHONPATH:
#{HOMEBREW_PREFIX}/lib/python
EOS
end
end
end