Let me take another shot at this -- I created a gist that highlights the problem: https://gist.github.com/3789287
I am supporting cross-compile for the Raspberry Pi Arm target in my project, but I also build regularly on plain 'ol x86 linux so I can test w/o having to go to the target. The Pi is awful slow at compilation, so I want to do cross-compile also on Linux x86. I am using 3rd party libraries from http://zeromq.org -- I have already compiled them on the target hardware and checked them in to my project repo directory structure: Same libraries, compiled for different targets, stored in different paths in my project directory structure. I created a Toolchain file to cross-compile. So far that works fine, until I want to go linking against the zeromq libraries. Compiling for Linux/x86 works fine, and even compiling for Mac OS X but when I run my Toolchain to cross-compile, it complains that it cannot find the libraries for the target. I run the toolchain like this: $ cmake -DCMAKE_TOOLCHAIN_FILE=../Toolchain-raspberrypi-arm.cmake .. Using Raspberry Pi Tools found in /home/davis/git/raspberrypi/toolsCMAKE_CROSSCOMPILING => TRUECMAKE_SYSTEM_NAME => Linux, PROJECT_SOURCE_DIR => /home/davis/git/ebike-firmware CMAKE_CROSSCOMPILING is true...doing find_library for ZeroMQ... CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: CZMQ_LIB linked by target "Runtime" in directory /home/davis/git/ebike-firmware/src ZEROMQ_LIB linked by target "Runtime" in directory /home/davis/git/ebike-firmware/src -- Configuring incomplete, errors occurred! The libraries, are indeed there. I thought using the CMAKE_FIND_ROOT_PATH_MODE_LIBRARY and the CMAKE_FIND_ROOT_PATH would force CMake to use an explicit path to try to resolve libraries when you execute find_library, but even though the files are there, it fails with NOTFOUND. Does it somehow inspect the binary and consider its current architecture -- if it isn't a match, it reports fail / NOTFOUND -- if so, how can I work around this? Is there a better way to do what I'm trying to do?? On Mon, Sep 24, 2012 at 5:38 PM, Davis Ford <[email protected]> wrote: > >
-- 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
