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

Owen Alanzo Hogarth gurenchan at gmail.com
Mon Oct 19 11:33:55 EDT 2015


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20151019/105bb590/attachment-0001.html>


More information about the CMake mailing list