PyQt failed to build from source with custom Qt build

Phil Thompson phil at riverbankcomputing.com
Thu Jul 16 22:20:14 BST 2020


On 16/07/2020 21:39, notgonnahappen at firemail.cc wrote:
> I'd like to deploy my app with all the necessary dependencies so I'd
> like to make the size of the app as small as possible. To do that, I
> built Qt from source with the features that I do not need disabled,
> e.g.:
> 
>     configure --no-feature-network ...
> 
> After that I try to build PyQt5 from source using this custom Qt build
> and I get this error:
> 
> In file included from ../../qt5_short/include/QtCore/qmetatype.h:45:0,
>                  from ../../qt5_short/include/QtCore/QMetaType:1,
>                  from sipAPIQtCore.h:33,
>                  from sipQtCorecmodule.cpp:24:
> ../../qt5_short/include/QtCore/qglobal.h:121:49: error: static
> assertion failed: Required feature animation for file
> ../../qt5_short/include/QtCore/qabstractanimation.h not available.
> #  define Q_STATIC_ASSERT_X(Condition, Message)
> static_assert(bool(Condition), Message)
> ../../qt5_short/include/QtCore/qglobal.h:87:36: note: in expansion of
> macro ‘Q_STATIC_ASSERT_X’
>  #define QT_REQUIRE_CONFIG(feature)
> Q_STATIC_ASSERT_X(QT_FEATURE_##feature == 1, "Required feature "
> #feature " for file " __FILE__ " not available.")
>                                     ^~~~~~~~~~~~~~~~~
> ../../qt5_short/include/QtCore/qabstractanimation.h:45:1: note: in
> expansion of macro ‘QT_REQUIRE_CONFIG’
>  QT_REQUIRE_CONFIG(animation);
>  ^~~~~~~~~~~~~~~~~
> Makefile:1420: recipe for target 'sipQtCorecmodule.o' failed
> make[1]: *** [sipQtCorecmodule.o] Error 1
> make[1]: выход из каталога 
> «/home/user/sysroot-linux-64/build-PyQt5/QtCore»
> Makefile:96: recipe for target 'sub-QtCore-make_first-ordered' failed
> make: *** [sub-QtCore-make_first-ordered] Error 2
> sip-install: 'make' failed returning 2
> 
> I did disable the 'animation' feature (--no-feature-animation). If I
> turn it back on, I do not get this error but get another similar
> errors for the other disabled features. So the question is whether the
> PyQt build tools can automatically find out what features have been
> disabled or not? If not, can I do it manually? I can't find any
> options or arguments that I can use to disable features in PyQt
> explicitly using sip-install. There is such an option if PyQt is built
> with 'python configure.py' but they do not seem to work. I went
> through the PyQt sources and it seems that just a few features can be
> disabled (Open GL, SSL, Print support and some other), is that right?

Yes. To fix it you would have to have the build system to detect whether 
a feature was enabled (or hard code it). You would also need to define 
each new feature to SIP and update all .sip files to ignore any API 
element that was dependent on each feature.

Phil


More information about the PyQt mailing list