aboutsummaryrefslogtreecommitdiff
path: root/x11-toolkits/qt5-gui/Makefile
blob: b88214695abfd82d28d0563edf5f92a5ebb71e5f (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
115
PORTNAME=	gui
PORTVERSION=	${QT5_VERSION}${QT5_KDE_PATCH}
CATEGORIES=	x11-toolkits graphics
PKGNAMEPREFIX=	qt5-

MAINTAINER=	kde@FreeBSD.org
COMMENT=	Qt graphical user interface module

BUILD_DEPENDS=	${LOCALBASE}/include/linux/input.h:devel/evdev-proto \
		${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers \
		${LOCALBASE}/include/xf86drm.h:graphics/libdrm \
		at-spi2-core>=0:accessibility/at-spi2-core \
		${BUILD_DEPENDS_${ARCH}}
BUILD_DEPENDS_armv6=	as:devel/binutils
BUILD_DEPENDS_armv7=	as:devel/binutils
LIB_DEPENDS=	libdbus-1.so:devel/dbus \
		libevdev.so:devel/libevdev \
		libfontconfig.so:x11-fonts/fontconfig \
		libfreetype.so:print/freetype2 \
		libharfbuzz.so:print/harfbuzz \
		libinput.so:x11/libinput \
		libmtdev.so:devel/libmtdev \
		libpng.so:graphics/png \
		libxcb-icccm.so:x11/xcb-util-wm \
		libxcb-image.so:x11/xcb-util-image \
		libxcb-keysyms.so:x11/xcb-util-keysyms \
		libxcb-render-util.so:x11/xcb-util-renderutil \
		libxcb.so:x11/libxcb \
		libxkbcommon.so:x11/libxkbcommon
RUN_DEPENDS=	${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers \
		${LOCALBASE}/libdata/pkgconfig/dri.pc:graphics/mesa-dri \
		xdg-open:devel/xdg-utils

USES=			compiler:c++11-lang gl gnome jpeg localbase \
			perl5 qmake:no_env qt-dist:5,base
USE_GL=			egl gl
USE_GNOME=		glib20
USE_PERL5=		extract
USE_QT=			core dbus network buildtools:build qmake:build
QT_BINARIES=		yes
QT_CONFIG=		accessibility accessibility-atspi-bridge dbus \
			fontconfig glib opengl png system-freetype system-jpeg \
			system-png xcb xcb-glx xcb-render xcb-xlib xinput2 xlib \
			xrender
QT_DEFINES=		ACCESSIBILITY DBUS FONTCONFIG FREETYPE GLIB \
			IMAGEFORMAT_PNG OPENGL SHAPE XCB XKB XKBCOMMON XRENDER
USE_XORG=		ice sm xi xrender
HAS_CONFIGURE=		yes
CONFIGURE_ARGS=		-no-eglfs \
			-no-libudev \
			-system-harfbuzz
# Explicitly set to c++14 to avoid c++17/c++1z, since libX11's headers
# are using the obsolete 'register' keyword.
CONFIGURE_ARGS+=	-c++std \
			c++14

BUILD_WRKSRC=	${WRKSRC}/src/${PORTNAME}
INSTALL_WRKSRC=	${BUILD_WRKSRC}

OPTIONS_DEFINE=		X11
OPTIONS_DEFAULT=	X11
OPTIONS_SUB=		yes

X11_USES=	xorg
X11_USE=	xorg=x11

# Build and install QtPlatformSupport and default QPA plugins (XCB,
# minimal and offscreen). QtGui won't work without (one of) them, but
# they depend on QtGui itself, so they can't be added as dependencies.
# QtPlatformSupport doesn't need to be installed (it's a static
# library), but might be needed by people porting Qt on new platforms.
_MORE_WRKSRCS=	src/platformheaders src/platformsupport src/plugins/platforms \
		src/plugins/generic

# Image formats are split through different tarballs, these are the
# main ones; input contexts require no additional dependency.
_MORE_WRKSRCS+=	src/plugins/imageformats src/plugins/platforminputcontexts

# openglextensions is the static library to use for further things like qtcanvas3d
_MORE_WRKSRCS+=	src/openglextensions

# Inherited from Qt 4.
.if defined(PACKAGE_BUILDING)
RUN_DEPENDS+=	${LOCALBASE}/share/fonts/encodings/encodings.dir:x11-fonts/encodings \
		xorg-fonts-truetype>0:x11-fonts/xorg-fonts-truetype
.endif

post-configure:
.for d in src/tools/qvkgen src/gui ${_MORE_WRKSRCS}
	${MKDIR} ${WRKSRC}/${d}
	cd ${WRKSRC}/${d} && ${SETENV} ${QMAKE_ENV} ${_QMAKE} ${QMAKE_ARGS} ${WRKSRC}/${d}
.endfor

pre-build:
.for d in src/tools/qvkgen
	@cd ${WRKSRC}/${d} && \
		${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} \
		${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}
.endfor

post-build:
.for d in ${_MORE_WRKSRCS}
	@cd ${WRKSRC}/${d} && \
		${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} \
		${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}
.endfor

post-install:
.for d in src/tools/qvkgen ${_MORE_WRKSRCS}
	@cd ${WRKSRC}/${d} && \
		${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} \
		${MAKE_ARGS} ${INSTALL_TARGET}
.endfor

.include <bsd.port.mk>