Add compile check to FindEGL
ClosedPublic

Authored by hausmann on Feb 12 2019, 2:53 PM.

Details

Summary

Perform additional sanity checking

Diff Detail

Repository
R240 Extra CMake Modules
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
hausmann created this revision.Feb 12 2019, 2:53 PM
Restricted Application added projects: Frameworks, Build System. · View Herald TranscriptFeb 12 2019, 2:53 PM
Restricted Application added subscribers: kde-buildsystem, kde-frameworks-devel. · View Herald Transcript
hausmann requested review of this revision.Feb 12 2019, 2:53 PM

+1 This makes sense to me, considering how broken some vendor [E]GL stacks are.

apol accepted this revision.Feb 12 2019, 6:14 PM
This revision is now accepted and ready to land.Feb 12 2019, 6:14 PM
This revision was automatically updated to reflect the committed changes.

Seems this is sadly breaking something for FreeBSD though, see
https://build.kde.org/job/Frameworks/job/kwayland/job/kf5-qt5%20FreeBSDQt5.12/21/console

I'll look into it.

Ooops. Could you paste the error from the cmake error output? I'm curious which part of the EGL compile test fails.

/usr/local/bin/gmake -f CMakeFiles/cmTC_fd24d.dir/build.make CMakeFiles/cmTC_fd24d.dir/build
gmake[1]: Entering directory '/usr/home/jenkins/kwayland/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_fd24d.dir/src.cxx.o
/usr/bin/c++   -I/usr/local/include/EGL  -DHAVE_EGL   -o CMakeFiles/cmTC_fd24d.dir/src.cxx.o -c /usr/home/jenkins/kwayland/build/CMakeFiles/CMakeTmp/src.cxx
/usr/home/jenkins/kwayland/build/CMakeFiles/CMakeTmp/src.cxx:2:10: fatal error: 'EGL/egl.h' file not found
#include <EGL/egl.h>
         ^~~~~~~~~~~
1 error generated.
gmake[1]: *** [CMakeFiles/cmTC_fd24d.dir/build.make:66: CMakeFiles/cmTC_fd24d.dir/src.cxx.o] Error 1
gmake[1]: Leaving directory '/usr/home/jenkins/kwayland/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:121: cmTC_fd24d/fast] Error 2

The real issue here appears to be that PkgConfig information on include paths is being ignored by CMake (because it's right there):

[jenkins@freebsd-node1 ~/kwayland/build]$ cat CMakeCache.txt  | grep -i EGL
EGL_INCLUDE_DIR:PATH=/usr/local/include/EGL
EGL_LIBRARY:FILEPATH=/usr/local/lib/libEGL.so
KF5WaylandServer_LIB_DEPENDS:STATIC=general;Qt5::Gui;general;Wayland::Server;general;EGL::EGL;general;Qt5::Concurrent;
pkgcfg_lib_PKG_EGL_EGL:FILEPATH=/usr/local/lib/libEGL.so
//ADVANCED property for variable: EGL_INCLUDE_DIR
EGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: EGL_LIBRARY
EGL_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: HAVE_EGL
HAVE_EGL-ADVANCED:INTERNAL=1
//Test HAVE_EGL
HAVE_EGL:INTERNAL=
PKG_EGL_CFLAGS:INTERNAL=-I/usr/local/include;-I/usr/local/include/libdrm;-D_THREAD_SAFE;-pthread
PKG_EGL_CFLAGS_I:INTERNAL=
PKG_EGL_CFLAGS_OTHER:INTERNAL=-D_THREAD_SAFE;-pthread
PKG_EGL_FOUND:INTERNAL=1
PKG_EGL_INCLUDEDIR:INTERNAL=/usr/local/include
PKG_EGL_INCLUDE_DIRS:INTERNAL=/usr/local/include;/usr/local/include/libdrm
PKG_EGL_LDFLAGS:INTERNAL=-L/usr/local/lib;-lEGL
PKG_EGL_LDFLAGS_OTHER:INTERNAL=
PKG_EGL_LIBDIR:INTERNAL=/usr/local/lib
PKG_EGL_LIBRARIES:INTERNAL=EGL
PKG_EGL_LIBRARY_DIRS:INTERNAL=/usr/local/lib
PKG_EGL_LIBS:INTERNAL=
PKG_EGL_LIBS_L:INTERNAL=
PKG_EGL_LIBS_OTHER:INTERNAL=
PKG_EGL_LIBS_PATHS:INTERNAL=
PKG_EGL_PREFIX:INTERNAL=/usr/local
PKG_EGL_STATIC_CFLAGS:INTERNAL=-I/usr/local/include;-I/usr/local/include/libdrm;-D_THREAD_SAFE;-pthread
PKG_EGL_STATIC_CFLAGS_I:INTERNAL=
PKG_EGL_STATIC_CFLAGS_OTHER:INTERNAL=-D_THREAD_SAFE;-pthread
PKG_EGL_STATIC_INCLUDE_DIRS:INTERNAL=/usr/local/include;/usr/local/include/libdrm
PKG_EGL_STATIC_LDFLAGS:INTERNAL=-L/usr/local/lib;-lEGL;-lm;-lpthread;-pthread;-L/usr/local/lib;-ldrm;-lX11;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-L/usr/local/lib;-lX11;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-lXdamage;-L/usr/local/lib;-lX11;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-L/usr/local/lib;-lX11;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-L/usr/local/lib;-lX11;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-lXfixes;-L/usr/local/lib;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-lX11-xcb;-lX11;-pthread;-L/usr/local/lib;-pthread;-lXau;-pthread;-lXau;-lxcb;-pthread;-lXau;-lxcb-glx;-L/usr/local/lib;-lxcb;-pthread;-lXau;-lxcb-dri2;-L/usr/local/lib;-lxcb;-pthread;-lXau;-lXxf86vm;-L/usr/local/lib;-lX11;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-lXext;-L/usr/local/lib;-lX11;-pthread;-L/usr/local/lib;-lxcb;-pthread;-lXau;-lXdmcp
PKG_EGL_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread;-pthread
PKG_EGL_STATIC_LIBDIR:INTERNAL=
PKG_EGL_STATIC_LIBRARIES:INTERNAL=EGL;m;pthread;drm;X11;xcb;Xau;X11;xcb;Xau;Xdamage;X11;xcb;Xau;X11;xcb;Xau;X11;xcb;Xau;Xfixes;xcb;Xau;X11-xcb;X11;Xau;Xau;xcb;Xau;xcb-glx;xcb;Xau;xcb-dri2;xcb;Xau;Xxf86vm;X11;xcb;Xau;Xext;X11;xcb;Xau;Xdmcp
PKG_EGL_STATIC_LIBRARY_DIRS:INTERNAL=/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib;/usr/local/lib
PKG_EGL_STATIC_LIBS:INTERNAL=
PKG_EGL_STATIC_LIBS_L:INTERNAL=
PKG_EGL_STATIC_LIBS_OTHER:INTERNAL=
PKG_EGL_STATIC_LIBS_PATHS:INTERNAL=
PKG_EGL_VERSION:INTERNAL=18.3.2
PKG_EGL_egl_INCLUDEDIR:INTERNAL=
PKG_EGL_egl_LIBDIR:INTERNAL=
PKG_EGL_egl_PREFIX:INTERNAL=
PKG_EGL_egl_VERSION:INTERNAL=
__pkg_config_arguments_PKG_EGL:INTERNAL=QUIET;egl
__pkg_config_checked_PKG_EGL:INTERNAL=1