[meta-freescale] [meta-fsl-arm PATCH 8/8] qt4: Enable OpenGL ES2 support for i.MX6

Otavio Salvador otavio at ossystems.com.br
Wed Jul 17 11:17:11 PDT 2013


The Vivante libraries need some special linking as it has a more
modular design which thus require a specific set of mkspec changes to
make it to work. This change makes the linking to work when building
against Vivante libraries for i.MX6 SoCs.

Change-Id: I62a394876829fcd95933cb7351c8333b3bf78dcc
Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
---
 recipes-qt/qt4/qt4-embedded_4.8.5.bbappend |  5 ++-
 recipes-qt/qt4/qt4-x11-free_4.8.5.bbappend |  5 ++-
 recipes-qt/qt4/qt4/mx6/g++.conf            | 56 +++++++++++++++++++++++++
 recipes-qt/qt4/qt4/mx6/linux.conf          | 66 ++++++++++++++++++++++++++++++
 4 files changed, 128 insertions(+), 4 deletions(-)
 create mode 100644 recipes-qt/qt4/qt4/mx6/g++.conf
 create mode 100644 recipes-qt/qt4/qt4/mx6/linux.conf

diff --git a/recipes-qt/qt4/qt4-embedded_4.8.5.bbappend b/recipes-qt/qt4/qt4-embedded_4.8.5.bbappend
index 74bfb31..4c4d0c9 100644
--- a/recipes-qt/qt4/qt4-embedded_4.8.5.bbappend
+++ b/recipes-qt/qt4/qt4-embedded_4.8.5.bbappend
@@ -9,6 +9,7 @@ PACKAGE_ARCH_mx5 = "${MACHINE_ARCH}"
 QT_GLFLAGS_mx5 = "-opengl es2 -openvg"
 QT_CONFIG_FLAGS_append_mx5 = " -I${STAGING_KERNEL_DIR}/include/"
 
-DEPENDS_append_mx6 = " virtual/kernel"
+DEPENDS_append_mx6 = " virtual/kernel virtual/libgles2"
 PACKAGE_ARCH_mx6 = "${MACHINE_ARCH}"
-QT_CONFIG_FLAGS_append_mx6 = " -I${STAGING_KERNEL_DIR}/include/"
+QT_GLFLAGS_mx6 = "-opengl es2 -openvg"
+QT_CONFIG_FLAGS_append_mx6 = " -I${STAGING_KERNEL_DIR}/include/ -DLINUX=1 -DEGL_API_FB=1"
diff --git a/recipes-qt/qt4/qt4-x11-free_4.8.5.bbappend b/recipes-qt/qt4/qt4-x11-free_4.8.5.bbappend
index 74bfb31..4c4d0c9 100644
--- a/recipes-qt/qt4/qt4-x11-free_4.8.5.bbappend
+++ b/recipes-qt/qt4/qt4-x11-free_4.8.5.bbappend
@@ -9,6 +9,7 @@ PACKAGE_ARCH_mx5 = "${MACHINE_ARCH}"
 QT_GLFLAGS_mx5 = "-opengl es2 -openvg"
 QT_CONFIG_FLAGS_append_mx5 = " -I${STAGING_KERNEL_DIR}/include/"
 
-DEPENDS_append_mx6 = " virtual/kernel"
+DEPENDS_append_mx6 = " virtual/kernel virtual/libgles2"
 PACKAGE_ARCH_mx6 = "${MACHINE_ARCH}"
-QT_CONFIG_FLAGS_append_mx6 = " -I${STAGING_KERNEL_DIR}/include/"
+QT_GLFLAGS_mx6 = "-opengl es2 -openvg"
+QT_CONFIG_FLAGS_append_mx6 = " -I${STAGING_KERNEL_DIR}/include/ -DLINUX=1 -DEGL_API_FB=1"
diff --git a/recipes-qt/qt4/qt4/mx6/g++.conf b/recipes-qt/qt4/qt4/mx6/g++.conf
new file mode 100644
index 0000000..4a4729e
--- /dev/null
+++ b/recipes-qt/qt4/qt4/mx6/g++.conf
@@ -0,0 +1,56 @@
+#
+# qmake configuration for common gcc
+#
+
+QMAKE_CC       = $(OE_QMAKE_CC)
+QMAKE_CFLAGS       += -pipe $(OE_QMAKE_CFLAGS) -DLINUX=1 -DEGL_API_FB=1
+QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
+QMAKE_CFLAGS_DEPS	+= -M
+QMAKE_CFLAGS_WARN_ON	+= -Wall -W
+QMAKE_CFLAGS_WARN_OFF	+= -w
+QMAKE_CFLAGS_RELEASE	+=
+QMAKE_CFLAGS_DEBUG	+= -g
+QMAKE_CFLAGS_SHLIB	+= -fPIC
+QMAKE_CFLAGS_STATIC_LIB	+= -fPIC
+QMAKE_CFLAGS_YACC	+= -Wno-unused -Wno-parentheses
+QMAKE_CFLAGS_HIDESYMS   += -fvisibility=hidden
+QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}
+
+QMAKE_CXX      = $(OE_QMAKE_CXX)
+QMAKE_CXXFLAGS     += $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS)
+QMAKE_CXXFLAGS_DEPS	+= $$QMAKE_CFLAGS_DEPS
+QMAKE_CXXFLAGS_WARN_ON	+= $$QMAKE_CFLAGS_WARN_ON
+QMAKE_CXXFLAGS_WARN_OFF	+= $$QMAKE_CFLAGS_WARN_OFF
+QMAKE_CXXFLAGS_RELEASE	+= $$QMAKE_CFLAGS_RELEASE
+QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
+QMAKE_CXXFLAGS_DEBUG	+= $$QMAKE_CFLAGS_DEBUG
+QMAKE_CXXFLAGS_SHLIB	+= $$QMAKE_CFLAGS_SHLIB
+QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
+QMAKE_CXXFLAGS_YACC	+= $$QMAKE_CFLAGS_YACC
+QMAKE_CXXFLAGS_HIDESYMS += $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden
+QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
+QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+
+QMAKE_LINK     = $(OE_QMAKE_LINK)
+QMAKE_LINK_SHLIB   = $(OE_QMAKE_LINK)
+QMAKE_LINK_C		= $(OE_QMAKE_LINK)
+QMAKE_LINK_C_SHLIB	= $(OE_QMAKE_LINK)
+QMAKE_LFLAGS       += $(OE_QMAKE_LDFLAGS)
+QMAKE_LFLAGS_RELEASE	+=
+QMAKE_LFLAGS_DEBUG	+=
+QMAKE_LFLAGS_APP	+=
+QMAKE_LFLAGS_NOUNDEF	+= -Wl,--no-undefined
+QMAKE_LFLAGS_RPATH        = -Wl,-rpath-link,
+
+QMAKE_PCH_OUTPUT_EXT    = .gch
+
+# -Bsymbolic-functions (ld) support
+QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
+QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,
+
+# some linking helper...
+CONFIG += rpath_libdirs
+
+# for the SDK
+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
diff --git a/recipes-qt/qt4/qt4/mx6/linux.conf b/recipes-qt/qt4/qt4/mx6/linux.conf
new file mode 100644
index 0000000..c644d8b
--- /dev/null
+++ b/recipes-qt/qt4/qt4/mx6/linux.conf
@@ -0,0 +1,66 @@
+#
+# qmake configuration for common linux
+#
+
+QMAKE_CFLAGS_THREAD	+= -D_REENTRANT
+QMAKE_CXXFLAGS_THREAD	+= $$QMAKE_CFLAGS_THREAD
+
+QMAKE_INCDIR          =
+QMAKE_LIBDIR          =
+QMAKE_INCDIR_X11      =
+QMAKE_LIBDIR_X11      =
+QMAKE_INCDIR_QT       = $(OE_QMAKE_INCDIR_QT)
+QMAKE_LIBDIR_QT       = $(OE_QMAKE_LIBDIR_QT)
+QMAKE_INCDIR_OPENGL   =
+QMAKE_LIBDIR_OPENGL   =
+QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
+QMAKE_LIBDIR_OPENGL_ES1 = $$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   =
+QMAKE_LIBDIR_OPENVG   =
+
+
+QMAKE_LIBS            =
+QMAKE_LIBS_DYNLOAD    = -ldl
+QMAKE_LIBS_X11        = $(OE_QMAKE_LIBS_X11)
+QMAKE_LIBS_X11SM      = $(OE_QMAKE_LIBS_X11SM)
+QMAKE_LIBS_NIS        = -lnsl
+QMAKE_LIBS_EGL        = -lEGL -lGAL -DLINUX=1 -DEGL_API_FB=1
+QMAKE_LIBS_OPENGL     = -lGL
+QMAKE_LIBS_OPENGL_QT  = -lGL
+QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
+QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 -lGAL -lEGL -DLINUX=1 -DEGL_API_FB=1
+QMAKE_LIBS_OPENVG     = -lOpenVG -lGAL -lEGL -DLINUX=1 -DEGL_API_FB=1
+QMAKE_LIBS_THREAD     = -lpthread
+
+QMAKE_MOC             = $(OE_QMAKE_MOC)
+QMAKE_UIC             = $(OE_QMAKE_UIC)
+QMAKE_UIC3            = $(OE_QMAKE_UIC3)
+QMAKE_RCC             = $(OE_QMAKE_RCC)
+QMAKE_QDBUSCPP2XML    = $(OE_QMAKE_QDBUSCPP2XML)
+QMAKE_QDBUSXML2CPP    = $(OE_QMAKE_QDBUSXML2CPP)
+
+QMAKE_AR              = $(OE_QMAKE_AR) cqs
+QMAKE_OBJCOPY         = objcopy
+QMAKE_RANLIB          =
+
+QMAKE_TAR             = tar -cf
+QMAKE_GZIP            = gzip -9f
+
+QMAKE_COPY            = cp -f
+QMAKE_COPY_FILE       = $(COPY)
+QMAKE_COPY_DIR        = $(COPY) -r
+QMAKE_MOVE            = mv -f
+QMAKE_DEL_FILE        = rm -f
+QMAKE_DEL_DIR         = rmdir
+QMAKE_STRIP           = $(OE_QMAKE_STRIP)
+QMAKE_STRIPFLAGS_LIB += --strip-unneeded
+QMAKE_CHK_DIR_EXISTS  = test -d
+QMAKE_MKDIR           = mkdir -p
+QMAKE_INSTALL_FILE    = install -m 644 -p
+QMAKE_INSTALL_PROGRAM = install -m 755 -p
+
+include(unix.conf)
-- 
1.8.3.2




More information about the meta-freescale mailing list