diff --git a/qt3d-assimp-fix-build.patch b/qt3d-assimp-fix-build.patch new file mode 100644 index 0000000..87d4c30 --- /dev/null +++ b/qt3d-assimp-fix-build.patch @@ -0,0 +1,28 @@ +diff --git a/src/3rdparty/assimp/src/code/Common/Importer.h b/src/3rdparty/assimp/src/code/Common/Importer.h +index e7da7f4..c41dd53 100644 +--- a/src/3rdparty/assimp/src/code/Common/Importer.h ++++ b/src/3rdparty/assimp/src/code/Common/Importer.h +@@ -50,6 +50,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include + #include + ++#include ++#include ++ + struct aiScene; + + namespace Assimp { +diff --git a/src/3rdparty/assimp/src/include/assimp/Importer.hpp b/src/3rdparty/assimp/src/include/assimp/Importer.hpp +index 09b5b68..327c71f 100644 +--- a/src/3rdparty/assimp/src/include/assimp/Importer.hpp ++++ b/src/3rdparty/assimp/src/include/assimp/Importer.hpp +@@ -61,6 +61,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + #include + ++#include ++#include ++ + namespace Assimp { + // ======================================================================= + // Public interface to Assimp diff --git a/qt3d-everywhere-src-6.5.0.tar.xz b/qt3d-everywhere-src-6.5.0.tar.xz new file mode 100644 index 0000000..e69de29 diff --git a/qt3d-everywhere-src-6.5.0.tar.xz0 b/qt3d-everywhere-src-6.5.0.tar.xz0 new file mode 100644 index 0000000..aa9ed8c Binary files /dev/null and b/qt3d-everywhere-src-6.5.0.tar.xz0 differ diff --git a/qt3d-everywhere-src-6.5.0.tar.xz1 b/qt3d-everywhere-src-6.5.0.tar.xz1 new file mode 100644 index 0000000..926dbd5 Binary files /dev/null and b/qt3d-everywhere-src-6.5.0.tar.xz1 differ diff --git a/qt3dcore-config-multilib_p.h b/qt3dcore-config-multilib_p.h new file mode 100644 index 0000000..09affc1 --- /dev/null +++ b/qt3dcore-config-multilib_p.h @@ -0,0 +1,22 @@ +/* qt3dcore-config_p.h */ +/* This file is here to prevent a file conflict on multiarch systems. A + * conflict will occur because qt3dcore-config_p.h has arch-specific definitions. + * + * DO NOT INCLUDE THE NEW FILE DIRECTLY -- ALWAYS INCLUDE THIS ONE INSTEAD. */ + +#ifndef Q3DCONFIG_MULTILIB_H +#define Q3DCONFIG_MULTILIB_H + +#ifndef __WORDSIZE +#include +#endif + +#if __WORDSIZE == 32 +#include "Qt3DCore/private/qt3dcore-config-32_p.h" +#elif __WORDSIZE == 64 +#include "Qt3DCore/private/qt3dcore-config-64_p.h" +#else +#error "unexpected value for __WORDSIZE macro" +#endif + +#endif diff --git a/qt6-qt3d.spec b/qt6-qt3d.spec new file mode 100644 index 0000000..7a593bf --- /dev/null +++ b/qt6-qt3d.spec @@ -0,0 +1,200 @@ + +%global qt_module qt3d + +%define short_version 6.5 + +Summary: Qt6 - Qt3D QML bindings and C++ APIs +Name: qt6-%{qt_module} +Version: 6.5.0 +Release: 1 + +%global examples 1 + +# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details +# See also http://doc.qt.io/qt-5/licensing.html +License: LGPLv2 with exceptions or GPLv3 with exceptions +Url: http://www.qt.io +Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz +Source1: qt3dcore-config-multilib_p.h +Source2: %{qt_module}-everywhere-src-%{version}.tar.xz0 +Source3: %{qt_module}-everywhere-src-%{version}.tar.xz1 + +Patch0: qt3d-assimp-fix-build.patch + +BuildRequires: gcc-c++ +BuildRequires: cmake +BuildRequires: ninja-build +BuildRequires: qt6-rpm-macros >= %{version} +BuildRequires: qt6-qtbase-static >= %{version} +BuildRequires: qt6-qtbase-private-devel +%{?_qt6:Requires: %{_qt6}%{?_isa} = %{_qt6_version}} +BuildRequires: qt6-qtdeclarative-devel +BuildRequires: qt6-qtshadertools-devel +BuildRequires: qt6-qtimageformats +BuildRequires: pkgconfig(minizip) +BuildRequires: pkgconfig(assimp) >= 3.3.1 +Requires: qt6-qtimageformats%{?_isa} >= %{version} + +%description +Qt 3D provides functionality for near-realtime simulation systems with +support for 2D and 3D rendering in both Qt C++ and Qt Quick applications). + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: qt6-qtbase-devel%{?_isa} +%description devel +%{summary}. + +%if 0%{?examples} +%package examples +Summary: Programming examples for %{name} +# BuildRequires: qt6-qt3d-devel >= %{version} +Requires: %{name}%{?_isa} = %{version}-%{release} +%description examples +%{summary}. +%endif + +%prep +%{__cat} %{SOURCE2} %{SOURCE3} > %{SOURCE0} +%autosetup -n %{qt_module}-everywhere-src-%{version} -p1 + + +%build +# QT is known not to work properly with LTO at this point. Some of the issues +# are being worked on upstream and disabling LTO should be re-evaluated as +# we update this change. Until such time... +# Disable LTO +%define _lto_cflags %{nil} + +%cmake_qt6 -DQT_BUILD_EXAMPLES:BOOL=%{?examples:ON}%{!?examples:OFF} -DQT_FEATURE_qt3d_system_assimp=ON + +cmake --build . %{?_smp_mflags} --verbose + +%install +DESTDIR="%{buildroot}" cmake --install . + +%ifarch %{multilib_archs} +# multilib: qt3dcore-config_p.h + mv %{buildroot}%{_qt6_headerdir}/Qt3DCore/%{version}/Qt3DCore/private/qt3dcore-config_p.h %{buildroot}%{_qt6_headerdir}/Qt3DCore/%{version}/Qt3DCore/private/qt3dcore-config-%{__isa_bits}_p.h + install -p -m644 -D %{SOURCE1} %{buildroot}%{_qt6_headerdir}/Qt3DCore/%{version}/Qt3DCore/private/qt3dcore-config_p.h +%endif + +## .prl/.la file love +# nuke .prl reference(s) to %%buildroot, excessive (.la-like) libs +pushd %{buildroot}%{_qt6_libdir} +for prl_file in libQt6*.prl ; do + sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" ${prl_file} + if [ -f "$(basename ${prl_file} .prl).so" ]; then + rm -fv "$(basename ${prl_file} .prl).la" + sed -i -e "/^QMAKE_PRL_LIBS/d" ${prl_file} + fi +done +popd + + +%ldconfig_scriptlets + +%files +%license LICENSES/GPL* LICENSES/LGPL* +%{_qt6_libdir}/libQt63DAnimation.so.6* +%{_qt6_libdir}/libQt63DCore.so.6* +%{_qt6_libdir}/libQt63DExtras.so.6* +%{_qt6_libdir}/libQt63DInput.so.6* +%{_qt6_libdir}/libQt63DLogic.so.6* +%{_qt6_libdir}/libQt63DQuick.so.6* +%{_qt6_libdir}/libQt63DQuickAnimation.so.6* +%{_qt6_libdir}/libQt63DQuickExtras.so.6* +%{_qt6_libdir}/libQt63DQuickInput.so.6* +%{_qt6_libdir}/libQt63DQuickRender.so.6* +%{_qt6_libdir}/libQt63DQuickScene2D.so.6* +%{_qt6_libdir}/libQt63DRender.so.6* +%{_qt6_plugindir}/geometryloaders/ +%{_qt6_plugindir}/renderers/ +%{_qt6_plugindir}/renderplugins/ +%{_qt6_plugindir}/sceneparsers/ +%{_qt6_qmldir}/Qt3D/ +%{_qt6_qmldir}/QtQuick/Scene2D/ +%{_qt6_qmldir}/QtQuick/Scene3D/ + +%files devel +%dir %{_qt6_libdir}/cmake/Qt63DAnimation +%dir %{_qt6_libdir}/cmake/Qt63DCore/ +%dir %{_qt6_libdir}/cmake/Qt63DExtras +%dir %{_qt6_libdir}/cmake/Qt63DInput +%dir %{_qt6_libdir}/cmake/Qt63DLogic +%dir %{_qt6_libdir}/cmake/Qt63DQuick +%dir %{_qt6_libdir}/cmake/Qt63DQuickAnimation +%dir %{_qt6_libdir}/cmake/Qt63DQuickExtras +%dir %{_qt6_libdir}/cmake/Qt63DQuickInput +%dir %{_qt6_libdir}/cmake/Qt63DQuickRender/ +%dir %{_qt6_libdir}/cmake/Qt63DQuickScene2D +%dir %{_qt6_libdir}/cmake/Qt63DRender/ +%{_qt6_includedir}/Qt3DAnimation +%{_qt6_includedir}/Qt3DCore/ +%{_qt6_includedir}/Qt3DExtras +%{_qt6_includedir}/Qt3DInput/ +%{_qt6_includedir}/Qt3DLogic/ +%{_qt6_includedir}/Qt3DQuick +%{_qt6_includedir}/Qt3DQuickAnimation +%{_qt6_includedir}/Qt3DQuickExtras +%{_qt6_includedir}/Qt3DQuickInput/ +%{_qt6_includedir}/Qt3DQuickRender/ +%{_qt6_includedir}/Qt3DQuickScene2D +%{_qt6_includedir}/Qt3DRender/ +%{_qt6_libdir}/cmake/Qt6/FindWrapQt3DAssimp.cmake +%{_qt6_libdir}/cmake/Qt6BuildInternals/StandaloneTests/Qt3DTestsConfig.cmake +%{_qt6_libdir}/cmake/Qt63DAnimation/*.cmake +%{_qt6_libdir}/cmake/Qt63DCore/*.cmake +%{_qt6_libdir}/cmake/Qt63DExtras/*.cmake +%{_qt6_libdir}/cmake/Qt63DInput/*.cmake +%{_qt6_libdir}/cmake/Qt63DLogic/*.cmake +%{_qt6_libdir}/cmake/Qt63DQuick/*.cmake +%{_qt6_libdir}/cmake/Qt63DQuickAnimation/*.cmake +%{_qt6_libdir}/cmake/Qt63DQuickExtras/*.cmake +%{_qt6_libdir}/cmake/Qt63DQuickInput/*.cmake +%{_qt6_libdir}/cmake/Qt63DQuickRender/*.cmake +%{_qt6_libdir}/cmake/Qt63DQuickScene2D/*.cmake +%{_qt6_libdir}/cmake/Qt63DRender/*.cmake +%{_qt6_libdir}/cmake/Qt6Qml/QmlPlugins/*.cmake +%{_qt6_libdir}/libQt63DAnimation.prl +%{_qt6_libdir}/libQt63DAnimation.so +%{_qt6_libdir}/libQt63DCore.prl +%{_qt6_libdir}/libQt63DCore.so +%{_qt6_libdir}/libQt63DExtras.prl +%{_qt6_libdir}/libQt63DExtras.so +%{_qt6_libdir}/libQt63DInput.prl +%{_qt6_libdir}/libQt63DInput.so +%{_qt6_libdir}/libQt63DLogic.prl +%{_qt6_libdir}/libQt63DLogic.so +%{_qt6_libdir}/libQt63DQuick.prl +%{_qt6_libdir}/libQt63DQuick.so +%{_qt6_libdir}/libQt63DQuickAnimation.prl +%{_qt6_libdir}/libQt63DQuickAnimation.so +%{_qt6_libdir}/libQt63DQuickExtras.prl +%{_qt6_libdir}/libQt63DQuickExtras.so +%{_qt6_libdir}/libQt63DQuickInput.prl +%{_qt6_libdir}/libQt63DQuickInput.so +%{_qt6_libdir}/libQt63DQuickRender.prl +%{_qt6_libdir}/libQt63DQuickRender.so +%{_qt6_libdir}/libQt63DQuickScene2D.prl +%{_qt6_libdir}/libQt63DQuickScene2D.so +%{_qt6_libdir}/libQt63DRender.prl +%{_qt6_libdir}/libQt63DRender.so +%{_qt6_mkspecsdir}/modules/*.pri +%{_qt6_archdatadir}/metatypes/qt6*_metatypes.json +%{_qt6_archdatadir}/modules/*.json +%{_qt6_libdir}/pkgconfig/*.pc + +%if 0%{?examples} +%files examples +%{_qt6_examplesdir}/ +%endif + + +%changelog +* Tue Apr 25 2023 EastDong - 6.5.0-1 +- update package + +* Wed Nov 30 2022 Jingwiw - 6.4.0-1 +- init package diff --git a/qt6-qt3d.yaml b/qt6-qt3d.yaml new file mode 100644 index 0000000..a1c1b6e --- /dev/null +++ b/qt6-qt3d.yaml @@ -0,0 +1,4 @@ +version_control: git +src_repo: https://code.qt.io/qt/qt3d.git +tag_prefix: "^v" +separator: "."