From: Valentin Longchamp <valentin.longchamp@epfl.ch>
To: "openembedded-devel@lists.openembedded.org"
<openembedded-devel@lists.openembedded.org>
Subject: qt4-embedded and cmake
Date: Tue, 23 Jun 2009 11:34:37 +0200 [thread overview]
Message-ID: <4A40A1AD.10903@epfl.ch> (raw)
Hello,
I am struggling to cross-compile a cmake based recipe that has
qt4-embedded as a dependance (but it is the same for qt4).
My problem is that qmake that is used by OE is the one built by
qt4-tools-native and it has all the paths (that are determined at
configure time with the -prefix option) set to
${STAGING_DIR}/${BUILD_SYS}. Here is the output of
{STAGING_DIR}/${BUILD_SYS}/usr/bin/qmake4 -query:
> valentin@thinkpad:/usr/local/OE/angstrom$ staging/i686-linux/usr/bin/qmake4 -query
> QT_INSTALL_PREFIX:/usr/local/OE/angstrom/staging/i686-linux
> QT_INSTALL_DATA:/usr/local/OE/angstrom/staging/i686-linux
> QT_INSTALL_DOCS:/usr/local/OE/angstrom/staging/i686-linux/doc
> QT_INSTALL_HEADERS:/usr/local/OE/angstrom/staging/i686-linux/include
> QT_INSTALL_LIBS:/usr/local/OE/angstrom/staging/i686-linux/lib
> QT_INSTALL_BINS:/usr/local/OE/angstrom/staging/i686-linux/bin
> QT_INSTALL_PLUGINS:/usr/local/OE/angstrom/staging/i686-linux/plugins
> QT_INSTALL_TRANSLATIONS:/usr/local/OE/angstrom/staging/i686-linux/translations
> QT_INSTALL_CONFIGURATION:/etc/xdg
> QT_INSTALL_EXAMPLES:/usr/local/OE/angstrom/staging/i686-linux/examples
> QT_INSTALL_DEMOS:/usr/local/OE/angstrom/staging/i686-linux/demos
> QMAKE_MKSPECS:/usr/local/OE/angstrom/staging/i686-linux/mkspecs
> QMAKE_VERSION:2.01a
> QT_VERSION:4.5.1
But, in cmake, when you want to use qt4 or qt4-embedded, you need to use
the FindQt4 module. What this module does is querying qmake to find out
where the QT libraries are installed. These should point to
${STAGING_DIR_HOST}, because that's where the lib dir and headers that
we aim at are. I changed a little bit the FindQt4.cmake module so that
it is more verbose and here is the ouptut:
> QMAKE found : /usr/local/OE/angstrom/staging/i686-linux/usr/bin/qmake4
> QT_LIBRARY_DIR is /usr/local/OE/angstrom/staging/i686-linux/usr/lib
> QT_BINARY_DIR is /usr/local/OE/angstrom/staging/i686-linux/usr/bin
> QT_HEADERS_DIR is /usr/local/OE/angstrom/staging/i686-linux/usr/include
> Looking for QtCore in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtCore
> Looking for QtGui in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtGui
> Looking for Qt3Support in /usr/local/OE/angstrom/staging/i686-linux/usr/include/Qt3Support
> Looking for QtSvg in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtSvg
> Looking for QtScript in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtScript
> Looking for QtTest in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtTest
> Looking for QtUiTools in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtUiTools
> Looking for QtHelp in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtHelp
> Looking for QtWebKit in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtWebKit
> Looking for QtXmlPatterns in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtXmlPatterns
> Looking for phonon in /usr/local/OE/angstrom/staging/i686-linux/usr/include/phonon
> Looking for QtMotif in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtMotif
> Looking for QtNetwork in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtNetwork
> Looking for QtNsPlugin in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtNsPlugin
> Looking for QtOpenGL in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtOpenGL
> Looking for QtSql in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtSql
> Looking for QtXml in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtXml
> Looking for QtDesigner in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtDesigner
> Looking for QtDBus in /usr/local/OE/angstrom/staging/i686-linux/usr/include/QtDBus
Of course they are not found, because they are located in
/usr/local/OE/angstrom/staging/armv6-angstrom-linux-gnueabi/usr/include/qtopia/
(or ${STAGING_HOST_DIR}/usr/include/qtopia) (and it is the same for the
library files, not only the headers).
I would like some input on how to handle this cleanly ? I see two solutions:
- we make qt4-tools-native point towards ${STAGING_DIR_HOST}
(complicated, because qt4-tools-native inherits native, I did not succeed)
- we make the staging of qt4.inc copy the headers and libs to
${STAGING_DIR}/${BUILD_SYS}
Your comments and help are greatly appreciated.
Best Regards
--
Valentin Longchamp, PhD Student, EPFL-STI-LSRO1
valentin.longchamp@epfl.ch, Phone: +41216937827
http://people.epfl.ch/valentin.longchamp
MEA3485, Station 9, CH-1015 Lausanne
reply other threads:[~2009-06-23 9:45 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A40A1AD.10903@epfl.ch \
--to=valentin.longchamp@epfl.ch \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.