aboutsummaryrefslogtreecommitdiff
path: root/games/freeciv/Makefile
blob: 72da01fc47f8dc2a0e5672eca7535b3f578432f5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
PORTNAME=	freeciv
PORTVERSION=	3.0.4
PORTREVISION=	1
CATEGORIES=	games
MASTER_SITES=	SF/freeciv/Freeciv%20${PORTVERSION:R}/${PORTVERSION} \
		http://files.freeciv.org/stable/

MAINTAINER=	fluffy@FreeBSD.org
COMMENT=	Free turn-based multiplayer strategy
WWW=		https://www.freeciv.org/

LICENSE=	GPLv2+
LICENSE_FILE=	${WRKSRC}/COPYING

LIB_DEPENDS=	libcurl.so:ftp/curl \
		libicuuc.so:devel/icu \
		libltdl.so:devel/libltdl

USES=		autoreconf compiler:c++11-lang cpe desktop-file-utils gmake \
		iconv:wchar_t libtool lua:53 pkgconfig readline ssl tar:xz
USE_LDCONFIG=	yes

GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	${ICONV_CONFIGURE_ARG} \
		--disable-static \
		--enable-aimodules \
		--enable-client=${_FREECIV_CLIENT:ts,} \
		--enable-fcdb=${_FREECIV_DB:ts,} \
		--enable-fcmp=${_FREECIV_MP:U:S/^/cli /:ts,} \
		--enable-mapimg=no \
		--enable-shared

LDFLAGS+=	-Wl,--as-needed

PORTDATA=	*

OPTIONS_DEFINE=		DOCS IPV6 NLS
OPTIONS_DEFAULT=	QT5 SQLITE3
OPTIONS_MULTI=		DB UI
OPTIONS_MULTI_DB=	MYSQL PGSQL SQLITE3
OPTIONS_MULTI_UI=	GTK2 GTK3 GTK4 QT5 SDL
OPTIONS_SUB=		yes

DB_DESC=	Database support
UI_DESC=	GUI clients
GTK4_DESC=	GTK+ 4 GUI toolkit support (modpack only)

GTK2_USES=	gnome sdl
GTK2_USE=	GNOME=gdkpixbuf2,glib20,gtk20,pango \
		SDL=mixer2
GTK2_VARS=	_FREECIV_CLIENT+=gtk2 \
		_FREECIV_MP+=gtk2

GTK3_USES=	gnome sdl
GTK3_USE=	GNOME=cairo,gdkpixbuf2,glib20,gtk30,pango \
		SDL=mixer2
GTK3_VARS=	_FREECIV_CLIENT+=gtk3 \
		_FREECIV_CLIENT+=gtk3.22 \
		_FREECIV_MP+=gtk3

GTK4_IMPLIES=	GTK3
GTK4_USES=	gnome sdl
GTK4_USE=	GNOME=cairo,gdkpixbuf2,glib20,gtk40,pango \
		SDL=mixer2
GTK4_VARS=	_FREECIV_MP+=gtk4

IPV6_CONFIGURE_ENABLE=	ipv6

MYSQL_USES=		mysql
MYSQL_CONFIGURE_ON=	--with-mysql-prefix=${LOCALBASE}
MYSQL_VARS=		_FREECIV_DB+=mysql

NLS_USES=		gettext
NLS_CONFIGURE_ENABLE=	nls

PGSQL_USES=		pgsql
PGSQL_CONFIGURE_ON=	--with-postgres-prefix=${LOCALBASE}
PGSQL_VARS=		_FREECIV_DB+=postgres

QT5_USES=		qt:5 sdl
QT5_USE=		QT=core,gui,widgets,buildtools:build \
			SDL=mixer2
QT5_CONFIGURE_ON=	--with-qt5-includes=${LOCALBASE}/${QT_INCDIR_REL} \
			--with-qt5-libs=${LOCALBASE}/${QT_LIBDIR_REL}
QT5_CONFIGURE_ENABLE=	ruledit
QT5_VARS=		_FREECIV_CLIENT+=qt \
			_FREECIV_MP+=qt

SDL_USES=	sdl
SDL_USE=	SDL=gfx2,image2,mixer2,ttf2
SDL_VARS=	_FREECIV_CLIENT+=sdl2

SQLITE3_USES=	sqlite
SQLITE3_VARS=	_FREECIV_DB+=sqlite3

# Save OPTIONS_MULTI_UI value for later before the framework
# does things with it.
_FREECIV_CLIENTS:=	${OPTIONS_MULTI_UI}

.include <bsd.port.pre.mk>

.if ${_FREECIV_CLIENT:Uno} == no
CONFLICTS=	freeciv
PLIST_SUB+=	${_FREECIV_CLIENTS:S/$/="@comment "/} \
		CLIENT="@comment "
.else
CONFLICTS=	freeciv-nox11
PLIST_SUB+=	CLIENT=""
.endif

post-install:
	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libfreeciv*.so

.include <bsd.port.post.mk>