diff options
author | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-11-08 00:18:21 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-11-11 13:22:40 +0000 |
commit | 4d3c3a08eba8d30805f18397c98e19ab9fd40722 (patch) | |
tree | 48ac4f501c278067571004f0562bf487a798925f | |
parent | 51abcc7460da76bd64d4336dcf253c571b820e71 (diff) |
Get rid of the egl config test and use what qtbase provides
contains(QT_CONFIG, egl) and CONFIG += egl is the only sane way to test
for and pull in EGL headers and libs. This is particularly important when
trying to be robust and guard against half-broken sysroots on embedded
where a naive PKGCONFIG += egl breaks.
Also add an EGL_WAYLAND_BUFFER_WL define to keep wayland-egl compiling.
We are not testing for that in any config tests may cause a failure in sysroots
that have parts of Mesa thrown in but pick ip an older EGL header from the
vendor's driver.
Change-Id: I7b7e6a7a91e78dbda5b6954ad08761298c538efc
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
15 files changed, 36 insertions, 86 deletions
diff --git a/config.tests/egl/egl.pro b/config.tests/egl/egl.pro deleted file mode 100644 index 402477db2..000000000 --- a/config.tests/egl/egl.pro +++ /dev/null @@ -1,15 +0,0 @@ -TARGET = egl -QT = core - -!contains(QT_CONFIG, opengl): error("egl support requires Qt configured with OpenGL") -!contains(QT_CONFIG, egl): error("egl support requires Qt configured with EGL") - -!contains(QT_CONFIG, no-pkg-config) { - CONFIG += link_pkgconfig - PKGCONFIG += egl -} else { - LIBS += -lEGL -} - -# Input -SOURCES += main.cpp diff --git a/config.tests/egl/main.cpp b/config.tests/egl/main.cpp deleted file mode 100644 index a47358e66..000000000 --- a/config.tests/egl/main.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the Qt Compositor. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <EGL/egl.h> - -int main(int argc, char **argv) -{ - EGLDisplay display = eglGetDisplay(0); - return 0; -} diff --git a/qtwayland.pro b/qtwayland.pro index 88761497e..b5088072f 100644 --- a/qtwayland.pro +++ b/qtwayland.pro @@ -6,7 +6,6 @@ qtCompileTest(xkbcommon) qtCompileTest(wayland_cursor) qtCompileTest(wayland_scanner) qtCompileTest(wayland_egl) -qtCompileTest(egl) qtCompileTest(brcm_egl) qtCompileTest(glx) qtCompileTest(xcomposite) diff --git a/src/hardwareintegration/client/brcm-egl/brcm-egl.pri b/src/hardwareintegration/client/brcm-egl/brcm-egl.pri index eb8e450f9..c4ccdcc6e 100644 --- a/src/hardwareintegration/client/brcm-egl/brcm-egl.pri +++ b/src/hardwareintegration/client/brcm-egl/brcm-egl.pri @@ -7,12 +7,7 @@ contains(QT_CONFIG, no-pkg-config) { LIBS += -lwayland-client } -for(p, QMAKE_LIBDIR_EGL) { - exists($$p):LIBS += -L$$p -} - -LIBS += $$QMAKE_LIBS_EGL -INCLUDEPATH += $$QMAKE_INCDIR_EGL +CONFIG += egl SOURCES += $$PWD/qwaylandbrcmeglintegration.cpp \ $$PWD/qwaylandbrcmglcontext.cpp \ diff --git a/src/hardwareintegration/client/drm-egl-server/drm-egl-server.pri b/src/hardwareintegration/client/drm-egl-server/drm-egl-server.pri index dbc8dacf9..c3d592a98 100644 --- a/src/hardwareintegration/client/drm-egl-server/drm-egl-server.pri +++ b/src/hardwareintegration/client/drm-egl-server/drm-egl-server.pri @@ -1,12 +1,14 @@ INCLUDEPATH += $$PWD contains(QT_CONFIG, no-pkg-config) { - LIBS += -lEGL -lwayland-client + LIBS += -lwayland-client } else { CONFIG += link_pkgconfig - PKGCONFIG += egl wayland-client + PKGCONFIG += wayland-client } +CONFIG += egl + SOURCES += \ $$PWD/drmeglserverbufferintegration.cpp diff --git a/src/hardwareintegration/client/wayland-egl/wayland-egl.pri b/src/hardwareintegration/client/wayland-egl/wayland-egl.pri index 107a96f93..951d28c52 100644 --- a/src/hardwareintegration/client/wayland-egl/wayland-egl.pri +++ b/src/hardwareintegration/client/wayland-egl/wayland-egl.pri @@ -1,11 +1,13 @@ INCLUDEPATH += $$PWD !contains(QT_CONFIG, no-pkg-config) { CONFIG += link_pkgconfig - PKGCONFIG += wayland-client wayland-egl egl + PKGCONFIG += wayland-client wayland-egl } else { - LIBS += -lwayland-egl -lEGL + LIBS += -lwayland-egl } +CONFIG += egl + SOURCES += $$PWD/qwaylandeglclientbufferintegration.cpp \ $$PWD/qwaylandglcontext.cpp \ $$PWD/qwaylandeglwindow.cpp diff --git a/src/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pri b/src/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pri index 89ec9840d..4435f481b 100644 --- a/src/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pri +++ b/src/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pri @@ -3,11 +3,13 @@ include($$PWD/../xcomposite_share/xcomposite_share.pri) !contains(QT_CONFIG, no-pkg-config) { CONFIG += link_pkgconfig - PKGCONFIG += wayland-client xcomposite egl x11 + PKGCONFIG += wayland-client xcomposite x11 } else { - LIBS += -lXcomposite -lEGL -lX11 + LIBS += -lXcomposite -lX11 } +CONFIG += egl + SOURCES += \ $$PWD/qwaylandxcompositeeglcontext.cpp \ $$PWD/qwaylandxcompositeeglclientbufferintegration.cpp \ diff --git a/src/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pri b/src/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pri index cd2e24719..2ed5db686 100644 --- a/src/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pri +++ b/src/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pri @@ -1,12 +1,14 @@ INCLUDEPATH += $$PWD contains(QT_CONFIG, no-pkg-config) { - LIBS += -lwayland-server -lEGL + LIBS += -lwayland-server } else { CONFIG += link_pkgconfig - PKGCONFIG += wayland-server egl + PKGCONFIG += wayland-server } +CONFIG += egl + SOURCES += \ $$PWD/drmeglserverbufferintegration.cpp diff --git a/src/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pri b/src/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pri index 84d901351..5cbcb6b7c 100644 --- a/src/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pri +++ b/src/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pri @@ -1,12 +1,14 @@ INCLUDEPATH += $$PWD contains(QT_CONFIG, no-pkg-config) { - LIBS += -lwayland-server -lEGL + LIBS += -lwayland-server } else { CONFIG += link_pkgconfig - PKGCONFIG += wayland-server egl + PKGCONFIG += wayland-server } +CONFIG += egl + SOURCES += \ $$PWD/libhybriseglserverbufferintegration.cpp diff --git a/src/hardwareintegration/compositor/wayland-egl/wayland-egl.pri b/src/hardwareintegration/compositor/wayland-egl/wayland-egl.pri index 2d4771a2a..8dacc130b 100644 --- a/src/hardwareintegration/compositor/wayland-egl/wayland-egl.pri +++ b/src/hardwareintegration/compositor/wayland-egl/wayland-egl.pri @@ -2,11 +2,13 @@ INCLUDEPATH += $$PWD !contains(QT_CONFIG, no-pkg-config) { CONFIG += link_pkgconfig - PKGCONFIG += wayland-server wayland-egl egl + PKGCONFIG += wayland-server wayland-egl } else { - LIBS += -lwayland-egl -lwayland-server -lEGL + LIBS += -lwayland-egl -lwayland-server } +CONFIG += egl + SOURCES += \ $$PWD/waylandeglclientbufferintegration.cpp diff --git a/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp b/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp index e28d2f53e..9b62d082d 100644 --- a/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp +++ b/src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp @@ -59,6 +59,10 @@ #define GL_TEXTURE_EXTERNAL_OES 0x8D65 #endif +#ifndef EGL_WAYLAND_BUFFER_WL +#define EGL_WAYLAND_BUFFER_WL 0x31D5 +#endif + /* Needed for compatibility with Mesa older than 10.0. */ typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYWAYLANDBUFFERWL_compat) (EGLDisplay dpy, struct wl_resource *buffer, EGLint attribute, EGLint *value); diff --git a/src/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pri b/src/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pri index cde790bdc..d748c2b57 100644 --- a/src/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pri +++ b/src/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pri @@ -2,11 +2,13 @@ include($$PWD/../xcomposite_share/xcomposite_share.pri) !contains(QT_CONFIG, no-pkg-config) { CONFIG += link_pkgconfig - PKGCONFIG += xcomposite egl x11 wayland-server + PKGCONFIG += xcomposite x11 wayland-server } else { - LIBS += -lXcomposite -lEGL -lX11 + LIBS += -lXcomposite -lX11 } +CONFIG += egl + INCLUDEPATH += $$PWD HEADERS += \ diff --git a/src/plugins/hardwareintegration/client/client.pro b/src/plugins/hardwareintegration/client/client.pro index b7a9b46ee..37a90ab0d 100644 --- a/src/plugins/hardwareintegration/client/client.pro +++ b/src/plugins/hardwareintegration/client/client.pro @@ -7,7 +7,7 @@ config_brcm_egl: \ SUBDIRS += brcm-egl config_xcomposite { - config_egl: \ + contains(QT_CONFIG, egl): \ SUBDIRS += xcomposite-egl !contains(QT_CONFIG, opengles2):config_glx: \ diff --git a/src/plugins/hardwareintegration/compositor/compositor.pro b/src/plugins/hardwareintegration/compositor/compositor.pro index 215cd2571..1ecfe37a0 100644 --- a/src/plugins/hardwareintegration/compositor/compositor.pro +++ b/src/plugins/hardwareintegration/compositor/compositor.pro @@ -6,7 +6,7 @@ config_brcm_egl: \ SUBDIRS += brcm-egl config_xcomposite { - config_egl: \ + contains(QT_CONFIG, egl): \ SUBDIRS += xcomposite-egl !contains(QT_CONFIG, opengles2):config_glx: \ diff --git a/src/plugins/platforms/platforms.pro b/src/plugins/platforms/platforms.pro index 0665511c5..43c02be03 100644 --- a/src/plugins/platforms/platforms.pro +++ b/src/plugins/platforms/platforms.pro @@ -13,7 +13,7 @@ contains(CONFIG, wayland-compositor) { SUBDIRS += qwayland-brcm-egl config_xcomposite { - config_egl: \ + contains(QT_CONFIG, egl): \ SUBDIRS += qwayland-xcomposite-egl !contains(QT_CONFIG, opengles2):config_glx: \ SUBDIRS += qwayland-xcomposite-glx |