PORTNAME=	cppdb
PORTVERSION=	0.3.1
PORTREVISION=	2
CATEGORIES=	databases
MASTER_SITES=	SF/cppcms/${PORTNAME}/${PORTVERSION}

MAINTAINER=	info@babaei.net
COMMENT=	Platform and database independent SQL connectivity library
WWW=		http://cppcms.com/sql/cppdb/

LICENSE=	BSL MIT
LICENSE_COMB=	dual
LICENSE_FILE=	${WRKSRC}/copyright.txt

USES=		cmake tar:bzip2
USE_CXXSTD=	c++14
USE_LDCONFIG=	yes

NO_OPTIONS_SORT=	yes
OPTIONS_SINGLE=		SQLITE3 PGSQL MYSQL ODBC
OPTIONS_SINGLE_MYSQL=	MYSQL_DISABLE MYSQL_INTERNAL MYSQL_MODULE
OPTIONS_SINGLE_ODBC=	ODBC_DISABLE ODBC_INTERNAL ODBC_MODULE
OPTIONS_SINGLE_PGSQL=	PGSQL_DISABLE PGSQL_INTERNAL PGSQL_MODULE
OPTIONS_SINGLE_SQLITE3=	SQLITE3_DISABLE SQLITE3_INTERNAL SQLITE3_MODULE

OPTIONS_DEFAULT=	MYSQL_DISABLE ODBC_DISABLE PGSQL_DISABLE SQLITE3_MODULE

MYSQL_DESC=		MySQL Backend
MYSQL_DISABLE_DESC=	Disable MySQL backend
MYSQL_INTERNAL_DESC=	Link MySQL backend into CppDB
MYSQL_MODULE_DESC=	Build MySQL backend as a CppDB module
ODBC_DESC=		ODBC Backend
ODBC_DISABLE_DESC=	Disable ODBC backend
ODBC_INTERNAL_DESC=	Link ODBC backend into CppDB
ODBC_MODULE_DESC=	Build ODBC backend as a CppDB module
PGSQL_DESC=		PostgreSQL Backend
PGSQL_DISABLE_DESC=	Disable PostgreSQL backend
PGSQL_INTERNAL_DESC=	Link PostgreSQL backend into CppDB
PGSQL_MODULE_DESC=	Build PostgreSQL backend as a CppDB module
SQLITE3_DESC=		SQLite 3 Backend
SQLITE3_DISABLE_DESC=	Disable SQLite 3 backend
SQLITE3_INTERNAL_DESC=	Link SQLite 3 backend into CppDB
SQLITE3_MODULE_DESC=	Build SQLite 3 backend as a CppDB module

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MMYSQL_DISABLE}
CMAKE_ARGS+=	-DDISABLE_MYSQL:BOOL=ON
PLIST_SUB+=	MYSQL="@comment "
.else
USES+=		mysql
CMAKE_ARGS+=	-DDISABLE_MYSQL:BOOL=OFF
.if ${PORT_OPTIONS:MMYSQL_INTERNAL}
CMAKE_ARGS+=	-DMYSQL_BACKEND_INTERNAL:BOOL=ON
PLIST_SUB+=	MYSQL="@comment "
.elif ${PORT_OPTIONS:MMYSQL_MODULE}
CMAKE_ARGS+=	-DMYSQL_BACKEND_INTERNAL:BOOL=OFF
PLIST_SUB+=	MYSQL=""
.endif
.endif

.if ${PORT_OPTIONS:MODBC_DISABLE}
CMAKE_ARGS+=	-DDISABLE_ODBC:BOOL=ON
PLIST_SUB+=	ODBC="@comment "
.else
LIB_DEPENDS+=	libodbc.so:databases/unixODBC
CMAKE_ARGS+=	-DDISABLE_ODBC:BOOL=OFF
.if ${PORT_OPTIONS:MODBC_INTERNAL}
CMAKE_ARGS+=	-DODBC_BACKEND_INTERNAL:BOOL=ON
PLIST_SUB+=	ODBC="@comment "
.elif ${PORT_OPTIONS:MODBC_MODULE}
CMAKE_ARGS+=	-DODBC_BACKEND_INTERNAL:BOOL=OFF
PLIST_SUB+=	ODBC=""
.endif
.endif

.if ${PORT_OPTIONS:MPGSQL_DISABLE}
CMAKE_ARGS+=	-DDISABLE_PQ:BOOL=ON
PLIST_SUB+=	PGSQL="@comment "
.else
USES+=		pgsql
CMAKE_ARGS+=	-DDISABLE_PQ:BOOL=OFF
.if ${PORT_OPTIONS:MPGSQL_INTERNAL}
CMAKE_ARGS+=	-DPQ_BACKEND_INTERNAL:BOOL=ON
PLIST_SUB+=	PGSQL="@comment "
.elif ${PORT_OPTIONS:MPGSQL_MODULE}
CMAKE_ARGS+=	-DPQ_BACKEND_INTERNAL:BOOL=OFF
PLIST_SUB+=	PGSQL=""
.endif
.endif

.if ${PORT_OPTIONS:MSQLITE3_DISABLE}
CMAKE_ARGS+=	-DDISABLE_SQLITE:BOOL=ON
PLIST_SUB+=	SQLITE3="@comment "
.else
USES+=		sqlite:3
CMAKE_ARGS+=	-DDISABLE_SQLITE:BOOL=OFF
.if ${PORT_OPTIONS:MSQLITE3_INTERNAL}
CMAKE_ARGS+=	-DSQLITE_BACKEND_INTERNAL:BOOL=ON
PLIST_SUB+=	SQLITE3="@comment "
.elif ${PORT_OPTIONS:MSQLITE3_MODULE}
CMAKE_ARGS+=	-DSQLITE_BACKEND_INTERNAL:BOOL=OFF
PLIST_SUB+=	SQLITE3=""
.endif
.endif

.include <bsd.port.mk>
