diff --git a/Mk/Uses/qt-dist.mk b/Mk/Uses/qt-dist.mk index 6e9d1751501c..b59e07539fd8 100644 --- a/Mk/Uses/qt-dist.mk +++ b/Mk/Uses/qt-dist.mk @@ -1,546 +1,546 @@ # There are three Qt related USES files with different access to Qt. # - qmake: The port requires Qt's qmake to build -- creates the configure target # - auto includes qt.mk # - qt-dist: The port is a port for a part of Qt # - auto includes qt.mk # - qt.mk - Dependency handling. USE_QT=foo bar # # # Usage # qt-dist:[,yes|modulename] # # MAINTAINER: kde@FreeBSD.org .if !defined(_QT_DIST_MK_INCLUDED) _QT_DIST_MK_INCLUDED= qt-dist.mk # Suck in qt.mk and qmake.mk qt_ARGS?= # empty .include "${USESDIR}/qt.mk" qmake_ARGS?= # empty .include "${USESDIR}/qmake.mk" # Supported distribution arguments _COMMON_DISTS= 3d base charts connectivity datavis3d declarative imageformats location multimedia \ networkauth quick3d quicktimeline remoteobjects scxml sensors \ serialbus serialport speech svg tools translations virtualkeyboard \ wayland webchannel webengine websockets webview _QT5_DISTS= gamepad graphicaleffects quickcontrols \ quickcontrols2 script webglplugin \ x11extras xmlpatterns _QT6_DISTS= 5compat doc httpserver languageserver lottie positioning \ - quickeffectmaker shadertools + quick3dphysics quickeffectmaker shadertools _QT_DISTS= ${_COMMON_DISTS} \ ${_QT${_QT_VER}_DISTS} # We only accept one item as an argument. The fetch target further below works # around this. _QT_DIST= # empty . for dist in ${_QT_DISTS:O:u} . if ${qt-dist_ARGS:M${dist}} . if empty(_QT_DIST) _QT_DIST= ${dist} . else IGNORE= cannot be installed: different Qt dists specified via qt-dist:[${qt-dist_ARGS:S/ /,/g}] . endif . endif . endfor # Fall back to sensible defaults for _QT_DIST . if empty(_QT_DIST) _QT_DIST= ${PORTNAME} # don't force qt-dist to be set for Qt5 ports which 75% of time are ${PORTNAME} . endif # Check validitiy . if empty(_QT_DISTS:M${_QT_DIST}) IGNORE= Unsupported qt-dist ${_QT_DIST} for qt:${_QT_VER} . endif ################################################################################ # Set standard bsd.port.mk variables. LICENSE?= LGPL21 WWW?= https://www.qt.io/ . if !exists(${PKGDIR}/pkg-descr) DESCR?= ${PORTSDIR}/devel/${_QT_RELNAME}/pkg-descr . endif # Stage support. _QT5_DESTDIRNAME= INSTALL_ROOT _QT6_DESTDIRNAME= DESTDIR DESTDIRNAME= ${_QT${_QT_VER}_DESTDIRNAME} # Qt's tarballs are xz compressed. . if empty(USES:Mtar) EXTRACT_SUFX?= .tar.xz . endif # Qt5 specific master sites _QT5_MASTER_SITES_kde= LOCAL _QT5_MASTER_SITE_SUBDIR_kde= kde/KDE/Qt/${_QT_VERSION} _QT5_MASTER_SITES= ${MASTER_SITE_QT} _QT5_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules/ # Qt6 specific master sites _QT6_MASTER_SITES= ${MASTER_SITE_QT} _QT6_MASTER_SITE_SUBDIR= official_releases/qt/${_QT_VERSION:R}/${_QT_VERSION}/submodules \ official_releases/additional_libraries/${_QT_VERSION:R}/${_QT_VERSION}/ # Qt5 specific distnames . if ${_QT_DIST} == webengine _QT5_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-opensource-src-${DISTVERSION},} . else _QT5_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-src-${DISTVERSION},} . endif _QT5_DISTNAME_kde= ${_QT_DIST:S,^,kde-qt,:S,$,-${DISTVERSION},} # Qt6 specific distnames _QT6_DISTNAME= ${_QT_DIST:S,^,qt,:S,$,-everywhere-src-${DISTVERSION},} # Effective master sites and disfile valus MASTER_SITES= ${_QT${_QT_VER}_MASTER_SITES${_KDE_${_QT_DIST}:D_kde}} MASTER_SITE_SUBDIR= ${_QT${_QT_VER}_MASTER_SITE_SUBDIR${_KDE_${_QT_DIST}:D_kde}} DISTNAME= ${_QT${_QT_VER}_DISTNAME${_KDE_${_QT_DIST}:D_kde}} DISTFILES= ${DISTNAME:S,$,${EXTRACT_SUFX},} DIST_SUBDIR= KDE/Qt/${_QT_VERSION} . if ${_QT_VER:M5} # KDE maintains a repository with a patched Qt5 distribution. _KDE_3d= 0 _KDE_base= 135 _KDE_charts= 0 _KDE_connectivity= 6 _KDE_datavis3d= 0 _KDE_declarative= 30 _KDE_gamepad= 0 _KDE_graphicaleffects= 0 _KDE_imageformats= 12 _KDE_location= 4 _KDE_multimedia= 2 _KDE_networkauth= 0 _KDE_quick3d= 1 _KDE_quickcontrols= 0 _KDE_quickcontrols2= 5 _KDE_quicktimeline= 0 _KDE_remoteobjects= 0 _KDE_script= 0 _KDE_script_ORIGIN_TAG= v5.15.15-lts _KDE_script_VERSION= 5.15.15 _KDE_scxml= 0 _KDE_sensors= 0 _KDE_serialbus= 0 _KDE_serialport= 0 _KDE_speech= 1 _KDE_svg= 6 _KDE_tools= 3 _KDE_translations= 0 _KDE_virtualkeyboard= 0 _KDE_wayland= 59 _KDE_webchannel= 3 _KDE_webengine= 0 _KDE_webengine_ORIGIN_TAG= v5.15.15-lts _KDE_webengine_VERSION= 5.15.15 _KDE_webglplugin= 0 _KDE_websockets= 2 _KDE_webview= 0 _KDE_x11extras= 0 _KDE_xmlpatterns= 0 . if defined(_KDE_${_QT_DIST}) . if defined(_KDE_${_QT_DIST}_ORIGIN_TAG) _KDE_${_QT_DIST}_BRANCH= ${_KDE_${_QT_DIST}_VERSION} . else _KDE_${_QT_DIST}_BRANCH= kde/5.15 COMMENT+= (KDE patched) . endif QT5_KDE_PATCH= p${_KDE_${_QT_DIST}} _KDE_${_QT_DIST}_VERSION?= ${_QT_VERSION} _KDE_${_QT_DIST}_ORIGIN_TAG?= v${_KDE_${_QT_DIST}_VERSION}-lts-lgpl . else QT5_KDE_PATCH= # . endif . endif # ${_QT_VER:M5} # Environment setup for Qt5 . if ${_QT_VER:M5} # Qt (at least when used with qmake) has a tendency to overlink: some libraries # have dependencies on others in the mkspec configurations and the latter are # always passed to the linker even if they are not actually used. By passing # --as-needed to the linker by default when building the Qt ports we do not # have to declare a lot of unnecessary dependencies in USE_QT5. LDFLAGS+= -Wl,--as-needed . if ${_QT_DIST} == "base" && ${PORTNAME} != "qmake" # Qt configure requires pkg-config to detect dependencies. .include "${USESDIR}/pkgconfig.mk" . endif # -nomake is only used by qtbase's configure script. # Other ports from other Qt modules will automatically build examples and # tests if the directories exist because of mkspecs/features/qt_parts.prf. EXTRACT_AFTER_ARGS?= ${DISTNAME:S,$,/examples,:S,^,--exclude ,} \ ${DISTNAME:S,$,/tests,:S,^,--exclude ,} \ --no-same-owner --no-same-permissions . endif # ! ${_QT_VER:M5} # Qt uses generated linker version scripts which always have a qt_version_tag # symbol, but that symbol is only defined in the main Qt shared library. For # other Qt components, this leads to lld >= 17 erroring out due to the symbol # being undefined. Supress these errors. LDFLAGS+= -Wl,--undefined-version # Build setup for Qt6 . if ${_QT_VER:M6} CMAKE_ARGS+= -DCMAKE_INSTALL_PREFIX=${PREFIX} \ -DINSTALL_BINDIR=${PREFIX}/${QT_BINDIR_REL} \ -DINSTALL_PUBLICBINDIR=${PREFIX}/bin \ -DINSTALL_LIBDIR=${PREFIX}/${QT_LIBDIR_REL} \ -DINSTALL_LIBEXECDIR=${PREFIX}/${QT_LIBEXECDIR_REL} \ -DINSTALL_DOCDIR=${PREFIX}/${QT_DOCDIR_REL} \ -DINSTALL_ARCHDATADIR=${PREFIX}/${QT_ARCHDIR_REL} \ -DINSTALL_DATADIR=${PREFIX}/${QT_DATADIR_REL} \ -DINSTALL_INCLUDEDIR=${PREFIX}/${QT_INCDIR_REL} \ -DINSTALL_MKSPECSDIR=${PREFIX}/${QT_MKSPECDIR_REL} \ -DINSTALL_EXAMPLESDIR=${PREFIX}/${QT_EXAMPLEDIR_REL} \ -DINSTALL_DESCRIPTIONSDIR=${PREFIX}/${QT_DESCRIPTIONSDIR_REL} \ -DQT_QMAKE_TARGET_MKSPEC:String=freebsd-clang \ --log-level=TRACE . endif # Build setup for Qt5 . if ${_QT_VER:M5} CONFIGURE_ENV+= MAKE="${MAKE:T}" CONFIGURE_ARGS+= -opensource -confirm-license \ -no-pch \ -prefix ${PREFIX} \ -bindir ${PREFIX}/${QT_BINDIR_REL} \ -headerdir ${PREFIX}/${QT_INCDIR_REL} \ -libdir ${PREFIX}/${QT_LIBDIR_REL} \ -plugindir ${PREFIX}/${QT_PLUGINDIR_REL} \ -importdir ${PREFIX}/${QT_IMPORTDIR_REL} \ -datadir ${PREFIX}/${QT_DATADIR_REL} \ -docdir ${PREFIX}/${QT_DOCDIR_REL} \ -translationdir ${PREFIX}/${QT_L10NDIR_REL} \ -sysconfdir ${PREFIX}/${QT_ETCDIR_REL} \ -nomake examples -nomake tests \ -platform ${QMAKESPECNAME} \ -archdatadir ${PREFIX}/${QT_ARCHDIR_REL} \ -libexecdir ${PREFIX}/${QT_LIBEXECDIR_REL} \ -qmldir ${PREFIX}/${QT_QMLDIR_REL} \ -examplesdir ${PREFIX}/${QT_EXAMPLEDIR_REL} \ -testsdir ${PREFIX}/${QT_TESTDIR_REL} . if ${ARCH} == i386 && empty(MACHINE_CPU:Msse2) CONFIGURE_ARGS+= -no-sse2 . endif # Work around a bug in current binutils, where the gold linker creates # duplicate symbols. See pr 218187. Disable the gold-linker for Qt5 ports. CONFIGURE_ARGS+= -no-use-gold-linker # Pass -recheck-all so that multiple calls to the configure script really # re-run all checks. CONFIGURE_ARGS+= -recheck-all . endif # ${_QT_VER:M5} . if defined(WANT_QT_DEBUG) || defined(WITH_DEBUG) WITH_DEBUG= yes STRIP= # It's done prior to bsd.qt.mk inclusion. CONFIGURE_ARGS+= -debug -separate-debug-info # Override configuration in global qconfig.pri. QMAKE_ARGS+= QT_CONFIG+="debug separate_debug_info" \ QT_CONFIG-="release" . else CONFIGURE_ARGS+= -release -no-separate-debug-info QMAKE_ARGS+= QT_CONFIG+="release" \ QT_CONFIG-="debug separate_debug_info" . endif # defined(WANT_QT_DEBUG) || defined(WITH_DEBUG) . if defined(WANT_QT_VERBOSE_CONFIGURE) CONFIGURE_ARGS+= -verbose . endif . if ${_QT_DIST} == "base" _EXTRA_PATCHES_QT5= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_features_create__cmake.prf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_features_qt__module.prf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_common_bsd_bsd.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-clang_qmake.conf . if ${ARCH:Mmips*} || (${ARCH:Mpowerpc*} && !exists(/usr/bin/clang)) || ${ARCH} == sparc64 _EXTRA_PATCHES_QT5+= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_g++-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_gcc-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-g++_qmake.conf USE_GCC= yes . elif ${ARCH} == armv7 || ${ARCH} == powerpc _EXTRA_PATCHES_QT5+= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_g++-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_gcc-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-g++_qmake.conf . endif . if ${_QT_VER:M5} EXTRA_PATCHES?= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-configure \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-sync.profiles \ ${_EXTRA_PATCHES_QT5} . endif # ${_QT_VER:M5} . endif # ${_QT_DIST} == "base" # Override settings installed in qconfig.h and *.pri files. The flags will be # installed along with the port, but have to be passed as arguments while # building the port itself. Flags prefixed with "-" (e.g., "-CUPS" and "-cups") # are needed to disable some features. . if !defined(${QT_MODNAME}) || empty(${QT_MODNAME}) # Used for both qconfig-*.h and qt_config_*.pri; it can't be empty. QT_MODNAME= ${PORTNAME} . endif QT_DEFINES?= # For qconfig.h flags (without "QT_" prefix). QT_CONFIG?= # For *.pri files QT_CONFIG flags. . if ${QT_DEFINES} QMAKE_ARGS+= DEFINES+="${QT_DEFINES:O:u:C/^([^-])/QT_\1/:C/^-/QT_NO_/:O}" . endif # ${QT_DEFINES} PKGDEINSTALL= ${WRKDIR}/pkg-deinstall PKGINSTALL= ${WRKDIR}/pkg-install . if ${QT_CONFIG:N-*} QMAKE_ARGS+= QT_CONFIG+="${QT_CONFIG:N-*:O:u}" . endif . if ${QT_CONFIG:M-*} QMAKE_ARGS+= QT_CONFIG-="${QT_CONFIG:M-*:O:u:C/^-//}" . endif PLIST_SUB+= SHORTVER=${_QT_VERSION:R} \ FULLVER=${_QT_VERSION:C/-.*//} # Handle additional PLIST directories, which should only be used for Qt-dist ports. . for dir in ETC # Export QT_ETCDIR. PLIST_SUB+= QT_${dir}DIR="${QT_${dir}DIR_REL}" . endfor . if ${_QT_VER:M5} . for dir in CMAKE # Export QT_CMAKEDIR. PLIST_SUB+= QT_${dir}DIR="${QT_${dir}DIR_REL}" . endfor . endif . if ${_QT_VER:M5} . if ${_QT_DIST} == "base" # qtbase requires some tools to be symlinked to the build directory. _QT_TOOLS= # empty . if ${PORTNAME} != "qmake" _QT_TOOLS+= ${QMAKE} . endif . if ${PORTNAME} != "buildtools" _QT_TOOLS+= ${MOC} ${RCC} . endif . if ${PORTNAME} != "qdoc" _QT_TOOLS+= qdoc . endif . if ${PORTNAME} != "dbus" _QT_TOOLS+= qdbuscpp2xml qdbusxml2cpp . endif . if ${PORTNAME} != "widgets" _QT_TOOLS+= ${UIC} . endif # The list of QtBase components that need to be linked into WRKSRC/lib for # other QtBase ports. See below. _QT5_BASE= core dbus gui network sql widgets _QT5_ADDITIONAL_LINK?= # Ensure definition . if ${_QT_VER:M5} post-patch: gcc-post-patch gcc-post-patch: ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/mkspecs/common/gcc-base.conf \ ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf ${REINPLACE_CMD} 's|%%GCC_DEFAULT%%|${GCC_DEFAULT}|g' \ ${WRKSRC}/mkspecs/common/gcc-base.conf \ ${WRKSRC}/mkspecs/common/g++-base.conf \ ${WRKSRC}/mkspecs/common/bsd/bsd.conf \ ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf . endif pre-configure: qtbase-pre-configure qtbase-pre-configure: . for tool in ${_QT_TOOLS} @${TEST} -e ${QT_BINDIR}/${tool:T} && \ ${LN} -sf ${QT_BINDIR}/${tool:T} ${CONFIGURE_WRKSRC}/bin/${tool:T} || \ ${TRUE} . endfor # The following is a fix for the inplace upgrade problem we faced (see # QTBUG-40825 and ports bugs 194088, 195105 and 198720) previously, # which previously was adressed by making sure, that ${LOCALBASE}/lib, which # would often gets added by pkgconf for the dependencies, was passed after # ${WRKSRC}/lib. # * We fix the inplace upgrade problem by moving the Qt5 libraries into # ${LOCALBASE}/lib/qt5. Therefore a -L${LOCALBASE}/lib does no harm anymore. # * However, this means, that the ports belonging to the split up QtBase package # now no longer can find their depending QtBase libraries. We fix this by # linking these into ${CONFIGURE_WRKSRC}/lib if the given QtBase port depends # on them. . if ${_QT_DIST:Mbase} . for basedep in ${_QT5_BASE} . if ! empty(USE_QT:M${basedep}) ${LN} -sf ${QT_LIBDIR}/${${basedep}_LIB} ${CONFIGURE_WRKSRC}/lib . endif . endfor . endif # # **** THIS PART IS OBSOLETE FOR THE NEXT QT UPGRADE **** # # Add ${LOCALBASE}/lib to DEFAULT_LIBDIRS, which we use to filter out # certain paths from pkg-config calls (see the explanation in # devel/qt5/files/patch-configure) as well as for setting # QMAKE_DEFAULT_LIBDIR in mkspecs/qconfig.pri. Part of the solution for # ports/194088. post-patch: qtbase-post-patch qtbase-post-patch: ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/mkspecs/common/bsd/bsd.conf \ ${WRKSRC}/mkspecs/freebsd-clang/qmake.conf . if ${PORTNAME} != "qmake" _QMAKE= ${CONFIGURE_WRKSRC}/bin/qmake . endif . endif pre-configure: qt5-pre-configure qt5-pre-configure: # Qt 5.3.2 introduced a check in mkspecs/features/create_cmake.prf that # requires tests/auto/cmake to be present, otherwise the configure stage will # fail. # Since we cannot extract tests/auto/cmake/ and exclude tests/ at the same # time, we have to disable the check in a cache file (the only way to get this # value through to the configure script in qtbase). ${MKDIR} ${CONFIGURE_WRKSRC} ${ECHO_CMD} 'CMAKE_MODULE_TESTS = -' > ${CONFIGURE_WRKSRC}/.qmake.cache # configure will run syncqt.pl if it finds a .git entry in the working directory touch ${WRKSRC}/.git # As the patch collection was created after a version bump, all module verisions # are tagged as 5.15.3 touch ${WRKSRC}/.qmake.conf # easier than to -f before the sed ${REINPLACE_CMD} -e '/MODULE_VERSION/s|5\.15\.\([0-9]*\)|${_QT_VERSION}|g' \ ${WRKSRC}/.qmake.conf # **** THIS PART IS OBSOLETE FOR THE NEXT QT UPGRADE **** # # We piggyback on QMAKE_LIBDIR_FLAGS to make sure -L${WRKSRC}/lib is passed to # the linker before -L/usr/local/lib. By default, the opposite happens, which # is a problem when a Qt port is being upgraded, since an existing library # would end up being picked up instead of those built in ${WRKSRC}/lib. Since # qmake appends the value of QMAKE_LIBDIR to QMAKE_LIBDIR_FLAGS, we can use the # latter to get the linker path order right. qmake is smart enough to strip # occurrences of ${WRKSRC}/lib from .pc and .prl files when installing them. # See QTBUG-40825 and ports bugs 194088, 195105 and 198720. ${ECHO_CMD} 'QMAKE_LIBDIR_FLAGS = -L${CONFIGURE_WRKSRC}/lib' >> ${CONFIGURE_WRKSRC}/.qmake.cache ${ECHO_CMD} 'QMAKE_DEFAULT_LIBDIRS += ${LOCALBASE}/lib /usr/lib /lib' >> ${CONFIGURE_WRKSRC}/.qmake.cache ${ECHO_CMD} 'QMAKE_DEFAULT_INCDIRS += ${LOCALBASE}/include /usr/include' >> ${CONFIGURE_WRKSRC}/.qmake.cache # Allow linking of further libraries to the configure directory. . if !empty(_QT5_ADDITIONAL_LINK) . for dep in ${_QT5_ADDITIONAL_LINK} ${MKDIR} ${CONFIGURE_WRKSRC}/lib . if ! empty(USE_QT:M${dep}) ${LN} -sf ${QT_LIBDIR}/${qt-${dep}_LIB} ${CONFIGURE_WRKSRC}/lib . endif . endfor . endif . if ${QT_DEFINES:N-*} # There **are** defines, so we need to **add** this port to the # qconfig-modules.h header; make @need_add empty and comment out # the @need_remove lines in the script (see below in qt-post-install). # If there are no defines, do it the other way around. _sub_need_add= _sub_need_remove= \#\# . else _sub_need_add= \#\# _sub_need_remove= . endif # If a port installs Qt version-specific binaries (e.g. "designer" which # existed as a Qt4 application and exists as a Qt5 application and will # probably be a Qt6 application) the port should set `QT_BINARIES=yes`. . if defined(QT_BINARIES) _sub_need_bin= . else _sub_need_bin= \#\# . endif . if ${QT_MODNAME} == core # QtCore (e.g. devel/qt5-core) is the one that starts the header, # and is also the one that can clean it up when deinstalled. _sub_need_clean= . else _sub_need_clean= \#\# . endif # The Qt modules have an install- and deinstall-step for wrangling # the qconfig-modules.h header, but qmake does not. . if ${PORTNAME} != "qmake" post-install: qt-post-install . endif # PORTNAME != qmake qt-post-install: # We can't use SUB_FILES with the shared pkg-change.in. # We need it to be a script instead of a group of @unexecs. # Do two steps of processing -- introducing the Qt variables, # and replacing the @tags with comment (or nothing) characters # according to the port's settings -- in one sed and write # to pkg-change.tmp. Then split it up and minify for the # install and deinstall step. @${SED} -e 's,%%QT_MODNAME%%,${QT_MODNAME},g' \ -e 's,%%QT_INCDIR%%,${QT_INCDIR},g' \ -e 's,@need_add,${_sub_need_add},' \ -e 's,@need_remove,${_sub_need_remove},' \ -e 's,@need_clean,${_sub_need_clean},' \ -e 's,@need_bin,${_sub_need_bin},' \ ${PORTSDIR}/devel/${_QT_RELNAME}/${FILESDIR:T}/pkg-change.in > \ ${WRKDIR}/pkg-change.tmp @${SED} -e 's,@install,,' -e 's,@deinstall,##,' ${WRKDIR}/pkg-change.tmp | ${SED} -e '/##/d' > ${PKGINSTALL} @${SED} -e 's,@install,##,' -e 's,@deinstall,,' ${WRKDIR}/pkg-change.tmp | ${SED} -e '/##/d' > ${PKGDEINSTALL} # Drop all leading spaces in the script, to minify @${REINPLACE_CMD} 's/^ *//' ${PKGINSTALL} ${PKGDEINSTALL} . if ${QT_DEFINES:N-*} @${MKDIR} ${STAGEDIR}${QT_INCDIR}/QtCore/modules @${ECHO_CMD} -n \ > ${STAGEDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h . for def in ${QT_DEFINES:N-*:O:u:C/=.*$//} @${ECHO_CMD} "#if !defined(QT_${def}) && !defined(QT_NO_${def})" \ >> ${STAGEDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h ${ECHO_CMD} "# define QT_${def}" \ >> ${STAGEDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h @${ECHO_CMD} "#endif" \ >> ${STAGEDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h @${ECHO_CMD} \ >> ${STAGEDIR}${QT_INCDIR}/QtCore/modules/qconfig-${QT_MODNAME}.h . endfor @${ECHO_CMD} "${PREFIX}/${QT_INCDIR_REL}/QtCore/modules/qconfig-${QT_MODNAME}.h" \ >> ${TMPPLIST} . endif # ${QT_DEFINES:N-*} . if ${QT_CONFIG:N-*} @${MKDIR} ${STAGEDIR}${QT_MKSPECDIR}/modules ${ECHO_CMD} "QT_CONFIG += ${QT_CONFIG:N-*:O:u}" \ > ${STAGEDIR}${QT_MKSPECDIR}/modules/qt_config_${QT_MODNAME}.pri @${ECHO_CMD} "${PREFIX}/${QT_MKSPECDIR_REL}/modules/qt_config_${QT_MODNAME}.pri" \ >> ${TMPPLIST} . endif # ${QT_CONFIG:N-*} . endif # M5 . if ${_QT_VER:M6} post-stage: qt6-post-stage # Clean-up of empty directories, as we install # * cmake to ${LOCALBASE}/lib/cmake not ${QT_LIBDIR}/cmake. # * pkgconfig to ${LOCALBASE}/libexec/pkgconfig not ${QT_LIBDIR}/pkgconfig qt6-post-stage: ${RM} -r ${STAGEDIR}${QT_LIBDIR}/cmake ${RM} -r ${STAGEDIR}${QT_LIBDIR}/pkgconfig . endif qt-create-kde-distfile: ${MKDIR} ${DISTDIR}/${DIST_SUBDIR} ${SH} ${PORTSDIR}/devel/${_QT_RELNAME}/files/create_kde-qt_release.sh \ ${_QT_DIST} \ ${DISTDIR}/${DIST_SUBDIR} \ ${_KDE_${_QT_DIST}_VERSION} \ ${_KDE_${_QT_DIST}_ORIGIN_TAG} \ ${_KDE_${_QT_DIST}_BRANCH} .endif # defined(_QT_DIST_MK_INCLUDED) diff --git a/Mk/Uses/qt.mk b/Mk/Uses/qt.mk index 4469a38dee88..61cb098c6f68 100644 --- a/Mk/Uses/qt.mk +++ b/Mk/Uses/qt.mk @@ -1,453 +1,456 @@ # There are three Qt related USES files with different access to Qt. # - qmake: The port requires Qt's qmake to build -- creates the configure target # - auto includes qt.mk # - qt-dist: The port is a port for a part of Qt # - auto includes qt.mk and qmake.mk # - qt.mk - Dependency handling. USE_QT=foo bar # # Usage: # USES=qt:[,no_env] # # Versions: 5, 6 # # Port variables: # USE_QT - List of Qt modules to depend on, with optional ':build' # and ':run' suffixes. Define it empty to include this file # without depending on Qt ports. # # MAINTAINER: kde@FreeBSD.org .if !defined(_QT_MK_INCLUDED) _QT_MK_INCLUDED= qt.mk # Qt versions currently supported by the framework. _QT_SUPPORTED?= 5 6 QT5_VERSION?= 5.15.11 QT6_VERSION?= 6.5.3 PYSIDE6_VERSION?= 6.5.3 # We accept the Qt version to be passed by either or all of the three mk files. . if empty(qt_ARGS) && empty(qmake_ARGS) && empty(qt-dist_ARGS) IGNORE= qt needs a version (${_QT_SUPPORTED}) passed via qt, qmake or qt-dist. . endif # Gather all the args together _QT_GLOBAL_ARGS= ${qt_ARGS} ${qmake_ARGS} ${qt-dist_ARGS} # Check fo the Qt version to be used _QT_VER= # empty . for ver in ${_QT_SUPPORTED:O:u} . if ${_QT_GLOBAL_ARGS:M${ver}} . if !defined(_QT_VERSION) _QT_VER= ${ver} . else . if ${_QT_VERSION} != ${ver} IGNORE?= cannot be installed: different Qt versions specified via qt:[${_QT_SUPPORTED:S/ //g}], qmake:[${_QT_SUPPORTED:S/ //g}] a qt-dist:[${_QT_SUPPORTED:S/ //g}] . endif . endif . endif . endfor . if empty(_QT_VER) IGNORE?= cannot decide what Qt version to use: specify one via qt:[${_QT_SUPPORTED:S/ //g}], qmake:[${_QT_SUPPORTED:S/ //g}] or qt-dist:[${_QT_SUPPORTED:S/ //g}] . endif # Set the shortcuts used from now on _QT_RELNAME= qt${_QT_VER} _QT_VERSION= ${QT${_QT_VER}_VERSION} QT_BINDIR_REL?= ${QT_ARCHDIR_REL}/bin QT_INCDIR_REL?= include/${_QT_RELNAME} QT_LIBDIR_REL?= lib/${_QT_RELNAME} QT_ARCHDIR_REL?= ${QT_LIBDIR_REL} QT_PLUGINDIR_REL?= ${QT_ARCHDIR_REL}/plugins QT_DESCRIPTIONSDIR_REL?=${QT_DATADIR_REL}/modules QT_LIBEXECDIR_REL?= libexec/${_QT_RELNAME} QT_IMPORTDIR_REL?= ${QT_ARCHDIR_REL}/imports QT_QMLDIR_REL?= ${QT_ARCHDIR_REL}/qml QT_DATADIR_REL?= share/${_QT_RELNAME} QT_DOCDIR_REL?= share/doc/${_QT_RELNAME} QT_L10NDIR_REL?= ${QT_DATADIR_REL}/translations QT_ETCDIR_REL?= etc/xdg QT_EXAMPLEDIR_REL?= share/examples/${_QT_RELNAME} QT_TESTDIR_REL?= ${QT_DATADIR_REL}/tests QT_CMAKEDIR_REL?= lib/cmake _QT5_TOOLDIR_REL= ${QT_BINDIR_REL} _QT6_TOOLDIR_REL= ${QT_LIBEXECDIR_REL} QT_TOOLDIR_REL= ${_QT${_QT_VER}_TOOLDIR_REL} # Not customizable. QT_MKSPECDIR_REL= ${QT_ARCHDIR_REL}/mkspecs _QT_LIBVER= ${_QT_VERSION:R:R} LCONVERT?= ${QT_BINDIR}/lconvert LRELEASE?= ${QT_BINDIR}/lrelease LUPDATE?= ${QT_BINDIR}/lupdate MOC?= ${QT_TOOLDIR}/moc RCC?= ${QT_TOOLDIR}/rcc UIC?= ${QT_TOOLDIR}/uic QMAKE?= ${QT_BINDIR}/qmake QCOLLECTIONGENERATOR?= ${QT_TOOLDIR}/qcollectiongenerator QHELPGENERATOR?= ${QT_TOOLDIR}/qhelpgenerator # Needed to redefine the qmake target for internal Qt configuration. _QMAKE?= ${QMAKE} QMAKESPECNAME?= freebsd-${QMAKE_COMPILER} QMAKESPEC?= ${QT_MKSPECDIR}/${QMAKESPECNAME} # The whole Qt distribution should be built with the same compiler, but it's # better to support custom settings. Dereferencing the detection allows to # avoid forking a shell on each inclusion of this file, and to catch any CXX # customization (via USE_GCC, etc.). QMAKE_COMPILER= $$(ccver="$$(${CXX} --version)"; case "$$ccver" in *clang*) echo clang ;; *) echo g++ ;; esac) . for dir in BIN INC LIB ARCH PLUGIN LIBEXEC IMPORT \ QML DATA DOC L10N ETC EXAMPLE TEST MKSPEC \ CMAKE TOOL QT_${dir}DIR= ${PREFIX}/${QT_${dir}DIR_REL} # Export all directories to the plist substituion for QT_DIST ports. # For the others, exclude QT_CMAKEDIR and QT_ETCDIR. . if ${dir:NCMAKE} && ${dir:NETC} PLIST_SUB+= QT_${dir}DIR="${QT_${dir}DIR_REL}" . endif . endfor CONFIGURE_ENV+= QT_SELECT=${_QT_RELNAME} MAKE_ENV+= QT_SELECT=${_QT_RELNAME} # Make sure both the installed mkspecs as well as the ones being built are # found, with the ones from the port being built having preference. CONFIGURE_ENV+= QMAKEMODULES="${WRKSRC}/mkspecs/modules:${LOCALBASE}/${QT_MKSPECDIR_REL}/modules" MAKE_ENV+= QMAKEMODULES="${WRKSRC}/mkspecs/modules:${LOCALBASE}/${QT_MKSPECDIR_REL}/modules" _USES_POST+= qt .endif # _QT_MK_INCLUDED # ============================================================================= # # ============================================================================= .if defined(_POSTMKINCLUDED) && !defined(_QT_MK_POST_INCLUDED) _QT_MK_POST_INCLUDED= qt.mk # The Qt components supported by qt.mk: list of shared, and version specific ones _USE_QT_COMMON= 3d charts connectivity datavis3d declarative doc examples imageformats location \ multimedia networkauth quick3d quicktimeline remoteobjects scxml \ sensors serialbus serialport speech svg virtualkeyboard wayland \ webchannel webengine websockets webview _USE_QT5_ONLY= assistant buildtools concurrent core dbus \ declarative-test designer diag gamepad \ graphicaleffects gui help l10n linguist linguisttools \ network opengl paths phonon4 pixeltool plugininfo printsupport \ qdbus qdbusviewer qdoc qdoc-data qev qmake quickcontrols \ quickcontrols2 script scripttools sql sql-mysql sql-odbc \ sql-pgsql sql-sqlite2 sql-sqlite3 sql-tds testlib uiplugin \ uitools webglplugin webkit websockets-qml \ widgets x11extras xml xmlpatterns . if ${ARCH} == amd64 || ${ARCH} == i386 _USE_QT5_ONLY+= sql-ibase . endif _USE_QT6_ONLY= 5compat base httpserver languageserver lottie positioning \ - quickeffectmaker shadertools tools translations \ + quick3dphysics quickeffectmaker shadertools tools translations \ sqldriver-sqlite sqldriver-mysql sqldriver-psql sqldriver-odbc # Dependency tuples: _LIB should be preferred if possible. qt-3d_PORT= graphics/${_QT_RELNAME}-3d qt-3d_LIB= libQt${_QT_LIBVER}3DCore.so qt-5compat_PORT= devel/${_QT_RELNAME}-5compat qt-5compat_LIB= libQt${_QT_LIBVER}Core5Compat.so qt-assistant_PORT= devel/${_QT_RELNAME}-assistant qt-assistant_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/assistant # Always build with *this* version's buildtools qt-buildtools_PORT= devel/${_QT_RELNAME}-buildtools qt-buildtools_PATH= ${_QT_RELNAME}-buildtools>=${_QT_VERSION:R} qt-base_PORT= devel/${_QT_RELNAME}-base qt-base_LIB= libQt${_QT_LIBVER}Core.so qt-charts_PORT= x11-toolkits/${_QT_RELNAME}-charts qt-charts_LIB= libQt${_QT_LIBVER}Charts.so qt-concurrent_PORT= devel/${_QT_RELNAME}-concurrent qt-concurrent_LIB= libQt${_QT_LIBVER}Concurrent.so qt-connectivity_PORT= comms/${_QT_RELNAME}-connectivity qt-connectivity_LIB= libQt${_QT_LIBVER}Bluetooth.so qt-core_PORT= devel/${_QT_RELNAME}-core qt-core_LIB= libQt${_QT_LIBVER}Core.so qt-datavis3d_PORT= x11-toolkits/${_QT_RELNAME}-datavis3d qt-datavis3d_LIB= libQt${_QT_LIBVER}DataVisualization.so qt-dbus_PORT= devel/${_QT_RELNAME}-dbus qt-dbus_LIB= libQt${_QT_LIBVER}DBus.so qt-declarative_PORT= x11-toolkits/${_QT_RELNAME}-declarative qt-declarative_LIB= libQt${_QT_LIBVER}Qml.so qt-declarative-test_PORT= x11-toolkits/${_QT_RELNAME}-declarative-test qt-declarative-test_LIB= libQt${_QT_LIBVER}QuickTest.so qt-designer_PORT= devel/${_QT_RELNAME}-designer qt-designer_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/designer qt-diag_PORT= sysutils/${_QT_RELNAME}-qtdiag qt-diag_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qtdiag qt-doc_PORT= misc/${_QT_RELNAME}-doc qt-doc_PATH= ${_QT_RELNAME}-doc>=${_QT_VERSION:R:R} qt-examples_PORT= misc/${_QT_RELNAME}-examples qt-examples_PATH= ${_QT_RELNAME}-examples>=${_QT_VERSION:R:R} qt-gamepad_PORT= x11-toolkits/${_QT_RELNAME}-gamepad qt-gamepad_LIB= libQt${_QT_LIBVER}Gamepad.so qt-graphicaleffects_PORT= graphics/${_QT_RELNAME}-graphicaleffects qt-graphicaleffects_PATH= ${LOCALBASE}/${QT_QMLDIR_REL}/QtGraphicalEffects/qmldir qt-gui_PORT= x11-toolkits/${_QT_RELNAME}-gui qt-gui_LIB= libQt${_QT_LIBVER}Gui.so qt-help_PORT= devel/${_QT_RELNAME}-help qt-help_LIB= libQt${_QT_LIBVER}Help.so qt-httpserver_PORT= www/${_QT_RELNAME}-httpserver qt-httpserver_LIB= libQt${_QT_LIBVER}HttpServer.so qt-imageformats_PORT= graphics/${_QT_RELNAME}-imageformats qt-imageformats_PATH= ${LOCALBASE}/${QT_PLUGINDIR_REL}/imageformats/libqtiff.so qt-languageserver_PORT= devel/${_QT_RELNAME}-languageserver qt-languageserver_LIB= libQt${_QT_LIBVER}LanguageServer.so qt-lottie_PORT= graphics/${_QT_RELNAME}-lottie qt-lottie_LIB= libQt${_QT_LIBVER}Bodymovin.so qt-linguist_PORT= devel/${_QT_RELNAME}-linguist qt-linguist_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/linguist qt-linguisttools_PORT= devel/${_QT_RELNAME}-linguisttools qt-linguisttools_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/lrelease qt-location_PORT= devel/${_QT_RELNAME}-location qt-location_LIB= libQt${_QT_LIBVER}Location.so qt-l10n_PORT= misc/${_QT_RELNAME}-l10n qt-l10n_PATH= ${_QT_RELNAME}-l10n>=${_QT_VERSION:R:R} qt-multimedia_PORT= multimedia/${_QT_RELNAME}-multimedia qt-multimedia_LIB= libQt${_QT_LIBVER}Multimedia.so qt-network_PORT= net/${_QT_RELNAME}-network qt-network_LIB= libQt${_QT_LIBVER}Network.so qt-networkauth_PORT= net/${_QT_RELNAME}-networkauth qt-networkauth_LIB= libQt${_QT_LIBVER}NetworkAuth.so qt-opengl_PORT= graphics/${_QT_RELNAME}-opengl qt-opengl_LIB= libQt${_QT_LIBVER}OpenGL.so qt-paths_PORT= sysutils/${_QT_RELNAME}-qtpaths qt-paths_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qtpaths qt-pixeltool_PORT= graphics/${_QT_RELNAME}-pixeltool qt-pixeltool_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/pixeltool qt-phonon4_PORT= multimedia/phonon qt-phonon4_LIB= libphonon4${_QT_RELNAME}.so qt-positioning_PORT= devel/${_QT_RELNAME}-positioning qt-positioning_LIB= libQt${_QT_LIBVER}Positioning.so qt-plugininfo_PORT= sysutils/${_QT_RELNAME}-qtplugininfo qt-plugininfo_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qtplugininfo qt-printsupport_PORT= print/${_QT_RELNAME}-printsupport qt-printsupport_LIB= libQt${_QT_LIBVER}PrintSupport.so qt-qdbus_PORT= devel/${_QT_RELNAME}-qdbus qt-qdbus_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qdbus qt-qdbusviewer_PORT= devel/${_QT_RELNAME}-qdbusviewer qt-qdbusviewer_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qdbusviewer qt-qdoc_PORT= devel/${_QT_RELNAME}-qdoc qt-qdoc_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qdoc qt-qdoc-data_PORT= devel/${_QT_RELNAME}-qdoc-data qt-qdoc-data_PATH= ${LOCALBASE}/${QT_DOCDIR_REL}/global/config.qdocconf qt-qev_PORT= x11/${_QT_RELNAME}-qev qt-qev_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qev # Always build with *this* version's qmake qt-qmake_PORT= devel/${_QT_RELNAME}-qmake qt-qmake_PATH= ${_QT_RELNAME}-qmake>=${_QT_VERSION:R} qt-quick3d_PORT= x11-toolkits/${_QT_RELNAME}-quick3d qt-quick3d_LIB= libQt${_QT_LIBVER}Quick3D.so +qt-quick3dphysics_PORT= science/${_QT_RELNAME}-quick3dphysics +qt_quick3dphysics_LIB= libQt${_QT_LIBVER}Quick3DPhysics.so + qt-quickcontrols_PORT= x11-toolkits/${_QT_RELNAME}-quickcontrols qt-quickcontrols_PATH= ${LOCALBASE}/${QT_QMLDIR_REL}/QtQuick/Controls/qmldir qt-quickcontrols2_PORT= x11-toolkits/${_QT_RELNAME}-quickcontrols2 qt-quickcontrols2_LIB= libQt${_QT_LIBVER}QuickControls2.so qt-quickeffectmaker_PORT= graphics/${_QT_RELNAME}-quickeffectmaker qt-quickeffectmaker_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/qqem qt-quicktimeline_PORT= x11-toolkits/${_QT_RELNAME}-quicktimeline qt-quicktimeline_PATH= ${LOCALBASE}/${QT_QMLDIR_REL}/QtQuick/Timeline/libqtquicktimelineplugin.so qt-remoteobjects_PORT= devel/${_QT_RELNAME}-remoteobjects qt-remoteobjects_LIB= libQt${_QT_LIBVER}RemoteObjects.so qt-sensors_PORT= comms/${_QT_RELNAME}-sensors qt-sensors_LIB= libQt${_QT_LIBVER}Sensors.so qt-script_PORT= devel/${_QT_RELNAME}-script qt-script_LIB= libQt${_QT_LIBVER}Script.so qt-scripttools_PORT= devel/${_QT_RELNAME}-scripttools qt-scripttools_LIB= libQt${_QT_LIBVER}ScriptTools.so qt-scxml_PORT= devel/${_QT_RELNAME}-scxml qt-scxml_LIB= libQt${_QT_LIBVER}Scxml.so qt-serialbus_PORT= comms/${_QT_RELNAME}-serialbus qt-serialbus_LIB= libQt${_QT_LIBVER}SerialBus.so qt-serialport_PORT= comms/${_QT_RELNAME}-serialport qt-serialport_LIB= libQt${_QT_LIBVER}SerialPort.so qt-shadertools_PORT= x11-toolkits/${_QT_RELNAME}-shadertools qt-shadertools_LIB= libQt${_QT_LIBVER}ShaderTools.so qt-speech_PORT= accessibility/${_QT_RELNAME}-speech qt-speech_LIB= libQt${_QT_LIBVER}TextToSpeech.so qt-sql_PORT= databases/${_QT_RELNAME}-sql qt-sql_LIB= libQt${_QT_LIBVER}Sql.so qt-sql-pgsql_PATH= ${LOCALBASE}/${QT_PLUGINDIR_REL}/sqldrivers/libqsqlpsql.so qt-sql-sqlite3_PATH= ${LOCALBASE}/${QT_PLUGINDIR_REL}/sqldrivers/libqsqlite.so . for db in ibase mysql odbc pgsql sqlite2 sqlite3 tds qt-sql-${db}_PORT= databases/${_QT_RELNAME}-sqldrivers-${db} qt-sql-${db}_PATH?= ${LOCALBASE}/${QT_PLUGINDIR_REL}/sqldrivers/libqsql${db:C/^sql//}.so . endfor . for db in sqlite mysql psql odbc qt-sqldriver-${db}_PORT= databases/${_QT_RELNAME}-base_sqldriver@${db} qt-sqldriver-${db}_PATH?= ${LOCALBASE}/${QT_PLUGINDIR_REL}/sqldrivers/libqsql${db:C/^sql//}.so . endfor qt-svg_PORT= graphics/${_QT_RELNAME}-svg qt-svg_LIB= libQt${_QT_LIBVER}Svg.so qt-testlib_PORT= devel/${_QT_RELNAME}-testlib qt-testlib_LIB= libQt${_QT_LIBVER}Test.so qt-tools_PORT= devel/${_QT_RELNAME}-tools qt-tools_PATH= ${LOCALBASE}/${QT_BINDIR_REL}/lupdate qt-translations_PORT= devel/${_QT_RELNAME}-translations qt-translations_PATH= ${LOCALBASE}/${QT_DATADIR_REL}/translations/qt_en.qm qt-uiplugin_PORT= x11-toolkits/${_QT_RELNAME}-uiplugin qt-uiplugin_PATH= ${LOCALBASE}/${QT_INCDIR_REL}/QtUiPlugin/QtUiPlugin qt-uitools_PORT= devel/${_QT_RELNAME}-uitools qt-uitools_PATH= ${LOCALBASE}/${QT_LIBDIR_REL}/libQt${_QT_LIBVER}UiTools.a qt-virtualkeyboard_PORT= x11-toolkits/${_QT_RELNAME}-virtualkeyboard qt-virtualkeyboard_PATH= ${LOCALBASE}/${QT_PLUGINDIR_REL}/platforminputcontexts/libqtvirtualkeyboardplugin.so qt-wayland_PORT= graphics/${_QT_RELNAME}-wayland qt-wayland_LIB= libQt${_QT_LIBVER}WaylandClient.so qt-webchannel_PORT= www/${_QT_RELNAME}-webchannel qt-webchannel_LIB= libQt${_QT_LIBVER}WebChannel.so qt-webengine_PORT= www/${_QT_RELNAME}-webengine qt-webengine_LIB= libQt${_QT_LIBVER}WebEngineCore.so qt-webglplugin_PORT= www/${_QT_RELNAME}-webglplugin qt-webglplugin_PATH= ${LOCALBASE}/${QT_PLUGINDIR_REL}/platforms/libqwebgl.so qt-websockets_PORT= www/${_QT_RELNAME}-websockets qt-websockets_LIB= libQt${_QT_LIBVER}WebSockets.so qt-websockets-qml_PORT= www/${_QT_RELNAME}-websockets-qml qt-websockets-qml_PATH= ${LOCALBASE}/${QT_QMLDIR_REL}/QtWebSockets/qmldir qt-webkit_PORT= www/${_QT_RELNAME}-webkit qt-webkit_LIB= libQt${_QT_LIBVER}WebKit.so qt-webview_PORT= www/${_QT_RELNAME}-webview qt-webview_LIB= libQt${_QT_LIBVER}WebView.so qt-widgets_PORT= x11-toolkits/${_QT_RELNAME}-widgets qt-widgets_LIB= libQt${_QT_LIBVER}Widgets.so qt-x11extras_PORT= x11/${_QT_RELNAME}-x11extras qt-x11extras_LIB= libQt${_QT_LIBVER}X11Extras.so qt-xml_PORT= textproc/${_QT_RELNAME}-xml qt-xml_LIB= libQt${_QT_LIBVER}Xml.so qt-xmlpatterns_PORT= textproc/${_QT_RELNAME}-xmlpatterns qt-xmlpatterns_LIB= libQt${_QT_LIBVER}XmlPatterns.so # Actually add the dependencies to the proper lists. _USE_QT_ALL= ${_USE_QT_COMMON} \ ${_USE_QT${_QT_VER}_ONLY} _USE_QT= ${USE_QT} # Iterate through components deprived of suffix. . for component in ${_USE_QT:O:u:C/:(build|run)$//} # Check that the component is valid. . if ${_USE_QT_ALL:M${component}} != "" # Skip meta-components (currently none). . if defined(qt-${component}_PORT) && (defined(qt-${component}_PATH) || defined(qt-${component}_LIB)) # Check if a dependency type is explicitly requested. . if ${_USE_QT:M${component}\:*} != "" && ${_USE_QT:M${component}} == "" qt-${component}_TYPE= # empty . if ${_USE_QT:M${component}\:build} != "" qt-${component}_TYPE+= build . endif . if ${_USE_QT:M${component}\:run} != "" qt-${component}_TYPE+= run . endif . endif # ${_USE_QT:M${component}_*} != "" && ${_USE_QT:M${component}} == "" # If no dependency type is set, default to full dependency. . if !defined(qt-${component}_TYPE) qt-${component}_TYPE= build run . endif # Set real dependencies. . if defined(qt-${component}_LIB) && ${qt-${component}_TYPE:Mbuild} && ${qt-${component}_TYPE:Mrun} LIB_DEPENDS+= ${qt-${component}_LIB}:${qt-${component}_PORT} . else qt-${component}_PATH?= ${QT_LIBDIR}/${qt-${component}_LIB} qt-${component}_DEPENDS= ${qt-${component}_PATH}:${qt-${component}_PORT} . if ${qt-${component}_TYPE:Mbuild} != "" BUILD_DEPENDS+= ${qt-${component}_DEPENDS} . endif . if ${qt-${component}_TYPE:Mrun} != "" RUN_DEPENDS+= ${qt-${component}_DEPENDS} . endif . endif # ${qt-${component}_LIB} && ${qt-${component}_TYPE:Mbuild} && ${qt-${component}_TYPE:Mrun} . endif # defined(qt-${component}_PORT) && defined(qt-${component}_PATH) . else # ! ${_USE_QT_ALL:M${component}} != "" IGNORE= cannot be installed: unknown USE_QT component '${component}' . endif # ${_USE_QT_ALL:M${component}} != "" . endfor .endif # defined(_QT_MK_POST_INCLUDED) diff --git a/science/Makefile b/science/Makefile index eaa4caf1486d..5c177e281c25 100644 --- a/science/Makefile +++ b/science/Makefile @@ -1,520 +1,521 @@ COMMENT = Scientific ports SUBDIR += 2d-rewriter SUBDIR += ALPSCore SUBDIR += ChipmunkPhysics SUBDIR += InsightToolkit SUBDIR += InsightToolkit501 SUBDIR += PETSc SUBDIR += R-cran-DCluster SUBDIR += R-cran-Epi SUBDIR += R-cran-FAdist SUBDIR += R-cran-bayesm SUBDIR += R-cran-cmprsk SUBDIR += R-cran-e1071 SUBDIR += R-cran-eco SUBDIR += R-cran-epicalc SUBDIR += R-cran-etm SUBDIR += R-cran-fastICA SUBDIR += R-cran-kernlab SUBDIR += R-cran-ks SUBDIR += R-cran-snow SUBDIR += R-cran-som SUBDIR += R-cran-udunits2 SUBDIR += abinit SUBDIR += afni SUBDIR += agrum SUBDIR += aircraft-datcom SUBDIR += antioch SUBDIR += apbs SUBDIR += arbor SUBDIR += ascent SUBDIR += atompaw SUBDIR += avogadro2 SUBDIR += avogadrolibs SUBDIR += axom SUBDIR += bagel SUBDIR += bddsolve SUBDIR += berkeleygw SUBDIR += bodr SUBDIR += bout++ SUBDIR += bout++-merging-filaments SUBDIR += buddy SUBDIR += cantera SUBDIR += cardioid SUBDIR += cdf SUBDIR += cdk SUBDIR += cdo SUBDIR += cgnslib SUBDIR += cgribex SUBDIR += checkmol SUBDIR += chemical-mime-data SUBDIR += chemicalfun SUBDIR += chemps2 SUBDIR += chemtool SUBDIR += chemtool-devel SUBDIR += chimes-calculator SUBDIR += chrono SUBDIR += cif-tools SUBDIR += clhep SUBDIR += clipper SUBDIR += code_saturne SUBDIR += colt SUBDIR += conduit SUBDIR += coordgenlibs SUBDIR += cp2k SUBDIR += cp2k-data SUBDIR += csvtk SUBDIR += dakota SUBDIR += dalton SUBDIR += dd_package SUBDIR += devisor SUBDIR += dftbplus SUBDIR += dftd3 SUBDIR += dftd4 SUBDIR += dimod SUBDIR += dirac SUBDIR += dkh SUBDIR += dlib-cpp SUBDIR += drawxtl SUBDIR += dssp SUBDIR += dvc SUBDIR += dwave-preprocessing SUBDIR += dynare SUBDIR += eccodes SUBDIR += elk SUBDIR += elmerfem SUBDIR += epte SUBDIR += erd SUBDIR += ergo SUBDIR += erkale SUBDIR += erkale-pseudopotentials SUBDIR += fastcap SUBDIR += fasthenry SUBDIR += fastjet SUBDIR += feff10 SUBDIR += fleur SUBDIR += frontistr SUBDIR += fsom SUBDIR += fvcom SUBDIR += fvcom-mpi SUBDIR += gabedit SUBDIR += gamess-us SUBDIR += gbtolib SUBDIR += gchemutils SUBDIR += gcp SUBDIR += gdma SUBDIR += geant4 SUBDIR += gemmi SUBDIR += getdp SUBDIR += ghemical SUBDIR += ghmm SUBDIR += gnudatalanguage SUBDIR += gpaw-setups SUBDIR += gramps SUBDIR += grib_api SUBDIR += gromacs SUBDIR += gsmc SUBDIR += gtamsanalyzer SUBDIR += h5utils SUBDIR += h5z-zfp SUBDIR += harminv SUBDIR += hdf SUBDIR += hdf5 SUBDIR += hdf5-110 SUBDIR += hdf5-18 SUBDIR += healpix SUBDIR += helfem SUBDIR += hepmc3 SUBDIR += highfive SUBDIR += hypre SUBDIR += iboview SUBDIR += isaac-cfd SUBDIR += jdftx SUBDIR += jmol SUBDIR += jstrack SUBDIR += kalzium SUBDIR += kim-api SUBDIR += kplib SUBDIR += kst2 SUBDIR += lammps SUBDIR += lamprop SUBDIR += latte SUBDIR += libaec SUBDIR += libccp4 SUBDIR += libcifpp SUBDIR += libcint SUBDIR += libctl SUBDIR += libecpint SUBDIR += libefp SUBDIR += libgeodecomp SUBDIR += libgetar SUBDIR += libghemical SUBDIR += libgridxc SUBDIR += libint SUBDIR += libint2 SUBDIR += libint2-psi4 SUBDIR += libkml SUBDIR += liblinear SUBDIR += libmbd SUBDIR += libmsym SUBDIR += libnegf SUBDIR += liboglappth SUBDIR += libquantum SUBDIR += libssm SUBDIR += libsvm SUBDIR += libsvm-python SUBDIR += libtensorflow1 SUBDIR += libvdwxc SUBDIR += libxc SUBDIR += liggghts SUBDIR += linux-zotero SUBDIR += luscus SUBDIR += m-aneos SUBDIR += madness SUBDIR += maeparser SUBDIR += massxpert SUBDIR += mbdyn SUBDIR += mcstas SUBDIR += mcstas-comps SUBDIR += mctc-lib SUBDIR += mcxtrace SUBDIR += mcxtrace-comps SUBDIR += mdynamix SUBDIR += medit SUBDIR += meep SUBDIR += mercantile SUBDIR += metaphysicl SUBDIR += minc2 SUBDIR += mmdb2 SUBDIR += mmtf-cpp SUBDIR += mol2ps SUBDIR += molgif SUBDIR += molscript SUBDIR += molsketch SUBDIR += mopac SUBDIR += mp2d SUBDIR += mpb SUBDIR += mpqc SUBDIR += mrchem SUBDIR += mrcpp SUBDIR += msms SUBDIR += mstore SUBDIR += multicharge SUBDIR += multiwfn SUBDIR += namd SUBDIR += nest SUBDIR += netcdf SUBDIR += netcdf-cxx SUBDIR += netcdf-fortran SUBDIR += nifticlib SUBDIR += nlcglib SUBDIR += nwchem SUBDIR += nwchem-data SUBDIR += ocean SUBDIR += octopus SUBDIR += openbabel SUBDIR += openems SUBDIR += openkim-models SUBDIR += openmc SUBDIR += openmodelica SUBDIR += openmolcas SUBDIR += openmx SUBDIR += opensim-core SUBDIR += opensph SUBDIR += opsin SUBDIR += orthanc SUBDIR += orthanc-dicomweb SUBDIR += orthanc-mysql SUBDIR += orthanc-postgresql SUBDIR += orthanc-webviewer SUBDIR += p5-Algorithm-SVMLight SUBDIR += p5-Chemistry-3DBuilder SUBDIR += p5-Chemistry-Bond-Find SUBDIR += p5-Chemistry-Canonicalize SUBDIR += p5-Chemistry-Elements SUBDIR += p5-Chemistry-File-MDLMol SUBDIR += p5-Chemistry-File-Mopac SUBDIR += p5-Chemistry-File-PDB SUBDIR += p5-Chemistry-File-SLN SUBDIR += p5-Chemistry-File-SMARTS SUBDIR += p5-Chemistry-File-SMILES SUBDIR += p5-Chemistry-File-VRML SUBDIR += p5-Chemistry-File-XYZ SUBDIR += p5-Chemistry-FormulaPattern SUBDIR += p5-Chemistry-InternalCoords SUBDIR += p5-Chemistry-Isotope SUBDIR += p5-Chemistry-MacroMol SUBDIR += p5-Chemistry-MidasPattern SUBDIR += p5-Chemistry-Mok SUBDIR += p5-Chemistry-Mol SUBDIR += p5-Chemistry-Pattern SUBDIR += p5-Chemistry-Reaction SUBDIR += p5-Chemistry-Ring SUBDIR += p5-Geo-BUFR SUBDIR += p5-Geo-Calc SUBDIR += p5-Geo-Coordinates-Converter SUBDIR += p5-Geo-Coordinates-Converter-iArea SUBDIR += p5-Geo-Coordinates-Transform SUBDIR += p5-Geo-WebService-Elevation-USGS SUBDIR += p5-Mcstas-Tools SUBDIR += p5-PerlMol SUBDIR += p5-Physics-Unit SUBDIR += packmol SUBDIR += pagmo2 SUBDIR += paje SUBDIR += paraview SUBDIR += pastix SUBDIR += pcmsolver SUBDIR += phonopy SUBDIR += plumed SUBDIR += pnetcdf SUBDIR += polytope SUBDIR += precice SUBDIR += psi4 SUBDIR += pulseview SUBDIR += py-DendroPy SUBDIR += py-GPy SUBDIR += py-GPyOpt SUBDIR += py-HepMC3 SUBDIR += py-MDAnalysis SUBDIR += py-MDAnalysisTests SUBDIR += py-OpenFermion SUBDIR += py-OpenFermion-Dirac SUBDIR += py-OpenFermion-PySCF SUBDIR += py-OpenMC SUBDIR += py-PubChemPy SUBDIR += py-PyFR SUBDIR += py-PyNE SUBDIR += py-SimpleSpectral SUBDIR += py-abipy SUBDIR += py-access SUBDIR += py-arbor SUBDIR += py-arch SUBDIR += py-asap3 SUBDIR += py-asdf SUBDIR += py-asdf-standard SUBDIR += py-asdf-transform-schemas SUBDIR += py-asdf-unit-schemas SUBDIR += py-ase SUBDIR += py-atomium SUBDIR += py-avogadrolibs SUBDIR += py-boutdata SUBDIR += py-boututils SUBDIR += py-cdo SUBDIR += py-cfgrib SUBDIR += py-chainer SUBDIR += py-chainer-chemistry SUBDIR += py-chempy SUBDIR += py-cirq-aqt SUBDIR += py-cirq-core SUBDIR += py-cirq-google SUBDIR += py-cirq-ionq SUBDIR += py-cirq-pasqal SUBDIR += py-cirq-rigetti SUBDIR += py-coards SUBDIR += py-dftbplus SUBDIR += py-dftd4 SUBDIR += py-dimod SUBDIR += py-dipy SUBDIR += py-dlib SUBDIR += py-dwave-cloud-client SUBDIR += py-dwave-greedy SUBDIR += py-dwave-hybrid SUBDIR += py-dwave-inspector SUBDIR += py-dwave-neal SUBDIR += py-dwave-networkx SUBDIR += py-dwave-ocean-sdk SUBDIR += py-dwave-preprocessing SUBDIR += py-dwave-samplers SUBDIR += py-dwave-system SUBDIR += py-dwave-tabu SUBDIR += py-dwavebinarycsp SUBDIR += py-earthpy SUBDIR += py-eccodes SUBDIR += py-emmet-core SUBDIR += py-esda SUBDIR += py-fresnel SUBDIR += py-gemmi SUBDIR += py-geolinks SUBDIR += py-geomet SUBDIR += py-geometer SUBDIR += py-geometric SUBDIR += py-gpaw SUBDIR += py-gsd SUBDIR += py-h5json SUBDIR += py-h5py SUBDIR += py-hiphive SUBDIR += py-hoomd-blue SUBDIR += py-inequality SUBDIR += py-ipygany SUBDIR += py-jupyter_jsmol SUBDIR += py-kim-query SUBDIR += py-kimpy SUBDIR += py-kinematics SUBDIR += py-kliff SUBDIR += py-kpLib SUBDIR += py-liac-arff SUBDIR += py-libgetar SUBDIR += py-libpysal SUBDIR += py-lifelines SUBDIR += py-mdp SUBDIR += py-meshio SUBDIR += py-mmcif SUBDIR += py-mmtf-python SUBDIR += py-molmod SUBDIR += py-moltemplate SUBDIR += py-mp-api SUBDIR += py-mpcontribs-client SUBDIR += py-mrchem SUBDIR += py-netCDF4 SUBDIR += py-netcdf-flattener SUBDIR += py-nglview SUBDIR += py-nibabel SUBDIR += py-nilearn SUBDIR += py-obspy SUBDIR += py-oddt SUBDIR += py-openbabel SUBDIR += py-openpiv SUBDIR += py-optking SUBDIR += py-paida SUBDIR += py-paramz SUBDIR += py-penaltymodel SUBDIR += py-phono3py SUBDIR += py-phonopy SUBDIR += py-pupynere SUBDIR += py-py3Dmol SUBDIR += py-pyaixi SUBDIR += py-pyberny SUBDIR += py-pycsw SUBDIR += py-pydicom SUBDIR += py-pygeodesy SUBDIR += py-pygeometa SUBDIR += py-pygmo2 SUBDIR += py-pyked SUBDIR += py-pymatgen SUBDIR += py-pymatgen-analysis-alloys SUBDIR += py-pymbd SUBDIR += py-pymol SUBDIR += py-pyosf SUBDIR += py-pyprecice SUBDIR += py-pyqubo SUBDIR += py-pysal SUBDIR += py-pyscf SUBDIR += py-pyteomics SUBDIR += py-qcelemental SUBDIR += py-qcengine SUBDIR += py-qiskit SUBDIR += py-qiskit-aer SUBDIR += py-qiskit-dynamics SUBDIR += py-qiskit-experiments SUBDIR += py-qiskit-finance SUBDIR += py-qiskit-ibm-experiment SUBDIR += py-qiskit-ibm-provider SUBDIR += py-qiskit-ibmq-provider SUBDIR += py-qiskit-nature SUBDIR += py-qiskit-optimization SUBDIR += py-qiskit-terra SUBDIR += py-qspin SUBDIR += py-quantities SUBDIR += py-rmf SUBDIR += py-rmsd SUBDIR += py-ruffus SUBDIR += py-scikit-fuzzy SUBDIR += py-scikit-learn SUBDIR += py-scikit-optimize SUBDIR += py-scikit-sparse SUBDIR += py-scimath SUBDIR += py-scipy SUBDIR += py-scoria SUBDIR += py-sdf SUBDIR += py-segregation SUBDIR += py-segyio SUBDIR += py-signac SUBDIR += py-sklearn-pandas SUBDIR += py-skrebate SUBDIR += py-spaghetti SUBDIR += py-spglib SUBDIR += py-tensorflow SUBDIR += py-thewalrus SUBDIR += py-tobler SUBDIR += py-trainstation SUBDIR += py-tweedledum SUBDIR += py-vedo SUBDIR += py-veusz SUBDIR += py-xbout SUBDIR += pybrain SUBDIR += pynn SUBDIR += q SUBDIR += qbox SUBDIR += qcl SUBDIR += qiskit-aer SUBDIR += qmcpack + SUBDIR += qt6-quick3dphysics SUBDIR += quantum-espresso SUBDIR += quantum-espresso-pseudopotentials SUBDIR += quantum-jet SUBDIR += qwalk SUBDIR += rdkit SUBDIR += rmf SUBDIR += rubygem-ai4r SUBDIR += rubygem-cdo SUBDIR += rubygem-rgeo SUBDIR += rubygem-rgeo-geojson SUBDIR += rubygem-rgeo-proj4 SUBDIR += rubygem-rgeo-shapefile SUBDIR += rubygem-ruby-netcdf SUBDIR += salome-configuration SUBDIR += salome-kernel SUBDIR += scidavis SUBDIR += sciplot SUBDIR += segyio SUBDIR += serac SUBDIR += shelxle SUBDIR += siconos SUBDIR += siesta SUBDIR += sigrok-cli SUBDIR += sigrok-firmware SUBDIR += sigrok-firmware-fx2lafw SUBDIR += sigrok-firmware-utils SUBDIR += silo SUBDIR += simbody SUBDIR += simgrid SUBDIR += simint SUBDIR += simlib SUBDIR += simple-dftd3 SUBDIR += simsmith SUBDIR += sirius SUBDIR += smoldyn SUBDIR += sparta SUBDIR += spglib SUBDIR += spheral SUBDIR += step SUBDIR += svmlight SUBDIR += tblite SUBDIR += teem SUBDIR += tfel SUBDIR += tfel-edf SUBDIR += thermofun SUBDIR += tinker SUBDIR += trilinos SUBDIR += ttk SUBDIR += tweedledum SUBDIR += udunits SUBDIR += ukrmol+ SUBDIR += v_sim SUBDIR += vipster SUBDIR += vmd SUBDIR += voro++ SUBDIR += votca SUBDIR += wannier90 SUBDIR += wwplot SUBDIR += wxmacmolplt SUBDIR += xcfun SUBDIR += xcrysden SUBDIR += xdrawchem SUBDIR += xtb SUBDIR += yoda SUBDIR += zotero SUBDIR += zx .include diff --git a/science/qt6-quick3dphysics/Makefile b/science/qt6-quick3dphysics/Makefile new file mode 100644 index 000000000000..2f8ac5d7d9f6 --- /dev/null +++ b/science/qt6-quick3dphysics/Makefile @@ -0,0 +1,18 @@ +PORTNAME= quick3dphysics +DISTVERSION= ${QT6_VERSION} +CATEGORIES= science +PKGNAMEPREFIX= qt6- + +MAINTAINER= kde@FreeBSD.org +COMMENT= High-level API for physics simulation +WWW= https://qt.io + +BUILD_DEPENDS= vulkan-headers>0:graphics/vulkan-headers +LIB_DEPENDS= libxkbcommon.so:x11/libxkbcommon + +USES= cmake compiler:c++17-lang gl pkgconfig qt-dist:6 +USE_GL= opengl +USE_LOCALE= C.UTF-8 +USE_QT= base declarative quick3d shadertools + +.include diff --git a/science/qt6-quick3dphysics/distinfo b/science/qt6-quick3dphysics/distinfo new file mode 100644 index 000000000000..3508c593ce69 --- /dev/null +++ b/science/qt6-quick3dphysics/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1698094915 +SHA256 (KDE/Qt/6.5.3/qtquick3dphysics-everywhere-src-6.5.3.tar.xz) = 3291301d243ff39febc96d6641eb4b44feeef43087c475cbb0b22dc910a5a4ba +SIZE (KDE/Qt/6.5.3/qtquick3dphysics-everywhere-src-6.5.3.tar.xz) = 4697400 diff --git a/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_include_extensions_PxDefaultAllocator.h b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_include_extensions_PxDefaultAllocator.h new file mode 100644 index 000000000000..1d65b4cffa62 --- /dev/null +++ b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_include_extensions_PxDefaultAllocator.h @@ -0,0 +1,23 @@ +Index: src/3rdparty/PhysX/include/extensions/PxDefaultAllocator.h +--- src/3rdparty/PhysX/include/extensions/PxDefaultAllocator.h.orig 2023-09-24 11:12:43 UTC ++++ src/3rdparty/PhysX/include/extensions/PxDefaultAllocator.h +@@ -41,8 +41,10 @@ + #include + + #if PX_WINDOWS_FAMILY || PX_LINUX_FAMILY || PX_SWITCH ++#if !PX_FREEBSD + #include + #endif ++#endif + + #if !PX_DOXYGEN + namespace physx +@@ -60,7 +62,7 @@ PX_FORCE_INLINE void platformAlignedFree(void* ptr) + { + _aligned_free(ptr); + } +-#elif PX_LINUX_FAMILY || PX_SWITCH ++#elif PX_LINUX_FAMILY && !PX_FREEBSD || PX_SWITCH + PX_FORCE_INLINE void* platformAlignedAlloc(size_t size) + { + return ::memalign(16, size); diff --git a/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_pxshared_include_foundation_PxPreprocessor.h b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_pxshared_include_foundation_PxPreprocessor.h new file mode 100644 index 000000000000..4f2e2c01d0f2 --- /dev/null +++ b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_pxshared_include_foundation_PxPreprocessor.h @@ -0,0 +1,23 @@ +Index: src/3rdparty/PhysX/pxshared/include/foundation/PxPreprocessor.h +--- src/3rdparty/PhysX/pxshared/include/foundation/PxPreprocessor.h.orig 2023-09-24 11:12:43 UTC ++++ src/3rdparty/PhysX/pxshared/include/foundation/PxPreprocessor.h +@@ -100,6 +100,9 @@ Operating system defines, see http://sourceforge.net/p + #define PX_ANDROID 1 + #elif defined(__linux__) || defined (__EMSCRIPTEN__) // note: __ANDROID__ implies __linux__ + #define PX_LINUX 1 ++#elif defined(__FreeBSD__) ++#define PX_LINUX 1 ++#define PX_FREEBSD 1 + #elif defined(TARGET_OS_IOS) && TARGET_OS_IOS && defined(__APPLE__) && (defined(__arm__) || defined(__arm64__)) + #define PX_IOS 1 + #elif defined(__APPLE__) +@@ -187,6 +190,9 @@ define anything not defined on this platform to 0 + #endif + #ifndef PX_LINUX + #define PX_LINUX 0 ++#endif ++#ifndef PX_FREEBSD ++#define PX_FREEBSD 0 + #endif + #ifndef PX_IOS + #define PX_IOS 0 diff --git a/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_include_PsAllocator.h b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_include_PsAllocator.h new file mode 100644 index 000000000000..7c8f8765f611 --- /dev/null +++ b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_include_PsAllocator.h @@ -0,0 +1,15 @@ +Index: src/3rdparty/PhysX/source/foundation/include/PsAllocator.h +--- src/3rdparty/PhysX/source/foundation/include/PsAllocator.h.orig 2023-09-24 11:12:43 UTC ++++ src/3rdparty/PhysX/source/foundation/include/PsAllocator.h +@@ -100,8 +100,10 @@ + #if PX_WINDOWS_FAMILY + #include + #define PxAlloca(x) _alloca(x) +-#elif PX_LINUX || PX_ANDROID ++#elif (PX_LINUX || PX_ANDROID) && !defined(PX_FREEBSD) + #include ++ #define PxAlloca(x) alloca(x) ++#elif PX_FREEBSD + #define PxAlloca(x) alloca(x) + #elif PX_APPLE_FAMILY + #include diff --git a/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_src_unix_PsUnixSocket.cpp b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_src_unix_PsUnixSocket.cpp new file mode 100644 index 000000000000..2d3135dceb3b --- /dev/null +++ b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_src_unix_PsUnixSocket.cpp @@ -0,0 +1,12 @@ +--- src/3rdparty/PhysX/source/foundation/src/unix/PsUnixSocket.cpp.orig 2023-09-24 11:12:43 UTC ++++ src/3rdparty/PhysX/source/foundation/src/unix/PsUnixSocket.cpp +@@ -44,6 +44,9 @@ + #include + #include + #include ++#if PX_FREEBSD ++#include ++#endif + + #define INVALID_SOCKET -1 + diff --git a/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_src_unix_PsUnixThread.cpp b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_src_unix_PsUnixThread.cpp new file mode 100644 index 000000000000..93fd958d96a6 --- /dev/null +++ b/science/qt6-quick3dphysics/files/patch-src_3rdparty_PhysX_source_foundation_src_unix_PsUnixThread.cpp @@ -0,0 +1,45 @@ +Index: src/3rdparty/PhysX/source/foundation/src/unix/PsUnixThread.cpp +--- src/3rdparty/PhysX/source/foundation/src/unix/PsUnixThread.cpp.orig 2023-09-24 11:12:43 UTC ++++ src/3rdparty/PhysX/source/foundation/src/unix/PsUnixThread.cpp +@@ -36,7 +36,7 @@ + #include "PsThread.h" + + #include +-#if !PX_APPLE_FAMILY && !defined(ANDROID) && !defined(__CYGWIN__) && !PX_PS4 && !PX_EMSCRIPTEN && __GLIBC__ ++#if !PX_APPLE_FAMILY && !defined(ANDROID) && !defined(__CYGWIN__) && !PX_PS4 && !PX_EMSCRIPTEN && !PX_FREEBSD && __GLIBC__ + #include // PTHREAD_STACK_MIN + #endif + #include +@@ -44,7 +44,7 @@ + #include + #if !PX_PS4 + #include +-#if !PX_APPLE_FAMILY && !PX_EMSCRIPTEN ++#if !PX_APPLE_FAMILY && !PX_EMSCRIPTEN && !PX_FREEBSD + #include + #include + #endif +@@ -111,11 +111,11 @@ static void setTid(_ThreadImpl& threadImpl) + static void setTid(_ThreadImpl& threadImpl) + { + // query TID +-#if PX_PS4 || (defined (TARGET_OS_TV) && TARGET_OS_TV) ++#if PX_PS4 || (defined (TARGET_OS_TV) && TARGET_OS_TV) || PX_FREEBSD + // AM: TODO: neither of the below are implemented +-#elif PX_APPLE_FAMILY ++#elif PX_APPLE_FAMILY || !PX_FREEBSD + threadImpl.tid = syscall(SYS_gettid); +-#elif PX_EMSCRIPTEN ++#elif PX_EMSCRIPTEN || PX_FREEBSD + threadImpl.tid = pthread_self(); + #else + threadImpl.tid = syscall(__NR_gettid); +@@ -311,7 +311,7 @@ uint32_t ThreadImpl::setAffinityMask(uint32_t mask) + { + #if PX_PS4 + prevMask = setAffinityMaskPS4(getThread(this)->thread, mask); +-#elif PX_EMSCRIPTEN ++#elif PX_EMSCRIPTEN || PX_FREEBSD + // not supported + #elif !PX_APPLE_FAMILY // Apple doesn't support syscall with getaffinity and setaffinity + int32_t errGet = syscall(__NR_sched_getaffinity, getThread(this)->tid, sizeof(prevMask), &prevMask); diff --git a/science/qt6-quick3dphysics/pkg-descr b/science/qt6-quick3dphysics/pkg-descr new file mode 100644 index 000000000000..30a0f740f517 --- /dev/null +++ b/science/qt6-quick3dphysics/pkg-descr @@ -0,0 +1,4 @@ +Qt Quick 3D Physics provides a high-level API for physics simulation. It +supports simulating interactive rigid bodies as well as static meshes and +non-colliding bodies used for detecting overlaps. Every simulated body +can have its own physical properties like mass, density and friction. diff --git a/science/qt6-quick3dphysics/pkg-plist b/science/qt6-quick3dphysics/pkg-plist new file mode 100644 index 000000000000..aa70931f6efb --- /dev/null +++ b/science/qt6-quick3dphysics/pkg-plist @@ -0,0 +1,172 @@ +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qabstractcollisionshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qabstractphysicsbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qabstractphysicsnode_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qabstractphysxnode_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qboxshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qcacheutils_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qcapsuleshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qcharactercontroller_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qcollisiondebugmeshbuilder_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qconvexmeshshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qdebugdrawhelper_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qdynamicrigidbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qheightfieldshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysicscommands_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysicsmaterial_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysicsmeshutils_p_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysicsutils_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysicsworld_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysxactorbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysxcharactercontroller_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysxdynamicbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysxrigidbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysxstaticbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysxtriggerbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qphysxworld_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qplaneshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qsphereshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qstaticphysxobjects_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qstaticrigidbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qtquick3dphysicsglobal_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qtrianglemeshshape_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/%%FULLVER%%/QtQuick3DPhysics/private/qtriggerbody_p.h +%%QT_INCDIR%%/QtQuick3DPhysics/QtQuick3DPhysics +%%QT_INCDIR%%/QtQuick3DPhysics/QtQuick3DPhysicsDepends +%%QT_INCDIR%%/QtQuick3DPhysics/QtQuick3DPhysicsVersion +%%QT_INCDIR%%/QtQuick3DPhysics/qtquick3dphysicsglobal.h +%%QT_INCDIR%%/QtQuick3DPhysics/qtquick3dphysicsversion.h +%%QT_INCDIR%%/QtQuick3DPhysicsHelpers/%%FULLVER%%/QtQuick3DPhysicsHelpers/private/qcapsulegeometry_p.h +%%QT_INCDIR%%/QtQuick3DPhysicsHelpers/QtQuick3DPhysicsHelpers +%%QT_INCDIR%%/QtQuick3DPhysicsHelpers/QtQuick3DPhysicsHelpersDepends +%%QT_INCDIR%%/QtQuick3DPhysicsHelpers/QtQuick3DPhysicsHelpersVersion +%%QT_INCDIR%%/QtQuick3DPhysicsHelpers/qtquick3dphysicshelpersversion.h +lib/cmake/Qt6/FindWrapBundledPhysXConfigExtra.cmake +lib/cmake/Qt6BuildInternals/StandaloneTests/QtQuick3DPhysicsTestsConfig.cmake +lib/cmake/Qt6BundledPhysX/Qt6BundledPhysXAdditionalTargetInfo.cmake +lib/cmake/Qt6BundledPhysX/Qt6BundledPhysXConfig.cmake +lib/cmake/Qt6BundledPhysX/Qt6BundledPhysXConfigVersion.cmake +lib/cmake/Qt6BundledPhysX/Qt6BundledPhysXConfigVersionImpl.cmake +lib/cmake/Qt6BundledPhysX/Qt6BundledPhysXTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/Qt6BundledPhysX/Qt6BundledPhysXTargets.cmake +lib/cmake/Qt6BundledPhysX/Qt6BundledPhysXVersionlessTargets.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qquick3dphysicspluginAdditionalTargetInfo.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qquick3dphysicspluginConfig.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qquick3dphysicspluginConfigVersion.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qquick3dphysicspluginConfigVersionImpl.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qquick3dphysicspluginTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qquick3dphysicspluginTargets.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qtquick3dphysicshelperspluginAdditionalTargetInfo.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qtquick3dphysicshelperspluginConfig.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qtquick3dphysicshelperspluginConfigVersion.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qtquick3dphysicshelperspluginConfigVersionImpl.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qtquick3dphysicshelperspluginTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/Qt6Qml/QmlPlugins/Qt6qtquick3dphysicshelperspluginTargets.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsAdditionalTargetInfo.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsConfig.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsConfigVersion.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsConfigVersionImpl.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsDependencies.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsTargets.cmake +lib/cmake/Qt6Quick3DPhysics/Qt6Quick3DPhysicsVersionlessTargets.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersAdditionalTargetInfo.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersConfig.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersConfigVersion.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersConfigVersionImpl.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersDependencies.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersTargets-%%CMAKE_BUILD_TYPE%%.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersTargets.cmake +lib/cmake/Qt6Quick3DPhysicsHelpers/Qt6Quick3DPhysicsHelpersVersionlessTargets.cmake +%%QT_BINDIR%%/cooker +%%QT_LIBDIR%%/libQt6BundledPhysX.a +%%QT_LIBDIR%%/libQt6Quick3DPhysics.prl +%%QT_LIBDIR%%/libQt6Quick3DPhysics.so +%%QT_LIBDIR%%/libQt6Quick3DPhysics.so.6 +%%QT_LIBDIR%%/libQt6Quick3DPhysics.so.%%FULLVER%% +%%QT_LIBDIR%%/libQt6Quick3DPhysicsHelpers.prl +%%QT_LIBDIR%%/libQt6Quick3DPhysicsHelpers.so +%%QT_LIBDIR%%/libQt6Quick3DPhysicsHelpers.so.6 +%%QT_LIBDIR%%/libQt6Quick3DPhysicsHelpers.so.%%FULLVER%% +%%QT_LIBDIR%%/metatypes/qt6quick3dphysics_%%CMAKE_BUILD_TYPE%%_metatypes.json +%%QT_LIBDIR%%/metatypes/qt6quick3dphysicshelpers_%%CMAKE_BUILD_TYPE%%_metatypes.json +%%QT_MKSPECDIR%%/modules/qt_lib_quick3dphysics.pri +%%QT_MKSPECDIR%%/modules/qt_lib_quick3dphysics_private.pri +%%QT_MKSPECDIR%%/modules/qt_lib_quick3dphysicshelpers.pri +%%QT_MKSPECDIR%%/modules/qt_lib_quick3dphysicshelpers_private.pri +%%QT_QMLDIR%%/QtQuick3D/Physics/Helpers/libqtquick3dphysicshelpersplugin.so +%%QT_QMLDIR%%/QtQuick3D/Physics/Helpers/plugins.qmltypes +%%QT_QMLDIR%%/QtQuick3D/Physics/Helpers/qmldir +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/BoxShapeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/BoxShapeSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/CapsuleShapeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/CapsuleShapeSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/CharacterControllerSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/CharacterControllerSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/CollisionShapeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/ConvexMeshShapeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/ConvexMeshShapeSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/DynamicRigidBodySection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/DynamicRigidBodySpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/HeightFieldShapeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/HeightFieldShapeSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/NodeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/PhysicsBodySection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/PhysicsMaterialSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/PhysicsMaterialSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/PhysicsNodeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/PhysicsWorldSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/PhysicsWorldSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/PlaneShapeSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/SphereShapeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/SphereShapeSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/StaticRigidBodySpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/TriangleMeshShapeSection.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/TriangleMeshShapeSpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/TriggerBodySpecifics.qml +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/boxshape.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/boxshape16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/boxshape@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/capsuleshape.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/capsuleshape16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/capsuleshape@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/charactercontroller.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/charactercontroller16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/charactercontroller@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/convexmeshshape.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/convexmeshshape16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/convexmeshshape@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/dynamicrigidbody.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/dynamicrigidbody16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/dynamicrigidbody@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/heightfieldshape.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/heightfieldshape16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/heightfieldshape@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/physicsmaterial.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/physicsmaterial16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/physicsmaterial@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/physicsworld.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/physicsworld16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/physicsworld@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/planeshape.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/planeshape16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/planeshape@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/sphereshape.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/sphereshape16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/sphereshape@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/staticrigidbody.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/staticrigidbody16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/staticrigidbody@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/trianglemeshshape.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/trianglemeshshape16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/trianglemeshshape@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/triggerbody.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/triggerbody16.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/images/triggerbody@2x.png +%%QT_QMLDIR%%/QtQuick3D/Physics/designer/physics.metainfo +%%QT_QMLDIR%%/QtQuick3D/Physics/libqquick3dphysicsplugin.so +%%QT_QMLDIR%%/QtQuick3D/Physics/plugins.qmltypes +%%QT_QMLDIR%%/QtQuick3D/Physics/qmldir +libdata/pkgconfig/Qt6Quick3DPhysics.pc +libdata/pkgconfig/Qt6Quick3DPhysicsHelpers.pc +%%QT_DATADIR%%/modules/Quick3DPhysics.json +%%QT_DATADIR%%/modules/Quick3DPhysicsHelpers.json