All of lore.kernel.org
 help / color / mirror / Atom feed
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.