1SUMMARY="Classes for audio, video, radio and camera functionality"
2DESCRIPTION="Qt is a cross-platform application framework that is widely \
3used for developing software with a graphical user interface, and also used \
4for developing non-GUI programs such as command-line tools and consoles for \
5servers."
6HOMEPAGE="https://qt.io/"
7COPYRIGHT="2015-2024 The Qt Company Ltd."
8LICENSE="GNU LGPL v2.1
9	GNU LGPL v3
10	GNU FDL v1"
11REVISION="1"
12QT_MIRROR_URI="https://qt-mirror.dannhauer.de/archive"
13SOURCE_URI="$QT_MIRROR_URI/qt/${portVersion%.*}/$portVersion/submodules/qtmultimedia-everywhere-src-$portVersion.tar.xz"
14CHECKSUM_SHA256="f394bae49e3d4ee6a3b0c9e1e5e31bb870cc04a4b44f4cda3615baf7bd078c70"
15SOURCE_DIR="qtmultimedia-everywhere-src-$portVersion"
16PATCHES="qt6_multimedia-$portVersion.patchset"
17
18ARCHITECTURES="all !x86_gcc2"
19SECONDARY_ARCHITECTURES="x86"
20
21PROVIDES="
22	qt6_multimedia$secondaryArchSuffix = $portVersion compat >= 6
23	lib:libQt6Multimedia$secondaryArchSuffix = $portVersion compat >= 6
24	lib:libQt6MultimediaQuick$secondaryArchSuffix = $portVersion compat >= 6
25	lib:libQt6MultimediaWidgets$secondaryArchSuffix = $portVersion compat >= 6
26	lib:libQt6SpatialAudio$secondaryArchSuffix = $portVersion compat >= 6
27	"
28REQUIRES="
29	haiku$secondaryArchSuffix
30	lib:libavcodec$secondaryArchSuffix
31	lib:libavformat$secondaryArchSuffix
32	lib:libgl$secondaryArchSuffix
33	lib:libintl$secondaryArchSuffix
34	lib:libopenal$secondaryArchSuffix
35	lib:libQt6Core$secondaryArchSuffix
36	lib:libQt6Gui$secondaryArchSuffix
37	lib:libQt6Qml$secondaryArchSuffix
38	lib:libQt6Quick$secondaryArchSuffix
39	lib:libQt6QmlModels$secondaryArchSuffix
40	lib:libQt6ShaderTools$secondaryArchSuffix
41	lib:libQt6Svg$secondaryArchSuffix
42	lib:libvulkan$secondaryArchSuffix
43	lib:libz$secondaryArchSuffix
44	"
45
46PROVIDES_devel="
47	qt6_multimedia${secondaryArchSuffix}_devel = $portVersion compat >= 6
48	devel:libQt6Multimedia$secondaryArchSuffix = $portVersion compat >= 6
49	devel:libQt6MultimediaQuick$secondaryArchSuffix = $portVersion compat >= 6
50	devel:libQt6MultimediaWidgets$secondaryArchSuffix = $portVersion compat >= 6
51	devel:libQt6SpatialAudio$secondaryArchSuffix = $portVersion compat >= 6
52	devel:libQt6BundledResonanceAudio$secondaryArchSuffix = $portVersion compat >= 6
53	"
54REQUIRES_devel="
55	qt6_multimedia$secondaryArchSuffix == $portVersion base
56	qt6_base${secondaryArchSuffix}_devel
57	devel:libopenal$secondaryArchSuffix
58	"
59
60BUILD_REQUIRES="
61	haiku${secondaryArchSuffix}_devel
62	devel:libcrypto$secondaryArchSuffix
63	devel:libavcodec$secondaryArchSuffix >= 59
64	devel:libgl$secondaryArchSuffix
65	devel:libopenal$secondaryArchSuffix
66	devel:libQt6Core$secondaryArchSuffix
67	devel:libQt6Gui$secondaryArchSuffix
68	devel:libQt6Qml$secondaryArchSuffix
69	devel:libQt6QmlModels$secondaryArchSuffix
70	devel:libQt6Quick$secondaryArchSuffix
71	devel:libQt6ShaderTools$secondaryArchSuffix
72	devel:libQt6Svg$secondaryArchSuffix
73	devel:libssl$secondaryArchSuffix
74	devel:libvulkan$secondaryArchSuffix
75	devel:libz$secondaryArchSuffix
76	"
77BUILD_PREREQUIRES="
78	cmd:awk
79	cmd:cmake
80	cmd:find
81	cmd:g++$secondaryArchSuffix
82	cmd:ld$secondaryArchSuffix
83	cmd:make
84	cmd:ninja
85	cmd:perl
86	cmd:pkg_config$secondaryArchSuffix
87	cmd:python3
88	cmd:sed
89	cmd:xargs
90	"
91
92BUILD()
93{
94	export DISABLE_ASLR=1
95
96	# disable simd code for x86_gcc2
97	if [ $targetArchitecture == x86_gcc2 ]; then
98		sed -i -e 's|//#define PFFFT_SIMD_DISABLE|#define PFFFT_SIMD_DISABLE|' src/3rdparty/pffft/pffft.c
99	fi
100
101	cmake -B build -S $sourceDir -G Ninja \
102		-DCMAKE_BUILD_TYPE=Release \
103		-DCMAKE_CXX_FLAGS=-fPIC \
104		-DFEATURE_linux_dmabuf=OFF
105
106	find -name cmake_install.cmake -exec sed -i "s|set(CMAKE_INSTALL_PREFIX.*|set(CMAKE_INSTALL_PREFIX \"$prefix\")|" {} \;
107
108	ninja -v -C build $jobArgs
109}
110
111INSTALL()
112{
113	ninja -C build install
114
115	prepareInstalledDevelLibs \
116		libQt6Multimedia \
117		libQt6MultimediaQuick \
118		libQt6MultimediaWidgets \
119		libQt6SpatialAudio \
120		libQt6BundledResonanceAudio
121
122	# fix pkgconfig files
123	fixPkgconfig
124	sed -i "s|includedir=.*|includedir=$includeDir/Qt6|" \
125		$developLibDir/pkgconfig/*.pc
126
127	cd $libDir
128	for i in lib*.so.6.*;do
129		ln -fs $i $(echo $i | cut -f1,2 -d.)
130	done
131
132	packageEntries devel \
133		$developDir \
134		$libDir/cmake \
135		$dataDir/Qt6/mkspecs
136}
137