Building Qt with eglfs and wayland
Unsolved
Installation and Deployment
-
I am building a yocto image and an sdk for the stm32mp1 based on OpenSTLinux and the st-image-weston.bb.
I am on a Mac M3 running an ubuntu in Parallels (aarch64).
When building this image I get the error from Qt that the QT_FEATURE_egl=OFF and eglfs can therefore not be included:| ERROR: Feature "eglfs": Forcing to "ON" breaks its condition: | NOT ANDROID AND NOT APPLE AND NOT WIN32 AND NOT WASM AND NOT QNX AND QT_FEATURE_egl | Condition values dump: | ANDROID = "0" | APPLE = "" | WIN32 = "" | WASM = "0" | QNX = "0" | QT_FEATURE_egl = "OFF"
The log shows errors with openssl and egl. Can it be that due to my platform or missing libraries the QT_FEATURE_egl is OFF even though I specifically set it to on like this?
EXTRA_OECMAKE += "-DQT_FEATURE_egl=ON -DFEATURE_opengl=ON -DQT_FEATURE_eglfs=ON"
Extract from Cmake error log:
int main(int, char **) { [[maybe_unused]] EGLint x = 0; EGLDisplay dpy = 0; EGLContext ctx = 0; eglDestroyContext(dpy, ctx); } Performing C++ SOURCE FILE Test HAVE_GLESv2 failed with the following output: Change Dir: /home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/work/aarch64-linux/qtbase-native/6.9.0-r0/build/CMakeFiles/CMakeScratch/TryCompile-J7fldF Run Build Command(s):ninja cmTC_864a1 && [1/2] Building CXX object CMakeFiles/cmTC_864a1.dir/src.cxx.o [2/2] Linking CXX executable cmTC_864a1 FAILED: cmTC_864a1 : && /home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/hosttools/g++ -isystem/home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/wor> /home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/hosttools/ld: CMakeFiles/cmTC_864a1.dir/src.cxx.o: in function `main': src.cxx:(.text.startup+0x10): undefined reference to `glUniform1f' /home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/hosttools/ld: src.cxx:(.text.startup+0x18): undefined reference to `glClear' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Source file was: #ifdef __APPLE__ # include <OpenGLES/ES2/gl.h> #else # define GL_GLEXT_PROTOTYPES # include <GLES2/gl2.h> #endif Performing C++ SOURCE FILE Test HAVE_EGL failed with the following output: Change Dir: /home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/work/aarch64-linux/qtbase-native/6.9.0-r0/build/CMakeFiles/CMakeScratch/TryCompile-O6DqfG Run Build Command(s):ninja cmTC_619ff && [1/2] Building CXX object CMakeFiles/cmTC_619ff.dir/src.cxx.o [2/2] Linking CXX executable cmTC_619ff FAILED: cmTC_619ff : && /home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/hosttools/g++ -isystem/home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/wor> /home/dluk/mp1/build-openstlinuxweston-stm32mp15-disco/tmp-glibc-glibc/hosttools/ld: CMakeFiles/cmTC_619ff.dir/src.cxx.o: in function `main': src.cxx:(.text.startup+0x10): undefined reference to `eglDestroyContext' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Source file was: #include <EGL/egl.h>