Skip to content
Snippets Groups Projects
Commit a6e2f1a9 authored by Neil Flood's avatar Neil Flood Committed by Massimiliano Culpo
Browse files

mapserver: new package (#10067)

parent e0575000
No related branches found
No related tags found
No related merge requests found
# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
class Mapserver(CMakePackage):
"""MapServer is an Open Source geographic data rendering engine written
in C. Beyond browsing GIS data, MapServer allows you create
"geographic image maps", that is, maps that can direct users
to content"""
homepage = "http://www.mapserver.org/"
url = "http://download.osgeo.org/mapserver/mapserver-7.2.1.tar.gz"
version('7.2.1', sha256='9459a7057d5a85be66a41096a5d804f74665381186c37077c94b56e784db6102')
variant('python', default=False, description='Enable Python mapscript support')
variant('curl', default=False, description='Enable Curl HTTP support (required for wms/wfs client, and remote SLD)')
variant('ruby', default=False, description='Enable Ruby mapscript support')
variant('java', default=False, description='Enable Java mapscript support')
variant('perl', default=False, description='Enable Perl mapscript support')
depends_on('libpng')
depends_on('freetype')
depends_on('jpeg')
depends_on('zlib')
depends_on('proj')
depends_on('curl', when='+curl')
depends_on('geos')
depends_on('libxml2')
depends_on('gdal')
depends_on('swig', type='build')
depends_on('python', when='+python')
depends_on('ruby', when='+ruby')
depends_on('java', when='+java')
depends_on('perl', when='+perl')
extends('python', when='+python')
@when('+python')
def patch(self):
# The Python bindings install themselves into the main python
# site-packages directory, instead of under the current package
# prefix. This hack patches the CMakeLists.txt for the Python
# bindings and hard-wires in the right destination. A bit ugly,
# sorry, but I don't speak cmake.
pyversiondir = "python{0}".format(self.spec['python'].version.up_to(2))
sitepackages = os.path.join(self.spec.prefix.lib,
pyversiondir,
"site-packages")
filter_file(r'\${PYTHON_SITE_PACKAGES}',
sitepackages,
'mapscript/python/CMakeLists.txt')
def cmake_args(self):
args = []
if '+python' in self.spec:
args.append('-DWITH_PYTHON=ON')
else:
args.append('-DWITH_PYTHON=OFF')
if '+java' in self.spec:
args.append('-DWITH_JAVA=ON')
else:
args.append('-DWITH_JAVA=OFF')
if '+ruby' in self.spec:
args.append('-DWITH_RUBY=ON')
else:
args.append('-DWITH_RUBY=OFF')
if '+perl' in self.spec:
args.append('-DWITH_PERL=ON')
else:
args.append('-DWITH_PERL=OFF')
if '+curl' in self.spec:
args.append('-DWITH_CURL=ON')
else:
args.append('-DWITH_CURL=OFF')
# These things are switched on by default, although possibly some
# should be variants.
args.append('-DWITH_WCS=ON')
args.append('-DWITH_WFS=ON')
args.append('-DWITH_WMS=ON')
# These things are switched of until someone bothers to make them work
args.append('-DWITH_FRIBIDI=OFF')
args.append('-DWITH_HARFBUZZ=OFF')
args.append('-DWITH_CAIRO=OFF')
args.append('-DWITH_FCGI=OFF')
args.append('-DWITH_PROTOBUFC=OFF')
return args
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment