Hello Daniel, I'm very glad to hear that you're so advanced on the cross-compilation question. I am still experimenting and making it work by trial and errors... Do you thing there would be a chance to setup a package repository with the built binaries? I'm running a stripped down ubuntu on my gumstix verdex and overo, and having pre-built packages would be a game changer. However, for these applications, the deb-packages would have to be cleaned up to save a bit of space :) Best, On 07/10/10 06:36, Daniel Stonier wrote: > There are already some patches submitted to ros trac covering some of > these things - while they didn't get in in time for cturtle, hopefully > they'll be in the next release > > https://code.ros.org/trac/ros/ticket/2803 - sets up rospack for a twopass > https://code.ros.org/trac/ros/ticket/2805 - sets up genmsg_cpp for a twopass > https://code.ros.org/trac/ros/ticket/2823 - a fix for a stray test > that causes a problem in crossing topic_tools > https://code.ros.org/trac/ros/ticket/2822 - a fix for a find_file in > cmake that can't find things in a cross in message_filters > https://code.ros.org/trac/ros/ticket/2821 - find_file again causing > problems in topic_tools > https://code.ros.org/trac/ros/ticket/2670 - fix to allow > rostoolchain.cmake and rosconfig.cmake to exist together > > Your fix for private.cmake I was sure I submitted a few months ago, > but I can't find it in the trac system - I maintain exactly the same > patch myself. I'll check it again a bit later to make sure its there. > I've also got a cross compiled opencv package for embedded systems > (minus all the gui components) that does what you're doing and a bit > more: > > svn export http://embedded-control-library.googlecode.com/svn/trunk/ecl_vision/opencv_embedded > ./opencv > > On 9 July 2010 21:55, Cedric Pradalier wrote: > >> Hi, >> >> I'd like to suggest the 2 micro-patch to help cross-compiling ros. >> >> ======== ROS BUILD ======== >> I now use more the rostoolchain.cmake and I really think that's the way >> forward. Mine looks like that: >> set(CMAKE_SYSTEM_NAME Linux) >> set(CMAKE_SYSTEM_PROCESSOR arm-angstrom-linux-gnueabi) >> set(GUMSTIXTOP [...]/overo-oe) >> set(GUMSTIXFS [...]/overo-dev) >> set(CMAKE_C_COMPILER >> >> ${GUMSTIXTOP}/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-gcc-sysroot) >> set(CMAKE_CXX_COMPILER >> >> ${GUMSTIXTOP}/tmp/cross/armv7a/bin/arm-angstrom-linux-gnueabi-g++-sysroot) >> set(CMAKE_FIND_ROOT_PATH ${GUMSTIXFS}) >> set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) >> set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) >> set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) >> >> The CMAKE_FIND... directives are conflicting with the >> _rosbuild_add_rostest and _rosbuild_add_pyunit in >> rosbuild/private.cmake. This can be corrected by applying the following >> patch: >> - find_file(_file_name ${file} ${PROJECT_SOURCE_DIR} /) >> + find_file(_file_name "${file}" "${PROJECT_SOURCE_DIR}" / >> NO_CMAKE_FIND_ROOT_PATH) >> in both function. This will force find_file to ignore the >> CMAKE_FIND_ROOT_PATH for these functions. This is fine since they seem >> to be used only to refer to local files. >> >> ======== OpenCV ======== >> In OpenCV, the Makefile does not use the toolchain file. I've modified >> mine as follows. There might cleaner ways to get the same semantic. >> CMAKE = cmake >> TOOLCHAIN = >> ifeq (x$(wildcard >> $(ROS_ROOT)/rostoolchain.cmake),x$(ROS_ROOT)/rostoolchain.cmake) >> TOOLCHAIN = -DCMAKE_TOOLCHAIN_FILE=$(ROS_ROOT)/rostoolchain.cmake >> endif >> CMAKE_ARGS = $(TOOLCHAIN) -D CMAKE_BUILD_TYPE=RELEASE \ >> -D CMAKE_INSTALL_PREFIX=`rospack find >> opencv2`/$(INSTALL_DIR) \ >> ... >> ========================= >> Next thing is to find a way to generate rospack and rosstack twice, once >> for host, another for deployment, and to call a different one during >> compilation and at runtime. Any idea? >> >> HTH >> >> -- >> Dr. Cedric Pradalier >> http://www.asl.ethz.ch/people/cedricp >> >> _______________________________________________ >> ros-users mailing list >> ros-users@code.ros.org >> https://code.ros.org/mailman/listinfo/ros-users >> >> > > > -- Dr. Cedric Pradalier http://www.asl.ethz.ch/people/cedricp