# Created by: Douglas K. Rand <rand@meridian-enviro.com>
# $FreeBSD: tags/RELEASE_11_0_0/graphics/mapserver/Makefile 418857 2016-07-20 21:30:03Z dinoex $

PORTNAME=		mapserver
PORTVERSION=		7.0.1
PORTREVISION=	3
CATEGORIES=		graphics www geography
MASTER_SITES=		http://download.osgeo.org/mapserver/

MAINTAINER=		wen@FreeBSD.org
COMMENT=		System for developing web-based GIS applications

LICENSE=		MIT

LIB_DEPENDS=		libgd.so:graphics/gd \
			libproj.so:graphics/proj \
			libpng.so:graphics/png \
			libgif.so:graphics/giflib \
			libharfbuzz.so:print/harfbuzz

USES=			cpe cmake:outsource jpeg
CPE_VENDOR=		umn
USE_GNOME=		libxml2
LDFLAGS+=		-L${LOCALBASE} -pthread
CMAKE_ARGS+=		-DCMAKE_PREFIX_PATH=${LOCALBASE} \
			-DCMAKE_INSTALL_PREFIX=${PREFIX} \
			-DWITH_GD=1
MAKE_JOBS_UNSAFE=	yes

OPTIONS_DEFINE=		FRIBIDI CURL GDAL GEOS KML POSTGIS PHP PERL PYTHON \
			WMS WFS WCS FASTCGI DEBUG CAIRO CAIRO_SVG \
			CLIENT_WMS CLIENT_WFS
OPTIONS_DEFAULT=	FRIBIDI GDAL GEOS CLIENT_WMS CLIENT_WFS KML CAIRO_SVG
CAIRO_SVG_DESC=		Cairo SVG parser support
GDAL_DESC=		GDAL library support
FRIBIDI_DESC=		Fribidi library support
KML_DESC=		KML support
WMS_DESC=		WMS Server support
WFS_DESC=		WFS Server support
WCS_DESC=		WCS Server support

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MPYTHON}
USES+=			python:2
BUILD_DEPENDS+=		swig2.0:devel/swig20
CMAKE_ARGS+=		-DWITH_PYTHON=yes
PLIST_SUB+=		PYTHON=""
MAP_EGG=		MapScript-${PORTVERSION}-${PYTHON_VERSION:S/thon//}
PLIST_SUB+=		MAP_EGG=${MAP_EGG}
.else
PLIST_SUB+=		PYTHON="@comment "
.endif

.if ${PORT_OPTIONS:MCAIRO}
LIB_DEPENDS+=		libcairo.so:graphics/cairo \
			libexpat.so:textproc/expat2
CMAKE_ARGS+=		-DWITH_CAIRO=1
.else
CMAKE_ARGS+=		-DWITH_CAIRO=0
.endif

.if ${PORT_OPTIONS:MFRIBIDI}
LIB_DEPENDS+=		libfribidi.so:converters/fribidi
CMAKE_ARGS+=		-DWITH_FRIBIDI=1
.else
CMAKE_ARGS+=		-DWITH_FRIBIDI=0
.endif

.if ${PORT_OPTIONS:MCAIRO_SVG}
LIB_DEPENDS+=		libcairo.so:graphics/cairo \
			libsvg-cairo.so:graphics/libsvg-cairo \
			libexpat.so:textproc/expat2
CMAKE_ARGS+=		-DWITH_SVGCAIRO=1 -DWITH_CAIRO=1
USES+=			pkgconfig
.else
CMAKE_ARGS+=		-DWITH_SVGCAIRO=0
.endif

.if ${PORT_OPTIONS:MKML}
LIB_DEPENDS+=		libxml2.so:textproc/libxml2
CMAKE_ARGS+=		-DWITH_KML=1
.else
CMAKE_ARGS+=		-DWITH_KML=0
.endif

.if ${PORT_OPTIONS:MWMS}
CMAKE_ARGS+=		-DWITH_WMS=1
.else
CMAKE_ARGS+=		-DWITH_WMS=0
.endif

.if ${PORT_OPTIONS:MWFS}
CMAKE_ARGS+=		-DWITH_WFS=1
.else
CMAKE_ARGS+=		-DWITH_WFS=0
.endif

.if ${PORT_OPTIONS:MWCS}
CMAKE_ARGS+=		-DWITH_WCS=1
.else
CMAKE_ARGS+=		-DWITH_WCS=0
.endif

.if ${PORT_OPTIONS:MGDAL}
USES+=			iconv
LIB_DEPENDS+=		libgdal.so:graphics/gdal
CMAKE_ARGS+=		-DWITH_GDAL=1
.else
CMAKE_ARGS+=		-DWITH_GDAL=0
.endif

.if ${PORT_OPTIONS:MGEOS}
LIB_DEPENDS+=		libgeos.so:graphics/geos
CMAKE_ARGS+=		-DWITH_GEOS=1
.else
CMAKE_ARGS+=		-DWITH_GEOS=0
.endif

.if ${PORT_OPTIONS:MPOSTGIS}
USES+=			pgsql
CMAKE_ARGS+=		-DWITH_POSTGIS=1
.else
CMAKE_ARGS+=		-DWITH_POSTGIS=0
.endif

.if ${PORT_OPTIONS:MPHP}
BUILD_DEPENDS+=		${LOCALBASE}/bin/php-config:lang/php56
RUN_BUILDS+=		${LOCALBASE}/bin/php-config:lang/php56
PHP_EXTENSION_DIR!=	${LOCALBASE}/bin/php-config --extension-dir | ${SED} -e "s,/usr/local/,,"
CMAKE_ARGS+=		-DWITH_PHP=1
PLIST_SUB+=		PHP_EXTENSION_DIR=${PHP_EXTENSION_DIR}
PLIST_SUB+=		PHP=""
.else
CMAKE_ARGS+=		-DWITH_PHP=0
PLIST_SUB+=		PHP="@comment "
.endif

.if ${PORT_OPTIONS:MPERL}
USES+=		perl5
BUILD_DEPENDS=	${LOCALBASE}/bin/swig2.0:devel/swig20
CMAKE_ARGS+=	-DWITH_PERL=1
PLIST_SUB+=	PERL=""
.else
CMAKE_ARGS+=	-DWITH_PERL=0
PLIST_SUB+=	PERL="@comment "
.endif

.if ${PORT_OPTIONS:MCURL}
LIB_DEPENDS+=		libcurl.so:ftp/curl
CMAKE_ARGS+=		-DWITH_CURL=1
.else
CMAKE_ARGS+=		-DWITH_CURL=0
.endif

.if ${PORT_OPTIONS:MFASTCGI}
BUILD_DEPENDS+=		${LOCALBASE}/bin/cgi-fcgi:www/fcgi
CMAKE_ARGS+=		-DWITH_FCGI=1
.else
CMAKE_ARGS+=		-DWITH_FCGI=0
.endif

.if ${PORT_OPTIONS:MDEBUG}
CMAKE_ARGS+=		-DCMAKE_BUILD_TYPE=Debug
.else
CMAKE_ARGS+=		-DCMAKE_BUILD_TYPE=Release
.endif

PROG_FILES=		legend scalebar shp2img shptree shptreetst shptreevis \
			sortshp msencrypt tile4ms mapserv

.if ${PORT_OPTIONS:MCLIENT_WMS}
LIB_DEPENDS+=		libcurl.so:ftp/curl
LIB_DEPENDS+=		libgdal.so:graphics/gdal
CMAKE_ARGS+=		-DWITH_CURL=1 -DWITH_GDAL=1 -DWITH_CLIENT_WMS=1
.endif

.if ${PORT_OPTIONS:MCLIENT_WFS}
LIB_DEPENDS+=		libcurl.so:ftp/curl
LIB_DEPENDS+=		libgdal.so:graphics/gdal
CMAKE_ARGS+=		-DWITH_CURL=1 -DWITH_GDAL=1 -DWITH_CLIENT_WFS=1
.endif

do-install:
.for f in ${PROG_FILES}
	${STRIP_CMD} ${BUILD_WRKSRC}/${f}
	${INSTALL_SCRIPT} ${BUILD_WRKSRC}/${f} ${STAGEDIR}${PREFIX}/bin
.endfor
	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/libmapserver.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib

.if ${PORT_OPTIONS:MPHP}
	@${MKDIR} ${STAGEDIR}${PREFIX}/${PHP_EXTENSION_DIR}
	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/mapscript/php/php_mapscript.so \
		${STAGEDIR}${PREFIX}/${PHP_EXTENSION_DIR}/
.endif

.if ${PORT_OPTIONS:MPYTHON}
	@${MKDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}/
	(cd ${BUILD_WRKSRC}/mapscript/python && ${CP} mapscript.py _mapscript.so ${STAGEDIR}${PYTHON_SITELIBDIR}/)
.endif

post-install:
	@${LN} -s ${PREFIX}/lib/libmapserver.so.7.0.1 ${STAGEDIR}${PREFIX}/lib/libmapserver.so.2
	@${LN} -s ${PREFIX}/lib/libmapserver.so.2 ${STAGEDIR}${PREFIX}/lib/libmapserver.so

.if ${PORT_OPTIONS:MPHP}
	@${ECHO_MSG} "Please add the line extension=php_mapscript.so to ${PREFIX}/etc/php/extensions.ini"
.endif

.include <bsd.port.mk>
