media-gfx/mayo: add 0.9.0, drop 0.8.0-r3

Signed-off-by: Ivan Lloro <ivan.lloro.boada@gmail.com>
This commit is contained in:
Ivan Lloro
2025-06-27 16:05:39 +01:00
parent fd1b1c985b
commit 11d054302c
5 changed files with 4 additions and 257 deletions

View File

@@ -1 +1 @@
DIST mayo-0.8.0.tar.gz 9792039 BLAKE2B 9f6c6173996f9731445363ad756ffc51d478ef4a9c0710056941e3f3634ee320987eec99e7d56237ba1f11f6adaca7be2a47816af2b8f7f7c78ba74a1fa8d296 SHA512 4363a41c0ed1dd555302c7b5f61eee136d9ae6999f6a66c92c117cf2a9a74eb5ece991a22ffa29f095b7ec8a2c5426375628c8213ed94b6295c64019141539d7
DIST mayo-0.9.0.tar.gz 10079952 BLAKE2B fd197475d48dcd7dfa032d1bd9832719831af7c1270eaddc6178d5d554dabffe056d9f1ee3cda15d3c69c07619a2586ffa288e71bd6e9427d4204fc1e74428b8 SHA512 cb3a07ae2118c9af36ce5fa053bd65f920137069f74f8b690c5b0bf89c368042b6771e09f0dfc506881a993aa91062b2027b35746cc461087a16414ed56aba56

View File

@@ -1,43 +0,0 @@
From c4fdeb206235e9c37f34b18f5463d1e0702b2c14 Mon Sep 17 00:00:00 2001
From: Hugues Delorme <delorme.hugues@fougue.pro>
Date: Thu, 25 Apr 2024 12:37:09 +0200
Subject: [PATCH] Base: fix missing <algorithm> header
---
src/base/property.cpp | 2 ++
src/base/property_enumeration.cpp | 4 +++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/base/property.cpp b/src/base/property.cpp
index d98acb31..61b9c623 100644
--- a/src/base/property.cpp
+++ b/src/base/property.cpp
@@ -7,6 +7,8 @@
#include "property.h"
#include "property_enumeration.h"
+
+#include <algorithm>
#include <cassert>
namespace Mayo {
diff --git a/src/base/property_enumeration.cpp b/src/base/property_enumeration.cpp
index 556c3e8e..1ef57091 100644
--- a/src/base/property_enumeration.cpp
+++ b/src/base/property_enumeration.cpp
@@ -6,12 +6,14 @@
#include "property_enumeration.h"
+#include <algorithm>
#include <stdexcept>
namespace Mayo {
PropertyEnumeration::PropertyEnumeration(
- PropertyGroup* grp, const TextId& name, const Enumeration* enumeration)
+ PropertyGroup* grp, const TextId& name, const Enumeration* enumeration
+ )
: Property(grp, name),
m_enumeration(enumeration),
m_value(enumeration && enumeration->empty() ? enumeration->itemAt(0).value : -1)

View File

@@ -1,18 +0,0 @@
Disable git in build system.
--- a/version.pri
+++ b/version.pri
@@ -1,12 +1,5 @@
-system(git --version):HAVE_GIT=1
-defined(HAVE_GIT, var) {
- MAYO_VERSION_COMMIT = $$system(git rev-parse --short HEAD)
- MAYO_VERSION_REVNUM = $$system(git rev-list --count HEAD)
-} else {
- MAYO_VERSION_COMMIT = ??
- MAYO_VERSION_REVNUM = 0
- warning("Git is not in PATH, cannot find commit ID nor revision number")
-}
+MAYO_VERSION_COMMIT = ??
+MAYO_VERSION_REVNUM = 0
MAYO_VERSION_MAJ = 0
MAYO_VERSION_MIN = 8

View File

@@ -1,184 +0,0 @@
From d1b3545e9257b3bba26b3c2805b510af5d163048 Mon Sep 17 00:00:00 2001
From: Hugues Delorme <delorme.hugues@fougue.pro>
Date: Wed, 10 Jan 2024 16:57:08 +0100
Subject: [PATCH] Port to OpenCascade 7.8.0
---
mayo.pro | 36 +++++++++++++++++++++++---------
src/app/widget_main_control.cpp | 1 -
src/base/brep_utils.cpp | 8 +++++--
src/base/brep_utils.h | 2 +-
src/base/caf_utils.h | 4 +++-
src/base/tkernel_utils.h | 2 ++
tests/test_base.cpp | 5 +++--
diff --git a/mayo.pro b/mayo.pro
index a21b22d..f2bd14e 100644
--- a/mayo.pro
+++ b/mayo.pro
@@ -173,19 +173,36 @@ LIBS += \
-lTKXmlXCAF \
-lTKXSBase \
-versionAtLeast(OCC_VERSION_STR, 7.7.0) {
- LIBS += -lTKXDE
+versionAtLeast(OCC_VERSION_STR, 7.8.0) {
+ # -- IGES support
+ LIBS += -lTKDEIGES
+ # -- STEP support
+ LIBS += -lTKDESTEP
+ # -- STL support
+ LIBS += -lTKDESTL
+ # -- VRML support
+ LIBS += -lTKDEVRML
+} else {
+ # -- IGES support
+ LIBS += -lTKIGES -lTKXDEIGES
+ # -- STEP support
+ LIBS += -lTKSTEP -lTKSTEP209 -lTKSTEPAttr -lTKSTEPBase -lTKXDESTEP
+ # -- STL support
+ LIBS += -lTKSTL
+ # -- VRML support
+ LIBS += -lTKVRML
+
+ versionAtLeast(OCC_VERSION_STR, 7.7.0) {
+ LIBS += -lTKXDE
+ }
}
-# -- IGES support
-LIBS += -lTKIGES -lTKXDEIGES
-# -- STEP support
-LIBS += -lTKSTEP -lTKSTEP209 -lTKSTEPAttr -lTKSTEPBase -lTKXDESTEP
-# -- STL support
-LIBS += -lTKSTL
# -- OBJ/glTF support
versionAtLeast(OCC_VERSION_STR, 7.4.0) {
LIBS += -lTKRWMesh
+ versionAtLeast(OCC_VERSION_STR, 7.8.0) {
+ LIBS += -lTKDEOBJ -lTKDEGLTF
+ }
} else {
SOURCES -= \
src/io_occ/io_occ_base_mesh.cpp \
@@ -205,8 +222,7 @@ versionAtLeast(OCC_VERSION_STR, 7.4.0) {
SOURCES -= src/io_occ/io_occ_obj_writer.cpp
message(OBJ writer disabled because OpenCascade < v7.6)
}
-# -- VRML support
-LIBS += -lTKVRML
+
!versionAtLeast(OCC_VERSION_STR, 7.7.0) {
SOURCES -= src/io_occ/io_occ_vrml_reader.cpp
message(VRML reader disabled because OpenCascade < v7.7)
diff --git a/src/app/widget_main_control.cpp b/src/app/widget_main_control.cpp
index 51eca63..3240e3a 100644
--- a/src/app/widget_main_control.cpp
+++ b/src/app/widget_main_control.cpp
@@ -312,7 +312,6 @@ QWidget* WidgetMainControl::recreateLeftHeaderPlaceHolder()
WidgetGuiDocument* WidgetMainControl::widgetGuiDocument(int idx) const
{
- assert(idx == -1 || (0 <= idx && idx < m_ui->stack_GuiDocuments->count()));
return qobject_cast<WidgetGuiDocument*>(m_ui->stack_GuiDocuments->widget(idx));
}
diff --git a/src/base/brep_utils.cpp b/src/base/brep_utils.cpp
index 1b2f119..b694f5b 100644
--- a/src/base/brep_utils.cpp
+++ b/src/base/brep_utils.cpp
@@ -59,9 +59,13 @@ bool BRepUtils::moreComplex(TopAbs_ShapeEnum lhs, TopAbs_ShapeEnum rhs)
return lhs < rhs;
}
-int BRepUtils::hashCode(const TopoDS_Shape& shape)
+size_t BRepUtils::hashCode(const TopoDS_Shape& shape)
{
- return !shape.IsNull() ? shape.HashCode(INT_MAX) : -1;
+#if OCC_VERSION_HEX >= OCC_VERSION_CHECK(7, 8, 0)
+ return std::hash<TopoDS_Shape>{}(shape);
+#else
+ return shape.HashCode(INT_MAX);
+#endif
}
std::string BRepUtils::shapeToString(const TopoDS_Shape& shape)
diff --git a/src/base/brep_utils.h b/src/base/brep_utils.h
index 76830e8..a98dd2e 100644
--- a/src/base/brep_utils.h
+++ b/src/base/brep_utils.h
@@ -53,7 +53,7 @@ struct BRepUtils {
// Returns hash code computed from 'shape'
// Computation uses the internal TShape and Location, but Orientation is not considered
// Returned hash code is in the range [1, max(int)]
- static int hashCode(const TopoDS_Shape& shape);
+ static size_t hashCode(const TopoDS_Shape& shape);
// Serializes 'shape' into a string representation
static std::string shapeToString(const TopoDS_Shape& shape);
diff --git a/src/base/caf_utils.h b/src/base/caf_utils.h
index d849de5..8863aa5 100644
--- a/src/base/caf_utils.h
+++ b/src/base/caf_utils.h
@@ -6,6 +6,7 @@
#pragma once
+#include <Standard_Version.hxx>
#include <TCollection_AsciiString.hxx>
#include <TCollection_ExtendedString.hxx>
#include <TDF_Label.hxx>
@@ -43,7 +44,7 @@ struct CafUtils {
} // namespace Mayo
-
+#if OCC_VERSION_HEX < 0x070800
#include <TDF_LabelMapHasher.hxx>
namespace std {
@@ -55,6 +56,7 @@ template<> struct hash<TDF_Label> {
};
} // namespace std
+#endif
// --
// -- Implementation
diff --git a/src/base/tkernel_utils.h b/src/base/tkernel_utils.h
index 3dd4500..4f1d97a 100644
--- a/src/base/tkernel_utils.h
+++ b/src/base/tkernel_utils.h
@@ -55,6 +55,7 @@ public:
} // namespace Mayo
+#if OCC_VERSION_HEX < OCC_VERSION_CHECK(7, 8, 0)
namespace std {
// Specialization of C++11 std::hash<> functor for opencascade::handle<> objects
@@ -65,3 +66,4 @@ template<typename T> struct hash<opencascade::handle<T>> {
};
} // namespace std
+#endif
diff --git a/tests/test_base.cpp b/tests/test_base.cpp
index e98f482..b28040e 100644
--- a/tests/test_base.cpp
+++ b/tests/test_base.cpp
@@ -653,9 +653,10 @@ void TestBase::BRepUtils_test()
const TopoDS_Shape shapeNull;
const TopoDS_Shape shapeBase = BRepPrimAPI_MakeBox(25, 25, 25);
const TopoDS_Shape shapeCopy = shapeBase;
- QCOMPARE(BRepUtils::hashCode(shapeNull), -1);
- QVERIFY(BRepUtils::hashCode(shapeBase) >= 0);
+ const TopoDS_Shape shapeOther = BRepPrimAPI_MakeBox(40, 40, 40);
+ QCOMPARE(BRepUtils::hashCode(shapeNull), BRepUtils::hashCode(TopoDS_Shape{}));
QCOMPARE(BRepUtils::hashCode(shapeBase), BRepUtils::hashCode(shapeCopy));
+ QVERIFY(BRepUtils::hashCode(shapeBase) != BRepUtils::hashCode(shapeOther));
}
}
--
2.45.2

View File

@@ -3,7 +3,8 @@
EAPI=8
inherit qmake-utils desktop xdg
inherit cmake desktop xdg
CMAKE_IN_SOURCE_BUILD="YES"
DESCRIPTION="Opensource 3D CAD viewer and converter"
HOMEPAGE="https://github.com/fougue/mayo"
@@ -22,19 +23,10 @@ RDEPEND="
DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-nogit.patch
"${FILESDIR}"/${P}-gcc14.patch
"${FILESDIR}"/${P}-opencascade7_8.patch
)
src_configure() {
eqmake6 "CASCADE_INC_DIR=/usr/include/opencascade" "CASCADE_LIB_DIR=/usr/$(get_libdir)/opencascade" "ASSIMP_INC_DIR=/usr/include/assimp" "ASSIMP_LIB_DIR=/usr/$(get_libdir)" mayo.pro
}
src_install() {
emake install INSTALL_ROOT="${ED}"
dobin mayo
dobin mayo-conv
newicon -s scalable images/appicon.svg mayo.svg
make_desktop_entry "mayo %F" Mayo mayo "Graphics;" "MimeType=model/step;model/iges;model/brep;image/vnd.dxf;model/obj;model/gltf+json;model/gltf+binary;model/vrml;model/stl;model/x.stl-ascii;model/x.stl-binary;application/x-amf;application/x-coff;application/x-coffexec;model/3mf;image/x-3ds;model/vnd.collada+xml;model/x3d+binary;model/x3d+fastinfoset;model/x3d+vrml;model/x3d+xml;model/x3d-vrml;application/directx;"
einstalldocs