directfb: Integrate building into configure.

Add DirectFB buildsystem integration by adding a configure target
and adding it as subdirectory to the project file. The default is
to automatically build directfb. Update the Broadcom/9425 build.

Change-Id: I482f865cebd9d5cd4c98c184773f8534f92db9df
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
This commit is contained in:
Holger Hans Peter Freyther 2012-02-28 10:00:32 +01:00 committed by Qt by Nokia
parent 6fc44c5926
commit 19524b7499
4 changed files with 50 additions and 18 deletions

42
configure vendored
View File

@ -705,6 +705,7 @@ CFG_XKB=auto
CFG_XCB=auto CFG_XCB=auto
CFG_XCB_LIMITED=yes CFG_XCB_LIMITED=yes
CFG_EGLFS=auto CFG_EGLFS=auto
CFG_DIRECTFB=auto
CFG_LIBUDEV=auto CFG_LIBUDEV=auto
CFG_OBSOLETE_WAYLAND=no CFG_OBSOLETE_WAYLAND=no
CFG_EVDEV=auto CFG_EVDEV=auto
@ -891,7 +892,7 @@ while [ "$#" -gt 0 ]; do
VAL=no VAL=no
;; ;;
#Qt style yes options #Qt style yes options
-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-qml-debug|-javascript-jit|-rpath|-pkg-config|-force-pkg-config|-icu|-force-asserts|-testcocoon) -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-directfb|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-qml-debug|-javascript-jit|-rpath|-pkg-config|-force-pkg-config|-icu|-force-asserts|-testcocoon)
VAR=`echo $1 | sed "s,^-\(.*\),\1,"` VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
VAL=yes VAL=yes
;; ;;
@ -1651,6 +1652,13 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes UNKNOWN_OPT=yes
fi fi
;; ;;
directfb)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_DIRECTFB="$VAL"
else
UNKNOWN_OPT=yes
fi
;;
libudev) libudev)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_LIBUDEV="$VAL" CFG_LIBUDEV="$VAL"
@ -2839,6 +2847,13 @@ if [ "$OPT_HELP" = "yes" ]; then
EGLFSN=" " EGLFSN=" "
fi fi
if [ "$CFG_DIRECTFB" = "no"]; then
DFBY=" "
DFBN="*"
else
DFBY="*"
DFBN=" "
fi
if [ "$CFG_XINPUT2" = "no" ]; then if [ "$CFG_XINPUT2" = "no" ]; then
X2Y=" " X2Y=" "
X2N="*" X2N="*"
@ -3135,6 +3150,9 @@ Additional options:
$EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support. $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
$EGLFSY -eglfs ............. Compile EGLFS support. $EGLFSY -eglfs ............. Compile EGLFS support.
$DFBN -no-directfb ....... Do not compile DirectFB support.
$DFBY -directfb .......... Compile DirectFB support.
-xplatform target ... The target platform when cross-compiling. -xplatform target ... The target platform when cross-compiling.
-sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot. -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
@ -4493,6 +4511,7 @@ fi
# Save these for a check later # Save these for a check later
ORIG_CFG_XCB="$CFG_XCB" ORIG_CFG_XCB="$CFG_XCB"
ORIG_CFG_EGLFS="$CFG_EGLFS" ORIG_CFG_EGLFS="$CFG_EGLFS"
ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
if [ "$CFG_LIBUDEV" != "no" ]; then if [ "$CFG_LIBUDEV" != "no" ]; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
@ -4600,6 +4619,16 @@ if [ "$CFG_XCB" != "no" ]; then
fi fi
fi fi
if [ "$CFG_DIRECTFB" != "no" ]; then
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
QT_CONFIG="$QT_CONFIG directfb"
else
CFG_DIRECTFB=no
fi
fi
# Detect libxkbcommon # Detect libxkbcommon
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`" QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
@ -4647,6 +4676,10 @@ if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB" QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB" QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
fi fi
if [ -n "$QMAKE_CFLAGS_DIRECTFB" ] || [ -n "$QMAKE_LIBS_DIRECTFB" ]; then
QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
fi
if [ "$BUILD_ON_MAC" = "yes" ]; then if [ "$BUILD_ON_MAC" = "yes" ]; then
if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
@ -4657,12 +4690,12 @@ if [ "$BUILD_ON_MAC" = "yes" ]; then
fi fi
if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ]; then if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ]; then
if [ "$QPA_PLATFORM_GUARD" = "yes" ] && if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] ); then ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] ); then
echo "No QPA platform plugin enabled!" echo "No QPA platform plugin enabled!"
echo " If you really want to build without a QPA platform plugin you must pass" echo " If you really want to build without a QPA platform plugin you must pass"
echo " -no-xcb and -no-eglfs to configure. Doing this will" echo " -no-xcb, -no-eglfs and -no-directfb to configure. Doing this will"
echo " produce a Qt that cannot run GUI applications." echo " produce a Qt that cannot run GUI applications."
echo " The dependencies needed for xcb to build are listed in" echo " The dependencies needed for xcb to build are listed in"
echo " src/plugins/platforms/xcb/README" echo " src/plugins/platforms/xcb/README"
@ -6068,6 +6101,7 @@ if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
echo "XInput2 support ........ $CFG_XINPUT2" echo "XInput2 support ........ $CFG_XINPUT2"
fi fi
echo "EGLFS support .......... $CFG_EGLFS" echo "EGLFS support .......... $CFG_EGLFS"
echo "DirectFB support ....... $CFG_DIRECTFB"
echo echo
# complain about not being able to use dynamic plugins if we are using a static build # complain about not being able to use dynamic plugins if we are using a static build

View File

@ -55,15 +55,13 @@ QMAKE_LIBS_OPENGL_ES2 = -lv3ddriver -lrt
INCLUDEPATH += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3 INCLUDEPATH += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
QMAKE_LIBDIR += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3 QMAKE_LIBDIR += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
# DirectFB, needs to be changed once -directfb is added to configure
DIRECTFB_INCLUDEPATH = $${BRCM_APPLIBS_PATH}/opensource/directfb/bin/DirectFB-1.4.15_multi_$${BRCM_BUILD_TYPE}_build.97425B1/usr/local/include/directfb $${BRCM_ROCKFORD_PATH}/middleware/platform/directfb
DIRECTFB_LIBS = -L$${BRCM_APPLIBS_PATH}/opensource/directfb/bin/DirectFB-1.4.15_multi_$${BRCM_BUILD_TYPE}_build.97425B1/usr/local/lib -L$${BRCM_ROCKFORD_PATH}/middleware/platform/directfb/lib_$${BRCM_PLATFORM}_$${BRCM_BUILD_TYPE} -ldirectfb -lfusion -ldirect -lpthread -lnexus -ldbpl -lz
QMAKE_LFLAGS += -Wl,-rpath-link,$$QMAKE_LIBDIR_OPENGL_ES2 -Wl,-rpath-link,$${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3 QMAKE_LFLAGS += -Wl,-rpath-link,$$QMAKE_LIBDIR_OPENGL_ES2 -Wl,-rpath-link,$${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
# DirectFB platform hooks for this hardware # DirectFB platform hooks for this hardware
QT_CONFIG += directfb_egl QT_CONFIG += directfb_egl
DIRECTFB_PLATFORM_HOOKS_SOURCES = $$PWD/qdirectfbeglhooks_bcm97425.cpp DIRECTFB_PLATFORM_HOOKS_SOURCES = $$PWD/qdirectfbeglhooks_bcm97425.cpp
DIRECTFB_PLATFORM_HOOKS_INCLUDEPATH = $${BRCM_ROCKFORD_PATH}/middleware/platform/directfb
DIRECTFB_PLATFORM_HOOKS_LIBS = -ldbpl
DIRECTFB_PLATFORM_HOOKS_LIBDIR = $${BRCM_ROCKFORD_PATH}/middleware/platform/directfb/lib_$${BRCM_PLATFORM}_$${BRCM_BUILD_TYPE}
load(qt_config) load(qt_config)

View File

@ -4,15 +4,8 @@ DESTDIR = $$QT.gui.plugins/platforms
QT += core-private gui-private platformsupport-private QT += core-private gui-private platformsupport-private
isEmpty(DIRECTFB_LIBS) { LIBS += $$QMAKE_LIBS_DIRECTFB
DIRECTFB_LIBS = -ldirectfb -lfusion -ldirect -lpthread QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_DIRECTFB
}
isEmpty(DIRECTFB_INCLUDEPATH) {
DIRECTFB_INCLUDEPATH = /usr/include/directfb
}
INCLUDEPATH += $$DIRECTFB_INCLUDEPATH
LIBS += $$DIRECTFB_LIBS
SOURCES = main.cpp \ SOURCES = main.cpp \
qdirectfbintegration.cpp \ qdirectfbintegration.cpp \
@ -44,6 +37,9 @@ directfb_egl {
HEADERS += $$DIRECTFB_PLATFORM_HOOKS_HEADERS HEADERS += $$DIRECTFB_PLATFORM_HOOKS_HEADERS
SOURCES += $$DIRECTFB_PLATFORM_HOOKS_SOURCES SOURCES += $$DIRECTFB_PLATFORM_HOOKS_SOURCES
DEFINES += DIRECTFB_PLATFORM_HOOKS DEFINES += DIRECTFB_PLATFORM_HOOKS
LIBS += $$DIRECTFB_PLATFORM_HOOKS_LIBS
QMAKE_LIBDIR += $$DIRECTFB_PLATFORM_HOOKS_LIBDIR
INCLUDEPATH += $$DIRECTFB_PLATFORM_HOOKS_INCLUDEPATH
} else { } else {
SOURCES += qdirectfbeglhooks_stub.cpp SOURCES += qdirectfbeglhooks_stub.cpp
} }

View File

@ -17,3 +17,7 @@ qnx {
contains(QT_CONFIG, eglfs) { contains(QT_CONFIG, eglfs) {
SUBDIRS += eglfs SUBDIRS += eglfs
} }
contains(QT_CONFIG, directfb) {
SUBDIRS += directfb
}