buzzinglight / IanniX

IanniX is a graphical open-source sequencer, based on Iannis Xenakis works, for digital art. IanniX syncs via Open Sound Control (OSC) events and curves to your real-time environment.
http://www.iannix.org
GNU General Public License v3.0
353 stars 40 forks source link

Build issues on Arch Linux #66

Open FabioLolix opened 2 days ago

FabioLolix commented 2 days ago

Hi, I have tried to build this from AUR (https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=iannix) but there are some issues

objects/nxcurve.cpp: In member function 'void NxCurve::setSVG(const QString&)':
objects/nxcurve.cpp:546:18: error: variable 'QPainterPath pathTmp' has initializer but incomplete type
  546 |     QPainterPath pathTmp = QPainterPath();
      |                  ^~~~~~~
objects/nxcurve.cpp:546:41: error: invalid use of incomplete type 'class QPainterPath'
  546 |     QPainterPath pathTmp = QPainterPath();
      |                                         ^
In file included from /usr/include/qt/QtGui/qtransform.h:43,
                 from /usr/include/qt/QtGui/qimage.h:48,
                 from /usr/include/qt/QtGui/qpixmap.h:49,
                 from /usr/include/qt/QtGui/qbitmap.h:44,
                 from /usr/include/qt/QtGui/QBitmap:1,
                 from objects/nxcurve.h:30,
                 from objects/nxcurve.cpp:24:
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp: In member function 'void NxCurve::setImage(const QString&)':
objects/nxcurve.cpp:578:18: error: variable 'QPainterPath pathTmp' has initializer but incomplete type
  578 |     QPainterPath pathTmp = QPainterPath();
      |                  ^~~~~~~
objects/nxcurve.cpp:578:41: error: invalid use of incomplete type 'class QPainterPath'
  578 |     QPainterPath pathTmp = QPainterPath();
      |                                         ^
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp: In member function 'void NxCurve::setText(const QString&, const QString&)':
objects/nxcurve.cpp:612:18: error: variable 'QPainterPath pathTmp' has initializer but incomplete type
  612 |     QPainterPath pathTmp = QPainterPath();
      |                  ^~~~~~~
objects/nxcurve.cpp:612:41: error: invalid use of incomplete type 'class QPainterPath'
  612 |     QPainterPath pathTmp = QPainterPath();
      |                                         ^
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp: In member function 'void NxCurve::setPath(const QPainterPath&)':
objects/nxcurve.cpp:620:51: error: invalid use of incomplete type 'const class QPainterPath'
  620 |     for(quint16 elementIndex = 0 ; elementIndex < path.elementCount() ; elementIndex++) {
      |                                                   ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:621:29: error: invalid use of incomplete type 'class QPainterPath'
  621 |         const QPainterPath::Element &e = path.elementAt(elementIndex);
      |                             ^~~~~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:622:17: error: 'e' was not declared in this scope
  622 |         switch (e.type) {
      |                 ^
objects/nxcurve.cpp:623:28: error: incomplete type 'QPainterPath' used in nested name specifier
  623 |         case QPainterPath::MoveToElement:
      |                            ^~~~~~~~~~~~~
objects/nxcurve.cpp:628:28: error: incomplete type 'QPainterPath' used in nested name specifier
  628 |         case QPainterPath::LineToElement:
      |                            ^~~~~~~~~~~~~
objects/nxcurve.cpp:633:28: error: incomplete type 'QPainterPath' used in nested name specifier
  633 |         case QPainterPath::CurveToElement:
      |                            ^~~~~~~~~~~~~~
objects/nxcurve.cpp:635:33: error: invalid use of incomplete type 'class QPainterPath'
  635 |             const QPainterPath::Element &p1 = path.elementAt(elementIndex-1);
      |                                 ^~~~~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:636:33: error: invalid use of incomplete type 'class QPainterPath'
  636 |             const QPainterPath::Element &c1 = e;
      |                                 ^~~~~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:637:33: error: invalid use of incomplete type 'class QPainterPath'
  637 |             const QPainterPath::Element &c2 = path.elementAt(elementIndex+1);
      |                                 ^~~~~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:638:33: error: invalid use of incomplete type 'class QPainterPath'
  638 |             const QPainterPath::Element &p2 = path.elementAt(elementIndex+2);
      |                                 ^~~~~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:639:41: error: 'p2' was not declared in this scope
  639 |             setPointAt(index++, NxPoint(p2.x, p2.y), NxPoint(c1.x - p1.x, c1.y - p1.y), NxPoint(c2.x - p2.x, c2.y - p2.y), false);
      |                                         ^~
objects/nxcurve.cpp:639:62: error: 'c1' was not declared in this scope; did you mean 'y1'?
  639 |             setPointAt(index++, NxPoint(p2.x, p2.y), NxPoint(c1.x - p1.x, c1.y - p1.y), NxPoint(c2.x - p2.x, c2.y - p2.y), false);
      |                                                              ^~
      |                                                              y1
g++ -c -pipe -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -flto=auto -w -flto -fno-fat-lto-objects -Wall -Wextra -D_REENTRANT -fPIC -DQT5 -DIANNIX_64 -DIANNIX_32 -D__RTMIDI_DEBUG__ -D__LINUX_ALSA__ -DAVOID_TIMESTAMPING -D__linux__ -DQESP_NO_UDEV -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SCRIPT_LIB -DQT_XML_LIB -DQT_CORE_LIB -I. -I/usr/include/qt -I/usr/include/qt/QtOpenGL -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtGui -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtScript -I/usr/include/qt/QtXml -I/usr/include/qt/QtCore -I. -I. -I/usr/lib/qt/mkspecs/linux-g++ -o interfaceudp.o interfaces/interfaceudp.cpp
objects/nxcurve.cpp:639:69: error: 'p1' was not declared in this scope; did you mean 'y1'?
  639 |             setPointAt(index++, NxPoint(p2.x, p2.y), NxPoint(c1.x - p1.x, c1.y - p1.y), NxPoint(c2.x - p2.x, c2.y - p2.y), false);
      |                                                                     ^~
      |                                                                     y1
objects/nxcurve.cpp:639:97: error: 'c2' was not declared in this scope
  639 |             setPointAt(index++, NxPoint(p2.x, p2.y), NxPoint(c1.x - p1.x, c1.y - p1.y), NxPoint(c2.x - p2.x, c2.y - p2.y), false);
      |                                                                                                 ^~
objects/nxcurve.cpp: In function 'void pathArcSegment(QPainterPath&, qreal, qreal, qreal, qreal, qreal, qreal, qreal)':
objects/nxcurve.cpp:1136:5: error: invalid use of incomplete type 'class QPainterPath'
 1136 |     path.cubicTo(a00 * x1 + a01 * y1, a10 * x1 + a11 * y1,
      |     ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp: In function 'bool parsePathDataFast(const QString&, QPainterPath&)':
objects/nxcurve.cpp:1257:17: error: invalid use of incomplete type 'class QPainterPath'
 1257 |                 path.moveTo(x0, y0);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1275:17: error: invalid use of incomplete type 'class QPainterPath'
 1275 |                 path.moveTo(x0, y0);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1289:17: error: invalid use of incomplete type 'class QPainterPath'
 1289 |                 path.closeSubpath();
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1302:17: error: invalid use of incomplete type 'class QPainterPath'
 1302 |                 path.lineTo(x, y);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1316:17: error: invalid use of incomplete type 'class QPainterPath'
 1316 |                 path.lineTo(x, y);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1323:17: error: invalid use of incomplete type 'class QPainterPath'
 1323 |                 path.lineTo(x, y);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1330:17: error: invalid use of incomplete type 'class QPainterPath'
 1330 |                 path.lineTo(x, y);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1337:17: error: invalid use of incomplete type 'class QPainterPath'
 1337 |                 path.lineTo(x, y);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1344:17: error: invalid use of incomplete type 'class QPainterPath'
 1344 |                 path.lineTo(x, y);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1358:17: error: invalid use of incomplete type 'class QPainterPath'
 1358 |                 path.cubicTo(c1, c2, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1375:17: error: invalid use of incomplete type 'class QPainterPath'
 1375 |                 path.cubicTo(c1, c2, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1397:17: error: invalid use of incomplete type 'class QPainterPath'
 1397 |                 path.cubicTo(c1, c2, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1419:17: error: invalid use of incomplete type 'class QPainterPath'
 1419 |                 path.cubicTo(c1, c2, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1435:17: error: invalid use of incomplete type 'class QPainterPath'
 1435 |                 path.quadTo(c, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1451:17: error: invalid use of incomplete type 'class QPainterPath'
 1451 |                 path.quadTo(c, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1472:17: error: invalid use of incomplete type 'class QPainterPath'
 1472 |                 path.quadTo(c, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
objects/nxcurve.cpp:1493:17: error: invalid use of incomplete type 'class QPainterPath'
 1493 |                 path.quadTo(c, e);
      |                 ^~~~
/usr/include/qt/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
   54 | class QPainterPath;
      |       ^~~~~~~~~~~~
nollive commented 11 hours ago

Adding #include \ to the file object/nxcurve.h should solve the issue, It has been already fixed (after the 0.9.20 release you are using)

https://github.com/buzzinglight/IanniX/commit/40bf5fdd5f6a48737671edfada2c2b3168339d1f#diff-0ea6a03e61afe746c8e4e17b3f87c06d1e6661dbbdeb9de89c5db27cc73d1600R31