Hello!

First of all, the root filesystem is created with ptxdist (if it is
known to you).

>> I am using cmake for cross compiling of several Qt applications.
>> To do this with cmake v2.8.4 I have to change the FindQt4.cmake file.
>>
>> The variables QT_LIBRARY_DIR, QT_HEADERS_DIR, QT_BINARY_DIR (...) will
>> already be prefixed with the CMAKE_FIND_ROOT_PATH variable value.
>
> What do you mean already prefixed?  Are you setting them in the toolchain 
> file?

CMAKE_FIND_ROOT_PATH and some other variables are defined.
No QT_... variables are set. This works fine "automatically".

>
>> For cross compiling CMAKE_FIND_ROOT_PATH_MODE_LIBRARY and
>> CMAKE_FIND_ROOT_PATH_MODE_INCLUDE should be set to ONLY (IMHO).
>>
>> FindQt4 is using NO_DEFAULT_PATH for finding libraries, headers and
>> binaries, so I had also to add NO_CMAKE_FIND_ROOT_PATH to that calls.
>>
>> Could you have a look at the attached patch?
>
> Can you send me the toolchain file also?

The file is attached and IMHO it is not overloaded.

>
> A few times in the past, users have submitted cross-compile patches for
> FindQt4.cmake and the end result was to simplify the toolchain files.

Sure, that is always a problem ;-)

So, I would be glad if you could have a look at the toolchain file and
we could improve cross compiling Qt projects with cmake.

Greats,
Markus
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR arm)

# specify the cross compiler
set(CMAKE_C_COMPILER   arm-v5te-linux-gnueabi-gcc)
set(CMAKE_CXX_COMPILER arm-v5te-linux-gnueabi-g++)

# I use relative paths to specify the rootfs, so I could checkin in a
# repository and share that file with other developers
set(MY_DIR_PLATFORM       ${CMAKE_SOURCE_DIR}/../rootfs/platform)

# the root filesystem for the target
set(MY_DIR_SYSROOT_TARGET ${MY_DIR_PLATFORM}/sysroot-target)

# files for the build system (moc, uic)
set(MY_DIR_SYSROOT_HOST   ${MY_DIR_PLATFORM}/sysroot-host)

# some files as a qmake wrapper that set the QMAKESPEC variable
set(MY_DIR_SYSROOT_CROSS  ${MY_DIR_PLATFORM}/sysroot-cross)

# set root path
set(CMAKE_FIND_ROOT_PATH ${MY_DIR_SYSROOT_TARGET})

# ensure that the qmake wrapper instead of the system one is used
set(ENV{PATH} ${MY_DIR_SYSROOT_CROSS}/bin:$ENV{PATH})

# set path search mode search
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to