summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Fernengel <harald.fernengel@nokia.com>2009-11-02 14:34:27 (GMT)
committerHarald Fernengel <harald.fernengel@nokia.com>2009-11-02 14:39:29 (GMT)
commitcf800465369fb1ef84e8bddbbbfa7128d95afd27 (patch)
treefe0eeb3fa54bbae757e77fbf146c63ee84e1c9d1
parent016c06f8988c50f0f8309b1b5054ea99ecd1bc6c (diff)
downloadQt-cf800465369fb1ef84e8bddbbbfa7128d95afd27.zip
Qt-cf800465369fb1ef84e8bddbbbfa7128d95afd27.tar.gz
Qt-cf800465369fb1ef84e8bddbbbfa7128d95afd27.tar.bz2
Sanitize building Qt with OpenGL ES support
introduce QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL and QMAKE_LIBS_OPENGL_ES2 so we do not have to force users to copy/paste around entire mkspecs just to change the OpenGL backend. This should make the "-opengl es2" (and friends) configure option work out of the box with any mkspec on Linux+WinCE. Also removes a WinCE specific hack that is not required anymore. Reviewed-by: Tom Cooksey Reviewed-by: Trond Kjernåsen Approved-by: Lars Knoll
-rw-r--r--config.tests/unix/opengles1/opengles1.pro6
-rw-r--r--config.tests/unix/opengles1cl/opengles1cl.pro6
-rw-r--r--config.tests/unix/opengles2/opengles2.pro6
-rw-r--r--doc/src/development/qmake-manual.qdoc23
-rw-r--r--mkspecs/common/linux.conf9
-rw-r--r--mkspecs/common/wince/qmake.conf4
-rw-r--r--mkspecs/features/unix/opengl.prf26
-rw-r--r--src/opengl/opengl.pro22
8 files changed, 77 insertions, 25 deletions
diff --git a/config.tests/unix/opengles1/opengles1.pro b/config.tests/unix/opengles1/opengles1.pro
index ad8dd31..1469aa9 100644
--- a/config.tests/unix/opengles1/opengles1.pro
+++ b/config.tests/unix/opengles1/opengles1.pro
@@ -1,9 +1,9 @@
SOURCES = opengles1.cpp
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1
-for(p, QMAKE_LIBDIR_OPENGL) {
+for(p, QMAKE_LIBDIR_OPENGL_ES1) {
exists($$p):LIBS += -L$$p
}
CONFIG -= qt
-LIBS += $$QMAKE_LIBS_OPENGL_QT
+LIBS += $$QMAKE_LIBS_OPENGL_ES1
diff --git a/config.tests/unix/opengles1cl/opengles1cl.pro b/config.tests/unix/opengles1cl/opengles1cl.pro
index 415cdbb..c4c069e 100644
--- a/config.tests/unix/opengles1cl/opengles1cl.pro
+++ b/config.tests/unix/opengles1cl/opengles1cl.pro
@@ -1,9 +1,9 @@
SOURCES = opengles1cl.cpp
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL
-for(p, QMAKE_LIBDIR_OPENGL) {
+for(p, QMAKE_LIBDIR_OPENGL_ES1CL) {
exists($$p):LIBS += -L$$p
}
CONFIG -= qt
-LIBS += $$QMAKE_LIBS_OPENGL_QT
+LIBS += $$QMAKE_LIBS_OPENGL_ES1CL
diff --git a/config.tests/unix/opengles2/opengles2.pro b/config.tests/unix/opengles2/opengles2.pro
index 0dfae42..c383fd0 100644
--- a/config.tests/unix/opengles2/opengles2.pro
+++ b/config.tests/unix/opengles2/opengles2.pro
@@ -1,9 +1,9 @@
SOURCES = opengles2.cpp
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
-for(p, QMAKE_LIBDIR_OPENGL) {
+for(p, QMAKE_LIBDIR_OPENGL_ES2) {
exists($$p):LIBS += -L$$p
}
CONFIG -= qt
-LIBS += $$QMAKE_LIBS_OPENGL_QT
+LIBS += $$QMAKE_LIBS_OPENGL_ES2
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index 6c53242..09f1b9b 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -2252,6 +2252,18 @@ For example:
If the OpenGL implementation uses EGL (most OpenGL/ES systems),
then QMAKE_INCDIR_EGL may also need to be set.
+ \section1 QMAKE_INCDIR_OPENGL_ES1, QMAKE_INCDIR_OPENGL_ES1CL, QMAKE_INCDIR_OPENGL_ES2
+
+ These variables contain the location of OpenGL headers files to be added
+ to INCLUDEPATH when building an application with OpenGL ES 1, OpenGL ES 1 Common
+ Lite or OpenGL ES 2 support respectively.
+
+ The value of this variable is typically handled by \c qmake or
+ \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
+
+ If the OpenGL implementation uses EGL (most OpenGL/ES systems),
+ then QMAKE_INCDIR_EGL may also need to be set.
+
\target QMAKE_INCDIR_OPENVG
\section1 QMAKE_INCDIR_OPENVG
@@ -2496,6 +2508,17 @@ For example:
variable is typically handled by \c qmake or
\l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
+ \section1 QMAKE_LIBS_OPENGL_ES1, QMAKE_LIBS_OPENGL_ES1CL, QMAKE_LIBS_OPENGL_ES2
+
+ These variables contain all the OpenGL libraries for OpenGL ES 1,
+ OpenGL ES 1 Common Lite profile and OpenGL ES 2.
+
+ The value of these variables is typically handled by \c qmake or
+ \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified.
+
+ If the OpenGL implementation uses EGL (most OpenGL/ES systems),
+ then QMAKE_LIBS_EGL may also need to be set.
+
\section1 QMAKE_LIBS_OPENVG
This variable contains all OpenVG libraries. The value of this
diff --git a/mkspecs/common/linux.conf b/mkspecs/common/linux.conf
index cc5c38b..1ae5608 100644
--- a/mkspecs/common/linux.conf
+++ b/mkspecs/common/linux.conf
@@ -13,6 +13,12 @@ QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS]
QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS]
QMAKE_INCDIR_OPENGL = /usr/X11R6/include
QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib
+QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
+QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
+QMAKE_INCDIR_OPENGL_ES1CL = $$QMAKE_INCDIR_OPENGL
+QMAKE_LIBDIR_OPENGL_ES1CL = $$QMAKE_LIBDIR_OPENGL
+QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
+QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
QMAKE_INCDIR_EGL =
QMAKE_LIBDIR_EGL =
QMAKE_INCDIR_OPENVG =
@@ -26,6 +32,9 @@ QMAKE_LIBS_NIS = -lnsl
QMAKE_LIBS_EGL = -lEGL
QMAKE_LIBS_OPENGL = -lGLU -lGL
QMAKE_LIBS_OPENGL_QT = -lGL
+QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
+QMAKE_LIBS_OPENGL_ES1CL = -lGLES_CL
+QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
QMAKE_LIBS_OPENVG = -lOpenVG
QMAKE_LIBS_THREAD = -lpthread
diff --git a/mkspecs/common/wince/qmake.conf b/mkspecs/common/wince/qmake.conf
index d6e4ba7..d87be02 100644
--- a/mkspecs/common/wince/qmake.conf
+++ b/mkspecs/common/wince/qmake.conf
@@ -64,6 +64,10 @@ QMAKE_LIBS_NETWORK = ws2.lib
QMAKE_LIBS_OPENGL =
QMAKE_LIBS_COMPAT =
+QMAKE_LIBS_OPENGL_ES1 = libGLES_CM.lib
+QMAKE_LIBS_OPENGL_ES1CL = libGLES_CL.lib
+QMAKE_LIBS_OPENGL_ES2 = libGLESv2.lib
+
QMAKE_LIBS_QT_ENTRY = -lqtmain
QMAKE_MOC = $$[QT_INSTALL_BINS]\moc.exe
diff --git a/mkspecs/features/unix/opengl.prf b/mkspecs/features/unix/opengl.prf
index 2fdf324..f2db819 100644
--- a/mkspecs/features/unix/opengl.prf
+++ b/mkspecs/features/unix/opengl.prf
@@ -1,4 +1,22 @@
-INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
-!isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL
-target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT
-else:LIBS += $$QMAKE_LIBS_OPENGL
+contains(QT_CONFIG, opengles1) {
+ INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1
+ !isEmpty(QMAKE_LIBDIR_OPENGL_ES1):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1
+ target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1
+ else:LIBS += $$QMAKE_LIBS_OPENGL_ES1
+} else:contains(QT_CONFIG, opengles1cl) {
+ INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES1CL
+ !isEmpty(QMAKE_LIBDIR_OPENGL_ES1CL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES1CL
+ target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL
+ else:LIBS += $$QMAKE_LIBS_OPENGL_ES1CL
+} else:contains(QT_CONFIG, opengles2) {
+ INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
+ !isEmpty(QMAKE_LIBDIR_OPENGL_ES2):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL_ES2
+ target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2
+ else:LIBS += $$QMAKE_LIBS_OPENGL_ES2
+} else {
+ INCLUDEPATH += $$QMAKE_INCDIR_OPENGL
+ !isEmpty(QMAKE_LIBDIR_OPENGL):QMAKE_LIBDIR += $$QMAKE_LIBDIR_OPENGL
+ target_qt:LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_QT
+ else:LIBS += $$QMAKE_LIBS_OPENGL
+}
+
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index a212675..7d6052b 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -103,7 +103,7 @@ x11 {
LIBS_PRIVATE += -lfreetype
} else {
### Note: how does this compile with a non-system freetype?
- # This probably doesn't compile
+ # This probably does not compile
}
} else {
DEFINES *= QT_NO_FREETYPE
@@ -150,17 +150,15 @@ embedded {
INCLUDEPATH += ../3rdparty/harfbuzz/src
-wince*: {
- contains(QT_CONFIG,opengles1) {
- QMAKE_LIBS += "libGLES_CM.lib"
- }
- contains(QT_CONFIG,opengles1cl) {
- QMAKE_LIBS += "libGLES_CL.lib"
- }
- contains(QT_CONFIG,opengles2) {
- QMAKE_LIBS += "libGLESv2.lib"
- }
-
+contains(QT_CONFIG,opengles1) {
+ LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1
+ LIBS += $$QMAKE_LFLAGS_OPENGL_ES1
+} else:contains(QT_CONFIG,opengles1cl) {
+ LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES1CL
+ LIBS += $$QMAKE_LFLAGS_OPENGL_ES1CL
+} else:contains(QT_CONFIG,opengles2) {
+ LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL_ES2
+ LIBS += $$QMAKE_LFLAGS_OPENGL_ES2
} else {
LIBS_PRIVATE += $$QMAKE_LIBS_OPENGL
LIBS += $$QMAKE_LFLAGS_OPENGL