# Created by: Mohammad S. Babaei <info@babaei.net>
# $FreeBSD: tags/RELEASE_11_1_0/www/wt/Makefile 441503 2017-05-23 05:03:14Z rezny $

PORTNAME=	wt
PORTVERSION=	3.3.7
PORTREVISION=	1
CATEGORIES=	www

MAINTAINER=	info@babaei.net
COMMENT=	Widget-centric C++ library for developing web applications

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/LICENSE

LIB_DEPENDS+=	libpng.so:graphics/png \
		libboost_system.so:devel/boost-libs \
		libGraphicsMagick.so:graphics/GraphicsMagick

BROKEN_powerpc64=	fails to link: libwthttp.so. undefined reference to boost::program_options::abstract_variables_map::operator

USE_GITHUB=	yes
GH_ACCOUNT=	kdeforche
USE_LDCONFIG=	yes
USE_XORG+=x11
USES=		cmake:outsource pkgconfig ssl
CMAKE_ARGS+=	-DCONFIGDIR:STRING=${LOCALBASE}/etc/wt \
	-DGM_PREFIX:STRING=${LOCALBASE} \
	-DPNG_PREFIX:STRING=${LOCALBASE} \
	-DSSL_PREFIX:STRING=/usr \
	-DZLIB_PREFIX:STRING=/usr \
	-DCONNECTOR_ISAPI:BOOL=OFF \
	-DWEBUSER:STRING=www \
	-DWEBGROUP:STRING=www \
	-DWT_WRASTERIMAGE_IMPLEMENTATION:STRING=GraphicsMagick \
	-DENABLE_SSL:BOOL=ON

NO_OPTIONS_SORT=	yes
OPTIONS_DEFINE=	\
	DOXYGEN \
	EXAMPLES \
	TESTS \
	RESOURCES \
	CMAKE_MODULE \
	CPP11 \
	HARU \
	PANGO \
	EXT \
	QT4 \
	LIBWTTEST \
	OPENGL
OPTIONS_DEFAULT=	\
	TESTS \
	RESOURCES \
	CMAKE_MODULE \
	CPP11 \
	HARU \
	PANGO \
	OPENGL \
	LIBWTTEST
OPTIONS_GROUP=	CONNECTOR DBO WSTRING
OPTIONS_SUB=	yes

EXAMPLES_DESC=		Install examples (implies SQLITE3 and WTHTTP)
TESTS_DESC=		Build Wt tests
RESOURCES_DESC=		Install resources directory
CMAKE_MODULE_DESC=	Install FindWt.cmake in systemwide cmake dir
CPP11_DESC=		Compile Wt in C++11 mode (Clang or GCC 4.6+)
HARU_DESC=		Enable Haru Free PDF Library
EXT_DESC=		Build Wt Ext library with JavaScript-only widgets
LIBWTTEST_DESC=		Build Wt::Test for automated (integration/unit) tests

OPTIONS_GROUP_CONNECTOR=	FCGI WTHTTP
OPTIONS_DEFAULT +=	FCGI WTHTTP
CONNECTOR_DESC=		Connector
FCGI_DESC=		Build FastCGI connector
WTHTTP_DESC=		Build Wt stand-alone httpd connector

OPTIONS_GROUP_DBO=	SQLITE3 POSTGRES FIREBIRD MYSQL
OPTIONS_DEFAULT +=	SQLITE3
DBO_DESC=		Wt::DBO
SQLITE3_DESC=		Build Wt with SQLite 3 support
POSTGRES_DESC=		Build Wt with PostgreSQL support
FIREBIRD_DESC=		Build Wt with Firebird support
MYSQL_DESC=		Build Wt with MariaDB or MySQL support

OPTIONS_GROUP_WSTRING=	NO_STD_LOCALE NO_STD_WSTRING
WSTRING_DESC=		Wt::WString
NO_STD_LOCALE_DESC=	Build for a system without std::locale support
NO_STD_WSTRING_DESC=	Build for a system without std::wstring support

EXAMPLES_IMPLIES=	SQLITE3 WTHTTP

CMAKE_MODULE_CMAKE_ON=	-DINSTALL_FINDWT_CMAKE_FILE:BOOL=ON
CMAKE_MODULE_CMAKE_OFF=	-DINSTALL_FINDWT_CMAKE_FILE:BOOL=OFF
DOXYGEN_CMAKE_ON=		-DBUILD_DOCS:BOOL=ON
DOXYGEN_CMAKE_OFF=		-DBUILD_DOCS:BOOL=OFF
FCGI_CMAKE_ON=		-DCONNECTOR_FCGI:BOOL=ON
FCGI_CMAKE_OFF=		-DCONNECTOR_FCGI:BOOL=OFF
FIREBIRD_CMAKE_ON=	-DENABLE_FIREBIRD:BOOL=ON
FIREBIRD_CMAKE_OFF=	-DENABLE_FIREBIRD:BOOL=OFF
EXT_CMAKE_ON=		-DENABLE_EXT:BOOL=ON
EXT_CMAKE_OFF=		-DENABLE_EXT:BOOL=OFF
HARU_CMAKE_ON=		-DENABLE_HARU:BOOL=ON
HARU_CMAKE_OFF=		-DENABLE_HARU:BOOL=OFF
LIBWTTEST_CMAKE_ON=	-DENABLE_LIBWTTEST:BOOL=ON
LIBWTTEST_CMAKE_OFF=	-DENABLE_LIBWTTEST:BOOL=OFF
MYSQL_CMAKE_ON=		-DENABLE_MYSQL:BOOL=ON
MYSQL_CMAKE_OFF=	-DENABLE_MYSQL:BOOL=OFF
NO_STD_LOCALE_CMAKE_ON=	-DWT_NO_STD_LOCALE:BOOL=ON
NO_STD_LOCALE_CMAKE_OFF=-DWT_NO_STD_LOCALE:BOOL=OFF
NO_STD_WSTRING_CMAKE_ON=	-DWT_NO_STD_WSTRING:BOOL=ON
NO_STD_WSTRING_CMAKE_OFF=	-DWT_NO_STD_WSTRING:BOOL=OFF
OPENGL_CMAKE_ON=	-DENABLE_OPENGL:BOOL=ON
OPENGL_CMAKE_OFF=	-DENABLE_OPENGL:BOOL=OFF
PANGO_CMAKE_ON=		-DENABLE_PANGO:BOOL=ON
PANGO_CMAKE_OFF=	-DENABLE_PANGO:BOOL=OFF
POSTGRES_CMAKE_ON=	-DENABLE_POSTGRES:BOOL=ON
POSTGRES_CMAKE_OFF=	-DENABLE_POSTGRES:BOOL=OFF
QT4_CMAKE_ON=		-DENABLE_QT4:BOOL=ON
QT4_CMAKE_OFF=		-DENABLE_QT4:BOOL=OFF
RESOURCES_CMAKE_ON=	-DINSTALL_RESOURCES:BOOL=ON
RESOURCES_CMAKE_OFF=	-DINSTALL_RESOURCES:BOOL=OFF
SQLITE_CMAKE_ON=	-DENABLE_SQLITE:BOOL=ON
SQLITE_CMAKE_OFF=	-DENABLE_SQLITE:BOOL=OFF
TESTS_CMAKE_ON=		-DBUILD_TESTS:BOOL=ON
TESTS_CMAKE_OFF=	-DBUILD_TESTS:BOOL=OFF
WTHTTP_CMAKE_ON=	-DCONNECTOR_HTTP:BOOL=ON
WTHTTP_CMAKE_OFF=	-DCONNECTOR_HTTP:BOOL=OFF

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MDOXYGEN}
BUILD_DEPENDS+=	asciidoc:textproc/asciidoc \
		doxygen:devel/doxygen
.endif

.if ${PORT_OPTIONS:MEXAMPLES}
CMAKE_ARGS+=	-DBUILD_EXAMPLES:BOOL=ON -DINSTALL_EXAMPLES:BOOL=ON
.if ${PORT_OPTIONS:MSQLITE3} \
	|| ${PORT_OPTIONS:MPOSTGRES} \
	|| ${PORT_OPTIONS:MFIREBIRD} \
	|| ${PORT_OPTIONS:MMYSQL}
PLIST_SUB+=	DBO_EXAMPLES=""
.if ${PORT_OPTIONS:MSQLITE3}
.else
PLIST_SUB+=	DBO_SQLITE3_EXAMPLES=""
.endif
PLIST_SUB+=	DBO_SQLITE3_EXAMPLES="@comment "
.else
PLIST_SUB+=	DBO_EXAMPLES="@comment "
PLIST_SUB+=	DBO_SQLITE3_EXAMPLES="@comment "
.endif
.if ${PORT_OPTIONS:MQT4}
PLIST_SUB+=	QT4_EXAMPLES=""
.else
PLIST_SUB+=	QT4_EXAMPLES="@comment "
.endif
.else
CMAKE_ARGS+=	-DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_EXAMPLES:BOOL=OFF
PLIST_SUB+=	DBO_EXAMPLES="@comment "
PLIST_SUB+=	DBO_SQLITE3_EXAMPLES="@comment "
PLIST_SUB+=	QT4_EXAMPLES="@comment "
.endif

.if ${PORT_OPTIONS:MCPP11}
USES+=		compiler:c++11-lib
CMAKE_ARGS+=	-DWT_CPP_11_MODE:STRING=-std=c++0x
.endif

.if ${PORT_OPTIONS:MHARU}
LIB_DEPENDS+=	libhpdf.so:print/libharu
CMAKE_ARGS+=	-DHARU_PREFIX:STRING=${LOCALBASE}
.endif

.if ${PORT_OPTIONS:MPANGO}
USE_GNOME+=	pango
.endif

.if ${PORT_OPTIONS:MQT4}
USE_QT4=	corelib moc_build
.endif

.if ${PORT_OPTIONS:MOPENGL}
USE_GL=		gl glew
.endif

.if ${PORT_OPTIONS:MFCGI}
LIB_DEPENDS+=	libfcgi.so:www/fcgi \
		libfcgi++.so:www/fcgi

CMAKE_ARGS+=	-DFCGI_PREFIX:STRING=${LOCALBASE}
.endif

.if ${PORT_OPTIONS:MSQLITE3} \
	|| ${PORT_OPTIONS:MPOSTGRES} \
	|| ${PORT_OPTIONS:MFIREBIRD} \
	|| ${PORT_OPTIONS:MMYSQL}
CMAKE_ARGS+=	-DENABLE_LIBWTDBO:BOOL=ON
PLIST_SUB+=	DBO=""
.else
CMAKE_ARGS+=	-DENABLE_LIBWTDBO:BOOL=OFF
PLIST_SUB+=	DBO="@comment "
.endif

.if ${PORT_OPTIONS:MSQLITE3}
USES+=		sqlite:3
CMAKE_ARGS+=	-DSQLITE3_PREFIX:STRING=${LOCALBASE}
.endif

.if ${PORT_OPTIONS:MPOSTGRES}
USE_PGSQL=	yes
CMAKE_ARGS+=	-DPOSTGRES_PREFIX:STRING=${LOCALBASE}
.endif

.if ${PORT_OPTIONS:MFIREBIRD}
USE_FIREBIRD=	yes
CMAKE_AGS+=	-DFIREBIRD_PREFIX:STRING=${LOCALBASE}
.endif

.if ${PORT_OPTIONS:MMYSQL}
USE_MYSQL=	yes
CMAKE_ARGS+=	-DMYSQL_PREFIX:STRING=${LOCALBASE}
.endif

post-install:
	@${RM} ${STAGEDIR}${ETCDIR}/wt_config.xml
	@${MKDIR} ${STAGEDIR}${ETCDIR}
	@${CP} -p ${BUILD_WRKSRC}/wt_config.xml \
		${STAGEDIR}${ETCDIR}/wt_config.xml.sample

.include <bsd.port.mk>
