homebrew-core/Formula/mapserver.rb

109 lines
3.5 KiB
Ruby

require 'formula'
class Mapserver < Formula
homepage 'http://mapserver.org/'
url 'http://download.osgeo.org/mapserver/mapserver-6.0.3.tar.gz'
sha1 'd7aa1041c6d9a46da7f5e29ae1b66639d5d050ab'
option "with-fastcgi", "Build with fastcgi support"
option "with-geos", "Build support for GEOS spatial operations"
option "with-php", "Build PHP MapScript module"
option "with-postgresql", "Build support for PostgreSQL as a data source"
depends_on :freetype
depends_on :libpng
depends_on 'giflib'
depends_on 'gd'
depends_on 'proj'
depends_on 'gdal'
depends_on 'geos' if build.include? 'with-geos'
depends_on 'postgresql' if build.include? 'with-postgresql' and not MacOS.version >= :lion
depends_on 'fcgi' if build.include? 'with-fastcgi'
def patches
# Fix clang compilation issue, remove on future release
# See http://trac.osgeo.org/mapserver/changeset/12809
# Fix msGetMarkerSize() called on unloaded pixmap symbol
# https://github.com/mapserver/mapserver/issues/4225
DATA
end
def install
args = [
"--prefix=#{prefix}",
"--with-proj",
"--with-gdal",
"--with-ogr",
]
args << "--with-geos" if build.include? 'with-geos'
args << "--with-php=/usr/include/php" if build.include? 'with-php'
if build.include? 'with-postgresql'
if MacOS.version >= :lion # Lion ships with PostgreSQL libs
args << "--with-postgis"
else
args << "--with-postgis=#{HOMEBREW_PREFIX}/bin/pg_config"
end
end
args << "--with-fastcgi=#{HOMEBREW_PREFIX}" if build.include? 'with-fastcgi'
system "./configure", *args
system "make"
libexec.install "mapscriptvars"
bin.install %w(mapserv shp2img legend shptree shptreevis
shptreetst scalebar sortshp tile4ms
msencrypt mapserver-config)
if build.include? 'with-php'
prefix.install %w(mapscript/php/php_mapscript.so)
end
end
def caveats; <<-EOS.undent
The Mapserver CGI executable is #{bin}/mapserv
If you built the PHP option:
* Add the following line to php.ini:
extension="#{prefix}/php_mapscript.so"
* Execute "php -m"
* You should see MapScript in the module list
EOS
end
def test
system "#{bin}/mapserver-config", "--version"
end
end
__END__
diff --git a/renderers/agg/include/agg_renderer_outline_aa.h b/renderers/agg/include/agg_renderer_outline_aa.h
index 5ff3f20..7a14588 100644
--- a/renderers/agg/include/agg_renderer_outline_aa.h
+++ b/renderers/agg/include/agg_renderer_outline_aa.h
@@ -1365,7 +1365,6 @@ namespace mapserver
//---------------------------------------------------------------------
void profile(const line_profile_aa& prof) { m_profile = &prof; }
const line_profile_aa& profile() const { return *m_profile; }
- line_profile_aa& profile() { return *m_profile; }
//---------------------------------------------------------------------
int subpixel_width() const { return m_profile->subpixel_width(); }
diff --git a/mapsymbol.c b/mapsymbol.c
index 164a0ac..f9dcb20 100644
--- a/mapsymbol.c
+++ b/mapsymbol.c
@@ -601,6 +601,10 @@ int msGetMarkerSize(symbolSetObj *symbolset, styleObj *style, int *width, int *h
}
symbol = symbolset->symbol[style->symbol];
+ if (symbol->type == MS_SYMBOL_PIXMAP && !symbol->pixmap_buffer) {
+ if (MS_SUCCESS != msPreloadImageSymbol(MS_MAP_RENDERER(symbolset->map), symbol))
+ return MS_FAILURE;
+ }
if(style->size == -1) {
size = MS_NINT( msSymbolGetDefaultSize(symbol) * scalefactor );
}