# Contributor: Mehdi Chinoune _realname=qt6-multimedia pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}" "${MINGW_PACKAGE_PREFIX}-${_realname}-debug" "${MINGW_PACKAGE_PREFIX}-${_realname}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-${_realname}-wmf") _qtver=6.10.1 pkgver=${_qtver/-/} pkgrel=1 pkgdesc='Classes for audio, video, radio and camera functionality (mingw-w64)' arch=(any) mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url='https://www.qt.io' msys2_repository_url="https://code.qt.io/cgit/qt/qtmultimedia.git" msys2_references=( 'archlinux: qt6-multimedia' "cpe: cpe:/a:qt:qt" ) license=('spdx:LGPL-3.0-only WITH Qt-GPL-exception-1.0 AND BSD-3-Clause AND GFDL-1.3-no-invariants-only AND GPL-2.0-only AND GPL-3.0-only') makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-cmake" "${MINGW_PACKAGE_PREFIX}-ninja" "${MINGW_PACKAGE_PREFIX}-qt6-base" "${MINGW_PACKAGE_PREFIX}-qt6-declarative" "${MINGW_PACKAGE_PREFIX}-qt6-shadertools" "${MINGW_PACKAGE_PREFIX}-qt6-svg" "${MINGW_PACKAGE_PREFIX}-qt6-quick3d" "${MINGW_PACKAGE_PREFIX}-ffmpeg" #"${MINGW_PACKAGE_PREFIX}-pulseaudio" "rsync") _pkgfn="${_realname/6-/}-everywhere-src-${_qtver}" source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfn}.tar.xz" 001-export-some-constexpr-variables.patch) sha256sums=('f7a4f9bc2840d4f0f9f7329f0dcb3d3500c54177b8e368091a3727c7320e67b8' 'e1694338779eb499341618c62d11f832f2b7f1f90c8a20345932530a61203105') prepare() { cd "${srcdir}"/${_pkgfn} if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then patch -p1 -i "${srcdir}"/001-export-some-constexpr-variables.patch fi } build() { mkdir -p build-${MSYSTEM} && cd build-${MSYSTEM} MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ ${MINGW_PREFIX}/bin/cmake \ --log-level=STATUS \ -GNinja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \ -DFEATURE_wasapi=ON \ -DFEATURE_spatialaudio=ON \ -DFEATURE_spatialaudio_quick3d=ON \ -DFEATURE_ffmpeg=ON \ -DFEATURE_gstreamer=OFF \ ../${_pkgfn} ${MINGW_PREFIX}/bin/cmake --build . } package_qt6-multimedia() { depends=("${MINGW_PACKAGE_PREFIX}-qt6-base" "${MINGW_PACKAGE_PREFIX}-qt6-shadertools" "${MINGW_PACKAGE_PREFIX}-qt6-multimedia-ffmpeg") optdepends=("${MINGW_PACKAGE_PREFIX}-qt6-declarative" "${MINGW_PACKAGE_PREFIX}-qt6-quick3d" "${MINGW_PACKAGE_PREFIX}-qt6-multimedia-wmf") groups=("${MINGW_PACKAGE_PREFIX}-qt6") DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --install build-${MSYSTEM} # Seperate debug-info files rsync -armR --remove-source-files --include="*/" --include="*.debug" --exclude="*" --prune-empty-dirs "${pkgdir}"/.${MINGW_PREFIX} "${srcdir}"/${MSYSTEM}-debug/ install -d "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname} install -Dm644 $_pkgfn/LICENSES/* -t "$pkgdir${MINGW_PREFIX}"/share/licenses/${_realname} # Split plugins rm -r "${pkgdir}${MINGW_PREFIX}/share/qt6/plugins" rm "${pkgdir}${MINGW_PREFIX}"/lib/cmake/Qt6Multimedia/Qt6Q{FFmpeg,Windows}MediaPlugin* rm -r "${pkgdir}${MINGW_PREFIX}"/lib/cmake/Qt6FFmpegMediaPluginImplPrivate rm -r "${pkgdir}${MINGW_PREFIX}"/include/qt6/QtFFmpegMediaPluginImpl/ rm "${pkgdir}${MINGW_PREFIX}"/lib/libQt6FFmpegMediaPluginImpl.a rm "${pkgdir}${MINGW_PREFIX}"/lib/Qt6FFmpegMediaPluginImpl.prl rm "${pkgdir}${MINGW_PREFIX}"/share/qt6/metatypes/qt6ffmpegmediapluginimplprivate_metatypes.json rm "${pkgdir}${MINGW_PREFIX}"/share/qt6/mkspecs/modules/qt_lib_ffmpegmediapluginimpl_private.pri rm "${pkgdir}${MINGW_PREFIX}"/share/qt6/modules/FFmpegMediaPluginImplPrivate.json } package_qt6-multimedia-debug() { depends=("${MINGW_PACKAGE_PREFIX}-qt6-base-debug" "${MINGW_PACKAGE_PREFIX}-qt6-shadertools-debug" "${MINGW_PACKAGE_PREFIX}-${_realname}") groups=("${MINGW_PACKAGE_PREFIX}-qt6-debug") options=('!strip') cp -rf "${srcdir}"/${MSYSTEM}-debug${MINGW_PREFIX} "${pkgdir}"/ } package_qt6-multimedia-ffmpeg() { pkgdesc='FFMpeg backend for qt6-multimedia' depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg" "${MINGW_PACKAGE_PREFIX}-${_realname}") DESTDIR="$pkgdir" ${MINGW_PREFIX}/bin/cmake --install build-${MSYSTEM}/src/plugins/multimedia/ffmpeg find "${pkgdir}${MINGW_PREFIX}" -type f -name '*.debug' -delete } package_qt6-multimedia-wmf() { pkgdesc='Windows Media Foundation backend for qt6-multimedia' depends=("${MINGW_PACKAGE_PREFIX}-${_realname}") DESTDIR="$pkgdir" ${MINGW_PREFIX}/bin/cmake --install build-${MSYSTEM}/src/plugins/multimedia/windows find "${pkgdir}${MINGW_PREFIX}" -type f -name '*.debug' -delete } # template start; name=mingw-w64-splitpkg-wrappers; version=1.0; # vim: set ft=bash : # generate wrappers for _name in "${pkgname[@]}"; do _short="package_${_name#${MINGW_PACKAGE_PREFIX}-}" _func="$(declare -f "${_short}")" eval "${_func/#${_short}/package_${_name}}" done # template end;