[CMake] [cmake-developers] CPack: GetPrerequisites: cross-compiling from Linux to Windows
Eric Noulard
eric.noulard at gmail.com
Tue Mar 6 10:28:38 EST 2012
2012/3/6 Dominik Schmidt <domme at tomahawk-player.org>:
> On Tue, Mar 6, 2012 at 4:05 PM, Eric Noulard <eric.noulard at gmail.com> wrote:
>> > So the next step would be to configure e.g. CPACK_CROSSPACKAGING and
>> > CPACK_WIN32 in my project config file and try to make GetPrerequisites
>> > work
>> > with them?
>>
>> That's not what I was thinking about.
>> May be you could just add something like:
>>
>> if (CPACK_CROSSPACKAGING)
>> set(WIN32 @WIN32@)
>> set(CMAKE_CROSSCOMPILING @CMAKE_CROSSCOMPILING@)
>> endif(CPACK_CROSSPACKAGING)
>>
>> So that if CPACK_CROSSPACKAGING is set in your CMakeLists.txt
>> it will trigger the definition of WIN32 and CMAKE_CROSSCOMPILING in your
>> configured CPackProjectConfig file.
>
> Neither works. I took a closer look at CPackConfig.cmake in my build
> dir and saw
> SET(CPACK_SYSTEM_NAME "win32") is defined.
> (which I didnt define, btw
> http://www.vtk.org/Wiki/CMake:CPackConfiguration say it defaults to
> CMAKE_SYSTEM_NAME which is Windows in my case tho)
>
> When I tried to print it in GetPrerequisites, it was empty.
> So variables defined there aren't available when needed here it seems.
>
> message(FATAL_ERROR "CPACK_SYSTEM_NAME is: ${CPACK_SYSTEM_NAME}")
>
> CMake Error at /home/domme/dev/installs/share/cmake-2.8/Modules/GetPrerequisites.cmake:626
> (message):
> CPACK_SYSTEM_NAME is:
> Call Stack (most recent call first):
> /home/domme/dev/installs/share/cmake-2.8/Modules/BundleUtilities.cmake:432
> (get_prerequisites)
> /home/domme/dev/installs/share/cmake-2.8/Modules/BundleUtilities.cmake:612
> (get_bundle_keys)
> /home/domme/dev/sources/my_client/cmake/modules/DeployQt4.cmake:116
> (fixup_bundle)
> /home/domme/dev/sources/my_client/win/cmake_install.cmake:43
> (FIXUP_QT4_BUNDLE)
This is the interesting part.
This installation part is launched by CPack before packaging.
>> GetPrerequisites may simply works after that (as far as I understood
>> your previous e-mail).
>
> Err well. with the rest of my patch applied :-)
So I misunderstood, one of your previous answer
>> In order to be sure that nothing else is breaking you can try to
>> [manually] add the missing definition in the CPackConfig.cmake file.
>> This file is loaded by CPack at CPack-time so that any definitions in there
>> will be seen during CPack run.
> Went fine.
I have not the rime now to dive into CPack source code in order to check
which context comes with the installation step launched by CPack.
Does the [cross-]DeployQt4 works if you simply do
make install
?
--
Erk
Le gouvernement représentatif n'est pas la démocratie --
http://www.le-message.org
More information about the CMake
mailing list