thliebig / qcsxcad Goto Github PK
View Code? Open in Web Editor NEWQCSXCAD - Qt-GUI for CSXCAD
Home Page: http://openEMS.de
License: GNU Lesser General Public License v3.0
QCSXCAD - Qt-GUI for CSXCAD
Home Page: http://openEMS.de
License: GNU Lesser General Public License v3.0
QCSXCAD uses RenderingFreeTypeOpenGL, but
Note that the deprecated RenderingFreeTypeOpenGL module has been removed, as the functionality of this module has been replaced by the vtkTextRenderer and vtkTextMapper classes.
/disk-samsung/freebsd-ports/cad/qcsxcad/work/QCSXCAD-0.6.2-5-g0dabbaf/export_x3d.cpp:20:10: fatal error: 'QVTKWidget.h' file not found
#include <QVTKWidget.h>
^~~~~~~~~~~~~~
1 error generated.
vtk-9.0.3 doesn't install QVTKWidget.h
.
QCSXCAD is currently incompatible with Qt6, both in the build system and in the source code. A Qt6 port is needed as more and more systems will deprecate Qt6 in the following years. Because we're using VTK, it would happen at a much faster path before Qt5 itself is deprecated, since VTK is built with either Qt5 or Qt6. A Qt6 VTK build makes the QCSXCAD Qt6 port necessary.
The first deprecation has already occurred on macOS Homebrew as reported here (thliebig/openEMS-Project#108 (reply in thread)) by @valgamaa. In Homebrew, VTK is now built with Qt6, all Qt5 builds have already been disabled. Right now it's already impossible to install openEMS with Homebrew.
I already have an experimental CMake Qt6 port in my private repo, but some source code changes are also needed. I'll give it a try on my spare time.
There is a a problem in Enterprise Linux 8 where VTK-QT is available as version 9, but OS only has QT 5 installed.additionally, forsome reason it does not detect the QT version.
While this is not production ready, it does allow cmake to complete and build successfully. I set version 4.5 even though it is using VTK-QT version 9, which triggers a build against qt5. There must be a better way to do this but I do not know what it is:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 73329ec..05bae99 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -110,6 +110,8 @@ else()
endif()
message(STATUS "Found package VTK. Using version " ${VTK_VERSION})
+message(STATUS "Found package VTK QT. Using version " ${VTK_QT_VERSION})
+SET(VTK_QT_VERSION 4.5)
INCLUDE_DIRECTORIES (${VTK_INCLUDE_DIRS})
# Qt
====> Running Q/A tests (stage-qa)
Warning: /disk-samsung/freebsd-ports/cad/qcsxcad/work/stage/usr/local/lib/libQCSXCAD.so.0.6.2 doesn't have a SONAME.
Warning: pkg(8) will not register it as being provided by the port.
Warning: If another port depend on it, pkg will not be able to know where it comes from.
Warning: It is directly in /usr/local/lib, it is probably used by other ports.
/wrkdirs/usr/ports/cad/qcsxcad/work/QCSXCAD-0.6.2-9-g3f09a8b/QVTKStructure.cpp:116:13: error: no member named 'GetRenderWindow' in 'QVTKOpenGLStereoWidget'; did you mean 'renderWindow'?
VTKWidget->GetRenderWindow()->AddRenderer(ren);
^~~~~~~~~~~~~~~
renderWindow
/usr/local/include/vtk-9.2/QVTKOpenGLStereoWidget.h:93:20: note: 'renderWindow' declared here
vtkRenderWindow* renderWindow() const { return this->VTKOpenGLWindow->renderWindow(); }
^
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.