[CMake] How pass a -spec parameter to FindQt4.cmake?

clinton at elemtech.com clinton at elemtech.com
Thu Jul 21 13:00:13 EDT 2011



----- Original Message -----
> Hi Clint and thanks for your advices (sorry about the delayed
> answer),
> 
> On Tue, Jul 19, 2011 at 1:33 AM, clinton at elemtech.com
> <clinton at elemtech.com> wrote:
> > When cross compiling, only some the qmake queries are actually
> > used.
> >
> > Finding the rest just works if subdirs in the Qt installation
> > weren't given
> > different values when running Qt's configure script (e.g.
> > --libdir=mylib or
> > --libdir=lib/qt4).
> >
> > So, the root of the Qt installation needs to be given in the
> > toolchain file.
> >  Is /opt/env/lenny-ppc/usr/lib/qt4 the root of the installation, or
> > the
> > location of the libraries?
> 
> > In either case, it won't be searched unless you put that in your
> >toolchain
> > file.  The standard cross compile find variables are the global
> > variables you
> > can setto help find Qt.
> 
> I included /opt/env/lenny-ppc/usr/share/qt4 (which I belive to be the
> root of
> the Qt installation) in CMAKE_FIND_ROOT_PATH but the Qt libraries
> still wasn't
> detected.
> 
> > Then, if you need to help it some more, you may set the path to the
> > QtCore
> > library manually, or other variables manually.
> 
> Managed to compile and link when I added the following snippet to the
> toolchain file:
> 
>     set(QT_HEADERS_DIR /opt/env/lenny-ppc/usr/lib)
>     set(QT_LIBRARY_DIR /opt/env/lenny-ppc/usr/include/qt4)
> 
>     set(QT_QTCORE_LIBRARY /opt/env/lenny-ppc/usr/lib/libQtCore.so)
>     set(QT_QTCORE_LIBRARY_RELEASE
>     /opt/env/lenny-ppc/usr/lib/libQtCore.so)
>     set(QT_QTCORE_INCLUDE_DIR /opt/env/lenny-ppc/usr/include/qt4)
> 
>     set(QT_QTDBUS_LIBRARY /opt/env/lenny-ppc/usr/lib/libQtDBus.so)
>     set(QT_QTDBUS_LIBRARY_RELEASE
>     /opt/env/lenny-ppc/usr/lib/libQtDBus.so)
>     set(QT_QTDBUS_INCLUDE_DIR /opt/env/lenny-ppc/usr/include/qt4)
> 
>     set(QT_QTXML_LIBRARY /opt/env/lenny-ppc/usr/lib/libQtXml.so)
>     set(QT_QTXML_LIBRARY_RELEASE
>     /opt/env/lenny-ppc/usr/lib/libQtXml.so)
>     set(QT_QTXML_INCLUDE_DIR /opt/env/lenny-ppc/usr/include/qt4)
> 
> Would have been nice if I didn't have to set those paths explicitely.
> Will continue the digging.

Does it work if you only specify just this:
    set(QT_HEADERS_DIR /opt/env/lenny-ppc/usr/include/qt4)
    set(QT_QTCORE_LIBRARY_RELEASE  /opt/env/lenny-ppc/usr/lib/libQtCore.so)

And I would have thought it can find QtCore if /opt/env/lenny-ppc/usr was given as a find root.
No?

Clint


More information about the CMake mailing list