summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-11-08 00:18:21 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2015-11-11 13:22:40 +0000
commit4d3c3a08eba8d30805f18397c98e19ab9fd40722 (patch)
tree48ac4f501c278067571004f0562bf487a798925f
parent51abcc7460da76bd64d4336dcf253c571b820e71 (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>
-rw-r--r--config.tests/egl/egl.pro15
-rw-r--r--config.tests/egl/main.cpp47
-rw-r--r--qtwayland.pro1
-rw-r--r--src/hardwareintegration/client/brcm-egl/brcm-egl.pri7
-rw-r--r--src/hardwareintegration/client/drm-egl-server/drm-egl-server.pri6
-rw-r--r--src/hardwareintegration/client/wayland-egl/wayland-egl.pri6
-rw-r--r--src/hardwareintegration/client/xcomposite-egl/xcomposite-egl.pri6
-rw-r--r--src/hardwareintegration/compositor/drm-egl-server/drm-egl-server.pri6
-rw-r--r--src/hardwareintegration/compositor/libhybris-egl-server/libhybris-egl-server.pri6
-rw-r--r--src/hardwareintegration/compositor/wayland-egl/wayland-egl.pri6
-rw-r--r--src/hardwareintegration/compositor/wayland-egl/waylandeglclientbufferintegration.cpp4
-rw-r--r--src/hardwareintegration/compositor/xcomposite-egl/xcomposite-egl.pri6
-rw-r--r--src/plugins/hardwareintegration/client/client.pro2
-rw-r--r--src/plugins/hardwareintegration/compositor/compositor.pro2
-rw-r--r--src/plugins/platforms/platforms.pro2
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