Qt6 build fail

Having trouble installing or compiling FreeCAD? Get help here.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
doia
Posts: 251
Joined: Sat May 29, 2021 5:47 am
Location: Düsseldorf

Re: Qt6 build fail

Post by doia »

@Blacklight How did you get the Pyside code to your machine? Did you by any chance installed it via homebrew?
The current Pyside formulae in homebrew-core forces to use the Py_Limited_API, which then propagates throughout the system -> see line
https://github.com/Homebrew/homebrew-co ... ide.rb#L74 in the formulae.
wmayer
Founder
Posts: 20243
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Qt6 build fail

Post by wmayer »

it will regenerate the configuration, replacing my edits.
Exactly! That's why I called this option a PITA. The easiest is option 4. at the moment.
User avatar
Blacklight
Posts: 41
Joined: Sat Feb 25, 2023 12:10 pm
Location: India
Contact:

Re: Qt6 build fail

Post by Blacklight »

doia wrote: Thu May 04, 2023 10:28 am @Blacklight How did you get the Pyside code to your machine? Did you by any chance installed it via homebrew?
The current Pyside formulae in homebrew-core forces to use the Py_Limited_API, which then propagates throughout the system -> see line
https://github.com/Homebrew/homebrew-co ... ide.rb#L74 in the formulae.
I used OpenSUSE Package Management. Looks like it is now the default for all package managers, not just Homebrew.
wmayer wrote: Thu May 04, 2023 10:31 am Exactly! That's why I called this option a PITA. The easiest is option 4. at the moment.
I went with Option 3 anyways just to do it the hard way. Now it passed Application.cpp, and has a different error.

Code: Select all

[ 13%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/DlgMacroExecuteImp.cpp.o
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp: In member function ‘void Gui::Dialog::DlgMacroExecuteImp::onToolbarButtonClicked()’:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38: error: no matching function for call to ‘QMetaObject::invokeMethod(Gui::Dialog::DlgCustomToolbars*&, const char [26], Qt::ConnectionType, QGenericReturnArgument, QMetaMethodArgument)’
  621 |             QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  623 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 Q_ARG(int, globalIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/qt6/QtGui/qwindowdefs.h:8,
                 from /usr/include/qt6/QtWidgets/qwidget.h:8,
                 from /usr/include/qt6/QtWidgets/qframe.h:8,
                 from /usr/include/qt6/QtWidgets/qlineedit.h:8,
                 from /usr/include/qt6/QtWidgets/qinputdialog.h:9,
                 from /usr/include/qt6/QtWidgets/QInputDialog:1,
                 from /home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:25:
/usr/include/qt6/QtCore/qobjectdefs.h:363:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, QMetaMethodReturnArgument, Args&& ...)’
  363 |     invokeMethod(QObject *obj, const char *member, Qt::ConnectionType c,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:363:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:623:17: note:   cannot convert ‘QGenericReturnArgument(0, 0)’ (type ‘QGenericReturnArgument’) to type ‘QMetaMethodReturnArgument’
  623 |                 QGenericReturnArgument(),
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:377:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, Args&& ...)’
  377 |     invokeMethod(QObject *obj, const char *member, Qt::ConnectionType c, Args &&... arguments)
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:377:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/qt6/QtCore/qglobal.h:13,
                 from /usr/include/qt6/QtGui/qtguiglobal.h:7,
                 from /usr/include/qt6/QtWidgets/qtwidgetsglobal.h:7,
                 from /usr/include/qt6/QtWidgets/qinputdialog.h:7:
/usr/include/c++/13/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = bool]’:
/usr/include/qt6/QtCore/qobjectdefs.h:151:47:   required by substitution of ‘template<class T, class ... Args> using QtPrivate::Invoke::IfNotOldStyleArgs = std::enable_if_t<(! std::disjunction<std::is_base_of<QGenericArgument, Args>...>::value), T> [with T = bool; Args = {QGenericReturnArgument, QMetaMethodArgument}]’
/usr/include/qt6/QtCore/qobjectdefs.h:377:5:   required by substitution of ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, Args&& ...) [with Args = {QGenericReturnArgument, QMetaMethodArgument}]’
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38:   required from here
/usr/include/c++/13/type_traits:2610:11: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
 2610 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:389:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, QMetaMethodReturnArgument, Args&& ...)’
  389 |     invokeMethod(QObject *obj, const char *member, QMetaMethodReturnArgument r,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:389:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:622:21: note:   cannot convert ‘Qt::DirectConnection’ (type ‘Qt::ConnectionType’) to type ‘QMetaMethodReturnArgument’
  622 |                 Qt::DirectConnection,
      |                 ~~~~^~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:401:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, Args&& ...)’
  401 |     invokeMethod(QObject *obj, const char *member, Args &&... arguments)
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:401:5: note:   template argument deduction/substitution failed:
/usr/include/qt6/QtCore/qobjectdefs.h:419:5: note: candidate: ‘template<class Func> static typename std::enable_if<((QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object*, Func, Qt::ConnectionType, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  419 |     invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object *object,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:419:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38: note:   candidate expects 4 arguments, 5 provided
  621 |             QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  623 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 Q_ARG(int, globalIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:431:5: note: candidate: ‘template<class Func> static typename std::enable_if<((QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object*, Func, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  431 |     invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object *object,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:431:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38: note:   candidate expects 3 arguments, 5 provided
  621 |             QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  623 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 Q_ARG(int, globalIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:443:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(QObject*, Func, Qt::ConnectionType, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  443 |     invokeMethod(QObject *context, Func function,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:443:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38: note:   candidate expects 4 arguments, 5 provided
  621 |             QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  623 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 Q_ARG(int, globalIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:454:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(QObject*, Func, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  454 |     invokeMethod(QObject *context, Func function,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:454:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38: note:   candidate expects 3 arguments, 5 provided
  621 |             QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  623 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 Q_ARG(int, globalIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:465:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == -1)) && (! std::is_convertible<Func, const char*>::value)), bool>::type QMetaObject::invokeMethod(QObject*, Func, Qt::ConnectionType, decltype (function())*)’
  465 |     invokeMethod(QObject *context, Func function,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:465:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38: note:   candidate expects 4 arguments, 5 provided
  621 |             QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  623 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 Q_ARG(int, globalIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:478:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == -1)) && (! std::is_convertible<Func, const char*>::value)), bool>::type QMetaObject::invokeMethod(QObject*, Func, decltype (function())*)’
  478 |     invokeMethod(QObject *context, Func function, decltype(function()) *ret)
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:478:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:621:38: note:   candidate expects 3 arguments, 5 provided
  621 |             QMetaObject::invokeMethod(setupToolbarPage, "on_workbenchBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  622 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  623 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  624 |                 Q_ARG(int, globalIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:292:17: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  292 |     static bool invokeMethod(QObject *obj, const char *member,
      |                 ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:295:47: note:   no known conversion for argument 5 from ‘QMetaMethodArgument’ to ‘QGenericArgument’
  295 |                              QGenericArgument val0 = QGenericArgument(nullptr),
      |                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:306:24: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  306 |     static inline bool invokeMethod(QObject *obj, const char *member,
      |                        ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:307:53: note:   no known conversion for argument 3 from ‘Qt::ConnectionType’ to ‘QGenericReturnArgument’
  307 |                              QGenericReturnArgument ret,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/qt6/QtCore/qobjectdefs.h:323:24: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  323 |     static inline bool invokeMethod(QObject *obj, const char *member,
      |                        ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:326:47: note:   no known conversion for argument 5 from ‘QMetaMethodArgument’ to ‘QGenericArgument’
  326 |                              QGenericArgument val1 = QGenericArgument(),
      |                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:340:24: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  340 |     static inline bool invokeMethod(QObject *obj, const char *member,
      |                        ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:341:47: note:   no known conversion for argument 3 from ‘Qt::ConnectionType’ to ‘QGenericArgument’
  341 |                              QGenericArgument val0,
      |                              ~~~~~~~~~~~~~~~~~^~~~
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:657:38: error: no matching function for call to ‘QMetaObject::invokeMethod(Gui::Dialog::DlgCustomToolbars*&, const char [25], Qt::ConnectionType, QGenericReturnArgument, QMetaMethodArgument)’
  657 |             QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  659 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 Q_ARG(int, macrosIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:363:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, QMetaMethodReturnArgument, Args&& ...)’
  363 |     invokeMethod(QObject *obj, const char *member, Qt::ConnectionType c,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:363:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:659:17: note:   cannot convert ‘QGenericReturnArgument(0, 0)’ (type ‘QGenericReturnArgument’) to type ‘QMetaMethodReturnArgument’
  659 |                 QGenericReturnArgument(),
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:377:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, Args&& ...)’
  377 |     invokeMethod(QObject *obj, const char *member, Qt::ConnectionType c, Args &&... arguments)
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:377:5: note:   template argument deduction/substitution failed:
/usr/include/qt6/QtCore/qobjectdefs.h:389:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, QMetaMethodReturnArgument, Args&& ...)’
  389 |     invokeMethod(QObject *obj, const char *member, QMetaMethodReturnArgument r,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:389:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:658:21: note:   cannot convert ‘Qt::DirectConnection’ (type ‘Qt::ConnectionType’) to type ‘QMetaMethodReturnArgument’
  658 |                 Qt::DirectConnection,
      |                 ~~~~^~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:401:5: note: candidate: ‘template<class ... Args> static QtPrivate::Invoke::IfNotOldStyleArgs<bool, Args ...> QMetaObject::invokeMethod(QObject*, const char*, Args&& ...)’
  401 |     invokeMethod(QObject *obj, const char *member, Args &&... arguments)
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:401:5: note:   template argument deduction/substitution failed:
/usr/include/qt6/QtCore/qobjectdefs.h:419:5: note: candidate: ‘template<class Func> static typename std::enable_if<((QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object*, Func, Qt::ConnectionType, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  419 |     invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object *object,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:419:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:657:38: note:   candidate expects 4 arguments, 5 provided
  657 |             QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  659 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 Q_ARG(int, macrosIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:431:5: note: candidate: ‘template<class Func> static typename std::enable_if<((QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object*, Func, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  431 |     invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object *object,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:431:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:657:38: note:   candidate expects 3 arguments, 5 provided
  657 |             QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  659 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 Q_ARG(int, macrosIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:443:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(QObject*, Func, Qt::ConnectionType, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  443 |     invokeMethod(QObject *context, Func function,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:443:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:657:38: note:   candidate expects 4 arguments, 5 provided
  657 |             QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  659 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 Q_ARG(int, macrosIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:454:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (! std::is_convertible<Func, const char*>::value)) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == 0)), bool>::type QMetaObject::invokeMethod(QObject*, Func, typename QtPrivate::FunctionPointer<Func>::ReturnType*)’
  454 |     invokeMethod(QObject *context, Func function,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:454:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:657:38: note:   candidate expects 3 arguments, 5 provided
  657 |             QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  659 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 Q_ARG(int, macrosIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:465:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == -1)) && (! std::is_convertible<Func, const char*>::value)), bool>::type QMetaObject::invokeMethod(QObject*, Func, Qt::ConnectionType, decltype (function())*)’
  465 |     invokeMethod(QObject *context, Func function,
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:465:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:657:38: note:   candidate expects 4 arguments, 5 provided
  657 |             QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  659 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 Q_ARG(int, macrosIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:478:5: note: candidate: ‘template<class Func> static typename std::enable_if<(((! QtPrivate::FunctionPointer<Func>::IsPointerToMemberFunction) && (QtPrivate::FunctionPointer<Func>::ArgumentCount == -1)) && (! std::is_convertible<Func, const char*>::value)), bool>::type QMetaObject::invokeMethod(QObject*, Func, decltype (function())*)’
  478 |     invokeMethod(QObject *context, Func function, decltype(function()) *ret)
      |     ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:478:5: note:   template argument deduction/substitution failed:
/home/jyothish/Projects/FreeCAD-fork/src/Gui/DlgMacroExecuteImp.cpp:657:38: note:   candidate expects 3 arguments, 5 provided
  657 |             QMetaObject::invokeMethod(setupToolbarPage, "on_categoryBox_activated",
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  658 |                 Qt::DirectConnection,
      |                 ~~~~~~~~~~~~~~~~~~~~~ 
  659 |                 QGenericReturnArgument(),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~
  660 |                 Q_ARG(int, macrosIdx));
      |                 ~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:292:17: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  292 |     static bool invokeMethod(QObject *obj, const char *member,
      |                 ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:295:47: note:   no known conversion for argument 5 from ‘QMetaMethodArgument’ to ‘QGenericArgument’
  295 |                              QGenericArgument val0 = QGenericArgument(nullptr),
      |                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:306:24: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  306 |     static inline bool invokeMethod(QObject *obj, const char *member,
      |                        ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:307:53: note:   no known conversion for argument 3 from ‘Qt::ConnectionType’ to ‘QGenericReturnArgument’
  307 |                              QGenericReturnArgument ret,
      |                              ~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/qt6/QtCore/qobjectdefs.h:323:24: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, Qt::ConnectionType, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  323 |     static inline bool invokeMethod(QObject *obj, const char *member,
      |                        ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:326:47: note:   no known conversion for argument 5 from ‘QMetaMethodArgument’ to ‘QGenericArgument’
  326 |                              QGenericArgument val1 = QGenericArgument(),
      |                              ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:340:24: note: candidate: ‘static bool QMetaObject::invokeMethod(QObject*, const char*, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)’
  340 |     static inline bool invokeMethod(QObject *obj, const char *member,
      |                        ^~~~~~~~~~~~
/usr/include/qt6/QtCore/qobjectdefs.h:341:47: note:   no known conversion for argument 3 from ‘Qt::ConnectionType’ to ‘QGenericArgument’
  341 |                              QGenericArgument val0,
      |                              ~~~~~~~~~~~~~~~~~^~~~
gmake[2]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/build.make:1490: src/Gui/CMakeFiles/FreeCADGui.dir/DlgMacroExecuteImp.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:6804: src/Gui/CMakeFiles/FreeCADGui.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
I'll try a build for Option 4 too in case that works.

My primary goal is to learn this software and help improve the workbenches, but I also like to stay updated, so that's why I'm building for Qt6. Looks like maybe I should wait..
Keep calm, and be nice to everyone!
User avatar
Blacklight
Posts: 41
Joined: Sat Feb 25, 2023 12:10 pm
Location: India
Contact:

Re: Qt6 build fail

Post by Blacklight »

Failed at the same place in Option 4 too. I guess learning some Qt6 stuff won't be much of a problem, since I'd like to learn PySide myself, just wasn't in my current schedule.
Keep calm, and be nice to everyone!
wmayer
Founder
Posts: 20243
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Qt6 build fail

Post by wmayer »

I don't know why it fails -- works fine here. Maybe you need to include QMetaObject in DlgMacroExecuteImp.cpp.
User avatar
Blacklight
Posts: 41
Joined: Sat Feb 25, 2023 12:10 pm
Location: India
Contact:

Re: Qt6 build fail

Post by Blacklight »

It doesn't fix it.
Keep calm, and be nice to everyone!
berniev
Posts: 247
Joined: Wed Apr 13, 2022 10:45 pm
Location: Oz

Re: Qt6 build fail

Post by berniev »

QT 6.5.1
Python 3.11.3
I am also seeing

Code: Select all

/Users/bernie/CLionProjects/FreeCAD/src/Gui/MainWindow.cpp:1492:13: error: no matching function for call to 'invokeMethod'
            QMetaObject::invokeMethod(d->activityTimer, "start", Qt::QueuedConnection,
            ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:292:17: note: candidate function not viable: no known conversion from 'QMetaMethodArgument' to 'QGenericArgument' for 5th argument
    static bool invokeMethod(QObject *obj, const char *member,
                ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:323:24: note: candidate function not viable: no known conversion from 'QMetaMethodArgument' to 'QGenericArgument' for 5th argument
    static inline bool invokeMethod(QObject *obj, const char *member,
                       ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:363:5: note: candidate function template not viable: no known conversion from 'QGenericReturnArgument' to 'QMetaMethodReturnArgument' for 4th argument
    invokeMethod(QObject *obj, const char *member, Qt::ConnectionType c,
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:306:24: note: candidate function not viable: no known conversion from 'Qt::ConnectionType' to 'QGenericReturnArgument' for 3rd argument
    static inline bool invokeMethod(QObject *obj, const char *member,
                       ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:340:24: note: candidate function not viable: no known conversion from 'Qt::ConnectionType' to 'QGenericArgument' for 3rd argument
    static inline bool invokeMethod(QObject *obj, const char *member,
                       ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:377:5: note: candidate template ignored: requirement '!disjunction<std::is_base_of<QGenericArgument, QGenericReturnArgument>, std::is_base_of<QGenericArgument, QMetaMethodArgument>>::value' was not satisfied [with Args = <QGenericReturnArgument, QMetaMethodArgument>]
    invokeMethod(QObject *obj, const char *member, Qt::ConnectionType c, Args &&... arguments)
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:389:5: note: candidate function template not viable: no known conversion from 'Qt::ConnectionType' to 'QMetaMethodReturnArgument' for 3rd argument
    invokeMethod(QObject *obj, const char *member, QMetaMethodReturnArgument r,
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:419:5: note: candidate function template not viable: requires at most 4 arguments, but 5 were provided
    invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object *object,
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:443:5: note: candidate function template not viable: requires at most 4 arguments, but 5 were provided
    invokeMethod(QObject *context, Func function,
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:465:5: note: candidate function template not viable: requires at most 4 arguments, but 5 were provided
    invokeMethod(QObject *context, Func function,
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:401:5: note: candidate template ignored: requirement '!disjunction<std::is_base_of<QGenericArgument, Qt::ConnectionType>, std::is_base_of<QGenericArgument, QGenericReturnArgument>, std::is_base_of<QGenericArgument, QMetaMethodArgument>>::value' was not satisfied [with Args = <Qt::ConnectionType, QGenericReturnArgument, QMetaMethodArgument>]
    invokeMethod(QObject *obj, const char *member, Args &&... arguments)
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:431:5: note: candidate function template not viable: requires 3 arguments, but 5 were provided
    invokeMethod(typename QtPrivate::FunctionPointer<Func>::Object *object,
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:454:5: note: candidate function template not viable: requires 3 arguments, but 5 were provided
    invokeMethod(QObject *context, Func function,
    ^
/usr/local/lib/QtCore.framework/Headers/qobjectdefs.h:478:5: note: candidate function template not viable: requires 3 arguments, but 5 were provided
    invokeMethod(QObject *context, Func function, decltype(function()) *ret)
    ^
berniev
Posts: 247
Joined: Wed Apr 13, 2022 10:45 pm
Location: Oz

Re: Qt6 build fail

Post by berniev »

Out of desperation I blindly tried a few things I removed the
QGenericReturnArgument(),
parameter.

Maybe I broke something ... but it did compile.
User avatar
onekk
Veteran
Posts: 6144
Joined: Sat Jan 17, 2015 7:48 am
Contact:

Re: Qt6 build fail

Post by onekk »

berniev wrote: Mon Jul 10, 2023 1:24 am Out of desperation I blindly tried a few things I removed the
QGenericReturnArgument(),
parameter.

Maybe I broke something ... but it did compile.
Probably as the post is old poking wmayer will be a good move.

@wmayer What do you think? (Sorry for poking :D )

Kind Regards

Carlo D.
GitHub page: https://github.com/onekk/freecad-doc.
- In deep articles on FreeCAD.
- Learning how to model with scripting.
- Various other stuffs.

Blog: https://okkmkblog.wordpress.com/
wmayer
Founder
Posts: 20243
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Qt6 build fail

Post by wmayer »

QT 6.5.1
Python 3.11.3
I am also seeing
Yesterday I rebuilt FreeCAD on Debian Bullseye which has Qt 6.4 and there I didn't get this failure (but somewhere else). So, if dropping that QGenericReturnArgument() argument still works for Qt versions older than 6.5 we can change it.

PS: I am still busy going through the git history of the last couple of weeks. So, it will take me one day or two to look at this issue.
Post Reply