summaryrefslogtreecommitdiff
path: root/devel/qt6-base/Makefile
blob: 2543206db3117c98ec3ca0cf7002e1249457c61c (plain)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
PORTNAME=	base
DISTVERSION=	${QT6_VERSION}
CATEGORIES=	devel
PKGNAMEPREFIX=	qt6-

PATCH_SITES=	https://github.com/qt/qtbase/commit/
PATCHFILES=	3f45905953d57e0174059d7d9d6bc75c3c1c406c.patch:-p1

MAINTAINER=	kde@FreeBSD.org
COMMENT=	Qt base (core, gui, widgets, network,...)
WWW=		https://www.qt.io/

BUILD_DEPENDS=	xml:textproc/xmlstarlet \
		${LOCALBASE}/include/vulkan/vulkan.h:graphics/vulkan-headers \
		${LOCALBASE}/include/linux/input.h:devel/evdev-proto
LIB_DEPENDS=	\
		libatk-1.0.so:accessibility/at-spi2-core \
		libatk-bridge-2.0.so:accessibility/at-spi2-core \
		libatspi.so:accessibility/at-spi2-core \
		libavahi-client.so:net/avahi-app \
		libbrotlidec.so:archivers/brotli \
		libdbus-1.so:devel/dbus \
		libdouble-conversion.so:devel/double-conversion \
		libdrm.so:graphics/libdrm \
		libepoll-shim.so:devel/libepoll-shim \
		libepoxy.so:graphics/libepoxy \
		libevdev.so:devel/libevdev \
		libexpat.so:textproc/expat2 \
		libffi.so:devel/libffi \
		libfontconfig.so:x11-fonts/fontconfig \
		libfreetype.so:print/freetype2 \
		libfribidi.so:converters/fribidi \
		libgmp.so:math/gmp \
		libgnutls.so:security/gnutls \
		libgraphite2.so:graphics/graphite2 \
		libgudev-1.0.so:devel/libgudev \
		libharfbuzz.so:print/harfbuzz \
		libicui18n.so:devel/icu \
		libidn2.so:dns/libidn2 \
		libinput.so:x11/libinput \
		libintl.so:devel/gettext-runtime \
		libjpeg.so:graphics/jpeg-turbo \
		libmtdev.so:devel/libmtdev \
		libnettle.so:security/nettle \
		libp11-kit.so:security/p11-kit \
		libpcre.so:devel/pcre \
		libpcre2-16.so:devel/pcre2 \
		libpng16.so:graphics/png \
		libtasn1.so:security/libtasn1 \
		libudev.so:devel/libudev-devd \
		libunistring.so:devel/libunistring \
		libvulkan.so:graphics/vulkan-loader \
		libwacom.so:x11/libwacom \
		libwayland-client.so:graphics/wayland \
		libxkbcommon.so:x11/libxkbcommon \
		libzstd.so:archivers/zstd

USES=		cmake compiler:c++17-lang gl gnome jpeg perl5 pkgconfig python \
		qt-dist:6 shebangfix ssl
USE_GL=		egl opengl
USE_GNOME=	cairo gdkpixbuf2 glib20 gtk30 pango
CMAKE_ARGS=	-DOPENSSL_ROOT_DIR="${OPENSSLBASE}"
CMAKE_ON=	QT_AVOID_CMAKE_ARCHIVING_API \
		QT_FIND_ALL_PACKAGES_ALWAYS \
		QT_FEATURE_openssl_linked
CMAKE_OFF=	QT_FEATURE_eglfs \
		QT_FEATURE_gssapi
# sql drivers are handled in the qt6-base-sqldriver port
CMAKE_OFF+=	FEATURE_sql_mysql \
		FEATURE_sql_odbc \
		FEATURE_sql_psql \
		FEATURE_sql_sqlite

SHEBANG_FILES=	${WRKSRC}/mkspecs/features/uikit/device_destinations.sh \
		${WRKSRC}/mkspecs/features/uikit/devices.py \
		${WRKSRC}/mkspecs/features/data/mac/objc_namespace.sh \
		${WRKSRC}/util/android/android_emulator_launcher.sh \
		${WRKSRC}/util/testrunner/qt-testrunner.py \
		${WRKSRC}/util/testrunner/sanitizer-testrunner.py
USE_LDCONFIG=	${PREFIX}/${QT_LIBDIR_REL}

# zstd from base fails to compress files during the build (error 11: unsupported argument)
BINARY_ALIAS=	zstd=${LOCALBASE}/bin/zstd

OPTIONS_DEFINE=		CUPS X11
OPTIONS_DEFAULT=	CUPS X11
OPTIONS_SUB=		yes

CUPS_LIB_DEPENDS=	libcups.so:print/cups
CUPS_CMAKE_OFF=		-DFEATURE_cups=OFF

X11_USES=		xorg
X11_USE=		XORG=ice,pixman,sm,x11,xau,xcb,xcomposite,xcursor,xdamage,xdmcp,xext,xfixes,xi,xinerama,xrandr,xrender
X11_CMAKE_BOOL=		FEATURE_xcb FEATURE_xlib
X11_LIB_DEPENDS=	libxcb-cursor.so:x11/xcb-util-cursor \
			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-util.so:x11/xcb-util

.include <bsd.port.pre.mk>

# LibreSSL does not currently support BIO_ADDR in DTLSv1_listen()
.if ${SSL_DEFAULT:Mlibressl*}
CMAKE_OFF+=	QT_FEATURE_dtls
PLIST_SUB+=	DTLS="@comment "
.else
PLIST_SUB+=	DTLS=""
.endif

.if ${ARCH} == "armv6" || ${ARCH} == "armv7"
BUILD_DEPENDS+=	as:devel/binutils
CMAKE_ARGS+=	-DCMAKE_ASM_FLAGS=-no-integrated-as
.endif

post-patch:
	@${REINPLACE_CMD} -e 's|%%OPENSSLLIB%%|${OPENSSLLIB}|g' \
		${WRKSRC}/src/plugins/tls/openssl/qsslsocket_openssl_symbols.cpp

# TODO: do this cleaner -- somewhere cmake/qmake still creates empty directories
# for the cmake files in INSTALL_PREFIX/lib/cmake
post-install:
	${RM} -vr ${STAGEDIR}${PREFIX}/${QT_LIBDIR_REL}/cmake
	# Install symlinks for user-facing tools
	${REINPLACE_CMD} -e "s#^#${STAGEDIR}#" -e "s# # ${STAGEDIR}#" \
		${WRKDIR}/.build/user_facing_tool_links.txt
	while read t; do \
		${RLN} $$t; \
	done <${WRKDIR}/.build/user_facing_tool_links.txt

.include <bsd.port.post.mk>