[CMake] providing host binary and target library cmake-package when cross compiling

Pascal Bach pascal.bach at gmx.ch
Mon Oct 19 16:21:19 EDT 2015


Sorry I don't see how this relates to my question?

On Mon, Oct 19, 2015 at 5:33 PM, Owen Alanzo Hogarth
<gurenchan at gmail.com> wrote:
> This is the entire project as it stands right now. I have tried changing
> from using relative to more absolute directory names in my project but I
> still get the same build errors.
>
> This pastebin has all the relevant code: http://pastebin.com/BnVTnegP
>
> Anyone can see anything wrong with this?
>
> On Mon, Oct 19, 2015 at 10:11 PM, Pascal Bach <pascal.bach at siemens.com>
> wrote:
>>
>> Hello
>>
>> I'm working on CMake support for Apache Thrift [1].
>> It is currently already buildable using CMake. However while trying to add
>> support for generating a ThriftConfig.cmake I ran into some issues
>> related to cross compilation.
>>
>> Thrift has the following components relevant to the problem:
>>
>> C++ library (.so library)
>> Thrift compiler (binary)
>>
>> End users/developers usually us thrift in the following way:
>> Thrift IDL ==[Thrift compiler]==> C++ files ==[GCC + Link with
>> thrift.so]==> final.so
>>
>> My idea for the resulting ThriftConfig.cmake was to provide two imported
>> targets Thrift::libthrift and Thrift::compiler.
>> Thrift::compiler can be used to generate C++ files from Thrift IDLs and
>> Thrift::libthrift is what the resulting binary should link against.
>> This works well if no cross compilation is involved.
>>
>>
>> Now for the cross compilation case. I'm using OpenEmbedded [2] which
>> provides two sysroot directories:
>> 1. sysroot_x86 containing binaries and libraries for the host:
>> libthrift.so (x86 library), thrift (x86 executable)
>> 2. sysroot_arm containing binaries and libraries for the target:
>> libthrift.so (arm library), thrift (arm executable)
>>
>> In the cross compiling case the Thrift::compiler target must be executable
>> on the HOST and Thrift::libthrift must be a target library.
>> This means the library should be from sysroot_arm but the binary from
>> sysroot_x86.
>> I'm not able express this an a good way.
>>
>> Does anyone know how to do this? Is there an example how this could be
>> done?
>>
>> Thanks for your help.
>>
>> Regards
>> Pascal
>>
>>
>> [1] http://thrift.apache.org/
>> [2] http://www.openembedded.org/wiki/Main_Page
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more
>> information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake
>
>
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake


More information about the CMake mailing list