[cmake-developers] [CMake] CMake 2.8.3-rc1 ready for testing!

Clinton Stimpson clinton at elemtech.com
Thu Sep 23 17:09:57 EDT 2010


On Thursday, September 23, 2010 02:42:52 pm Alexander Neundorf wrote:
> On Thursday 23 September 2010, Clinton Stimpson wrote:
> > On Thursday, September 23, 2010 02:01:40 pm Alexander Neundorf wrote:
> > > On Thursday 23 September 2010, Clinton Stimpson wrote:
> > > > On Thursday, September 23, 2010 01:40:02 pm Alexander Neundorf wrote:
> > > ...
> > > 
> > > > > This was committed here:
> > > > > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b55da4c688bbf55b
> > > > > 44
> > > > >
> > > > >29 08
> > > > >
> > > > >46 4e0f7e2e41c937a3 which has as commit message "Add cross-compiling
> > > > >
> > > > > support to FindQt4.cmake"
> > > > > 
> > > > > What speaks against adding the NO_DEFAULT_PATH again ?
> > > > 
> > > > It was removed so it would be possible to use CMAKE_PREFIX_* for
> > > > cross- compiling with Qt.  This is because the output of "qmake
> > > > -query" cannot be relied on when cross-compiling, because it only
> > > > has native Qt paths.
> > > 
> > > We assume that the qmake which is found belongs to the Qt which is
> > > wanted, right ? This qmake is, also when crosscompiling, a native host
> > > binary in general, right ? Because I guess when cross compiling with
> > > qmake (not cmake), this qmake is used to generate the makefiles for
> > > cross compiling. And this one really reports the library dir for the
> > > host, not for the cross compiling target ?
> > 
> > Where is one getting this kind of setup?
> 
> I was just assuming this :-/
> 
> > I'm not aware of qmake supporting
> > cross compiling (I thought jumping through hoops was the only way to get
> > there).
> 
> Maybe something with setting mkspecs ?

Well, I only did enough hoop jumping to an older version of cmake cross-
compiling with Qt.  I didn't get as far as mkspecs which would probably enable 
one to cross-compile with qmake itself.

> 
> > I've done this kind of setup before and it required extra compiles and
> > modifying Qt installations.  I've told others they can do it this way,
> > but I got push back.
> > 
> > The setup which I was trying to support was a native Qt install, with a
> > non- native Qt install copied from another machine.  So one can pick
> > pieces from both installations, and use the native binaries.  I think
> > this is a more general setup.
> > 
> > > How about something like this:
> > > 
> > > GET_FILENAME_COMPONENT(_qt_base_dir ${QT_QMAKE_EXECUTABLE} PATH)
> > > GET_FILENAME_COMPONENT(_qt_base_dir ${_qt_base_dir} PATH)
> > > ...
> > > FIND_LIBRARY(QT_QTCORE_LIBRARY_RELEASE
> > > 
> > >              NAMES QtCore${QT_LIBINFIX} QtCore${QT_LIBINFIX}4
> > >              HINTS ${QT_LIBRARY_DIR_TMP} ${_qt_base_dir}/lib
> > >              NO_DEFAULT_PATH )
> > >     
> > >     )
> > > 
> > > I.e. we check only in the directory reported by qmake and additionally
> > > in {qmake_dir}/../lib/ ? The order of the two could also be exchanged.
> > 
> > That wouldn't work for the setup I was testing with.
> 
> So you had a native Qt installed in directory foo/ and the cross compiling
> Qt installed in some completely different directory ?
> Did the cross compiling Qt also have a qmake ? (which of course would not
> be runnable on the host system, but it could be used to just get its
> location and guess the remaining directories based on this instead of
> querying it).

Oh, I see what you are driving at...  you give it the other qmake, even if it 
can't be run.  That would require further modifications than I think should be 
done just before a release.  Mainly because we still use qmake to get the 
version number.

I'll fiddle with this and see if I can come up with a solution to your issue.

Clint



More information about the cmake-developers mailing list