!1 init qt6-qtquick3dphysics
From: @East_x Reviewed-by: @peijiankang Signed-off-by: @peijiankang
This commit is contained in:
commit
0887633c54
72
physx-rv64.patch
Normal file
72
physx-rv64.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
diff --git a/src/3rdparty/PhysX/pxshared/include/foundation/PxPreprocessor.h b/src/3rdparty/PhysX/pxshared/include/foundation/PxPreprocessor.h
|
||||||
|
index 14ed950..24f6d3b 100644
|
||||||
|
--- a/src/3rdparty/PhysX/pxshared/include/foundation/PxPreprocessor.h
|
||||||
|
+++ b/src/3rdparty/PhysX/pxshared/include/foundation/PxPreprocessor.h
|
||||||
|
@@ -127,6 +127,8 @@ Architecture defines, see http://sourceforge.net/p/predef/wiki/Architectures/
|
||||||
|
#define PX_PPC 1
|
||||||
|
#elif defined(__mips__)
|
||||||
|
#define PX_X64 1
|
||||||
|
+#elif defined(__riscv) && __riscv_xlen == 64
|
||||||
|
+#define PX_RV64 1
|
||||||
|
#else
|
||||||
|
#error "Unknown architecture"
|
||||||
|
#endif
|
||||||
|
@@ -147,7 +149,7 @@ SIMD defines
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Disable SIMD for webassembly, mips and arm64 */
|
||||||
|
-#if defined(__EMSCRIPTEN__) || defined(__mips__) || defined(_M_ARM64) || defined(_M_ARM)
|
||||||
|
+#if defined(__EMSCRIPTEN__) || defined(__mips__) || defined(_M_ARM64) || defined(_M_ARM) || defined(__riscv)
|
||||||
|
#define PX_SIMD_DISABLED 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -262,7 +264,7 @@ family shortcuts
|
||||||
|
// architecture
|
||||||
|
#define PX_INTEL_FAMILY (PX_X64 || PX_X86)
|
||||||
|
#define PX_ARM_FAMILY (PX_ARM || PX_A64)
|
||||||
|
-#define PX_P64_FAMILY (PX_X64 || PX_A64) // shortcut for 64-bit architectures
|
||||||
|
+#define PX_P64_FAMILY (PX_X64 || PX_A64 || PX_RV64) // shortcut for 64-bit architectures
|
||||||
|
|
||||||
|
/**
|
||||||
|
C++ standard library defines
|
||||||
|
diff --git a/src/3rdparty/PhysX/source/physxextensions/src/serialization/SnSerialUtils.cpp b/src/3rdparty/PhysX/source/physxextensions/src/serialization/SnSerialUtils.cpp
|
||||||
|
index aa53797..673cb33 100644
|
||||||
|
--- a/src/3rdparty/PhysX/source/physxextensions/src/serialization/SnSerialUtils.cpp
|
||||||
|
+++ b/src/3rdparty/PhysX/source/physxextensions/src/serialization/SnSerialUtils.cpp
|
||||||
|
@@ -39,7 +39,7 @@ using namespace physx;
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
|
||||||
|
-#define SN_NUM_BINARY_PLATFORMS 19
|
||||||
|
+#define SN_NUM_BINARY_PLATFORMS 20
|
||||||
|
const PxU32 sBinaryPlatformTags[SN_NUM_BINARY_PLATFORMS] =
|
||||||
|
{
|
||||||
|
PX_MAKE_FOURCC('W','_','3','2'),
|
||||||
|
@@ -59,6 +59,7 @@ const PxU32 sBinaryPlatformTags[SN_NUM_BINARY_PLATFORMS] =
|
||||||
|
PX_MAKE_FOURCC('W','A','3','2'),
|
||||||
|
PX_MAKE_FOURCC('W','A','6','4'),
|
||||||
|
PX_MAKE_FOURCC('L','A','3','2'),
|
||||||
|
+ PX_MAKE_FOURCC('L','V','6','4'),
|
||||||
|
PX_MAKE_FOURCC('U','N','K','_'),
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -82,6 +83,7 @@ const char* sBinaryPlatformNames[SN_NUM_BINARY_PLATFORMS] =
|
||||||
|
"uwparm64",
|
||||||
|
"macarm",
|
||||||
|
"linuxarm",
|
||||||
|
+ "linuxrv64",
|
||||||
|
"unknown",
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -127,8 +129,10 @@ PxU32 getBinaryPlatformTag()
|
||||||
|
return sBinaryPlatformTags[16];
|
||||||
|
#elif PX_LINUX && PX_ARM
|
||||||
|
return sBinaryPlatformTags[17];
|
||||||
|
-#else
|
||||||
|
+#elif PX_LINUX && PX_RV64
|
||||||
|
return sBinaryPlatformTags[18];
|
||||||
|
+#else
|
||||||
|
+ return sBinaryPlatformTags[19];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
120
qt6-qtquick3dphysics.spec
Normal file
120
qt6-qtquick3dphysics.spec
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
|
||||||
|
%global qt_module qtquick3dphysics
|
||||||
|
|
||||||
|
%global examples 1
|
||||||
|
|
||||||
|
%define short_version 6.5
|
||||||
|
|
||||||
|
Name: qt6-%{qt_module}
|
||||||
|
Version: 6.5.0
|
||||||
|
Release: 1
|
||||||
|
Summary: Qt 6 Quick3D Physics Extensions
|
||||||
|
License: GPL-3.0-only
|
||||||
|
URL: https://www.qt.io
|
||||||
|
|
||||||
|
|
||||||
|
Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz
|
||||||
|
|
||||||
|
#fix physx on riscv64
|
||||||
|
# https://github.com/felixonmars/archriscv-packages/pull/1821
|
||||||
|
%ifarch riscv64
|
||||||
|
Patch0: physx-rv64.patch
|
||||||
|
%endif
|
||||||
|
|
||||||
|
BuildRequires: cmake
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
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-qtquick3d-devel
|
||||||
|
BuildRequires: qt6-qtshadertools-devel
|
||||||
|
|
||||||
|
%description
|
||||||
|
This module adds physical simulation capabilities on top of Qt Quick 3D.
|
||||||
|
In particular, it enables rigid body simulation using simple primitives as well
|
||||||
|
as convex- and triangle meshes and heightmaps. Physical properties such as mass,
|
||||||
|
density, gravity and friction are customizable. This makes it possible to create
|
||||||
|
physically correct behavior in 3D scenes without having to handcraft animations.
|
||||||
|
|
||||||
|
%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}
|
||||||
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
%description examples
|
||||||
|
%{summary}.
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n %{qt_module}-everywhere-src-%{version} -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
%define _lto_cflags %{nil}
|
||||||
|
|
||||||
|
%cmake_qt6 -DQT_BUILD_EXAMPLES:BOOL=%{?examples:ON}%{!?examples:OFF}
|
||||||
|
cmake --build . %{?_smp_mflags} --verbose
|
||||||
|
|
||||||
|
%install
|
||||||
|
DESTDIR="%{buildroot}" cmake --install .
|
||||||
|
|
||||||
|
## .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
|
||||||
|
|
||||||
|
%files
|
||||||
|
%license LICENSES/*
|
||||||
|
%{_qt6_libdir}/libQt6Quick3DPhysicsHelpers.so.6*
|
||||||
|
%{_qt6_libdir}/libQt6Quick3DPhysics.so.6*
|
||||||
|
%dir %{_qt6_qmldir}/QtQuick3D
|
||||||
|
%{_qt6_qmldir}/QtQuick3D/Physics/
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_qt6_bindir}/cooker
|
||||||
|
%{_qt6_libdir}/libQt6Quick3DPhysics.prl
|
||||||
|
%{_qt6_libdir}/libQt6Quick3DPhysics.so
|
||||||
|
%{_qt6_libdir}/libQt6Quick3DPhysicsHelpers.prl
|
||||||
|
%{_qt6_libdir}/libQt6Quick3DPhysicsHelpers.so
|
||||||
|
%{_qt6_libdir}/cmake/Qt6BundledPhysX/
|
||||||
|
%{_qt6_libdir}/cmake/Qt6Quick3DPhysics/
|
||||||
|
%{_qt6_libdir}/cmake/Qt6Qml/QmlPlugins/*.cmake
|
||||||
|
%{_qt6_libdir}/cmake/Qt6Quick3DPhysicsHelpers/
|
||||||
|
%{_qt6_libdir}/cmake/Qt6/FindWrapBundledPhysXConfigExtra.cmake
|
||||||
|
%{_qt6_libdir}/cmake/Qt6BuildInternals/StandaloneTests/QtQuick3DPhysicsTestsConfig.cmake
|
||||||
|
%{_qt6_archdatadir}/metatypes/qt6quick3dphysics_*_metatypes.json
|
||||||
|
%{_qt6_archdatadir}/metatypes/qt6quick3dphysicshelpers_*_metatypes.json
|
||||||
|
%{_qt6_archdatadir}/modules/Quick3DPhysics.json
|
||||||
|
%{_qt6_archdatadir}/modules/Quick3DPhysicsHelpers.json
|
||||||
|
%{_qt6_includedir}/QtQuick3DPhysics/
|
||||||
|
%{_qt6_includedir}/QtQuick3DPhysicsHelpers/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_quick3dphysics.pri
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_quick3dphysics_private.pri
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_quick3dphysicshelpers.pri
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_quick3dphysicshelpers_private.pri
|
||||||
|
%{_qt6_libdir}/libQt6BundledPhysX.a
|
||||||
|
%{_qt6_libdir}/pkgconfig/*.pc
|
||||||
|
|
||||||
|
|
||||||
|
%if 0%{?examples}
|
||||||
|
%files examples
|
||||||
|
%{_qt6_examplesdir}/
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue May 9 2023 EastDong <xudong23@iscas.ac.cn> - 6.5.0-1
|
||||||
|
- init package
|
||||||
4
qt6-qtquick3dphysics.yaml
Normal file
4
qt6-qtquick3dphysics.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
version_control: git
|
||||||
|
src_repo: https://code.qt.io/qt/qtquick3dphysics.git
|
||||||
|
tag_prefix: "^v"
|
||||||
|
separator: "."
|
||||||
BIN
qtquick3dphysics-everywhere-src-6.5.0.tar.xz
Normal file
BIN
qtquick3dphysics-everywhere-src-6.5.0.tar.xz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user