>> FWIW: I found why I use CMAKE_FORCE_C_COMPILER rather than the simpler >> CMAKE_C_COMPILER command: >> I build projects for eCos from outside the eCos tree directory, and >> CMake has some trouble finding the eCos header files when simply using >> CMAKE_C_COMPILER. It complains about CMAKE_FIND_ROOT_PATH which is >> nevertheless defined as expected.
Sorry to get back so late on this topic > You should not need to use CMAKE_FORCE_C_COMPILER() for eCos. > Can you please post some more details on your setup ? I build eCos-based projects for ARM. The compiler prefix is "arm-eabi-" The basic directory layout is as follows: ecos/ : contains the std eCos "packages" subdir, etc. sdk/ : contains our base code, that builds against eCos build/ : where all the code is built (out-of-source build), that is: build/ecos_build build/ecos_install build/sdk ... > Where is the eCos tree with libtarget.a etc. ? build/ecos_install/lib/libtarget.a build/ecos_install/include/pkgconf/system.h > How does your toolchain file look like ? arm-eabi-gcc-4.5.2 (on Linux, Mac OS X), arm-eabi-gcc-4.5.2.exe (on Cygwin) all other toolchain tools are prefixed with arm-eabi- as well > How do you call cmake ? >From a shell script. A simplified version of the command line would be (TOPDIR does not exist, TOPDIR is actually the absolute path to the startup directory) TOPDIR=$PWD (cd build/sdk && cmake -DCMAKE_FIND_ROOT_PATH=$TOPDIR/build/ecos_install \ -DSDK_PATH=$TOPDIR/build/sdk/install -DCMAKE_BUILD_TYPE=DEBUG \ -DPYTHON=/usr/bin/python2.6 ../../sdk && /usr/bin/make install) I also define: SET (CMAKE_SYSTEM_NAME eCos) SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY LAST) SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE LAST) (again, I can't remember why I selected "LAST" at some point in the past, but "ONLY" led to some other issues) When I drop CMAKE_FORCE_C_COMPILER and replace it with CMAKE_C_COMPILER, I get the following error message Building sdk in DEBUG -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/local/homebrew/bin/arm-eabi-gcc-4.5.2 CMake Error at /usr/local/homebrew/Cellar/cmake/2.8.4-rc2/share/cmake/Modules/Platform/eCos.cmake:36 (MESSAGE): Could not find eCos pkgconf/system.h. Build eCos first and set up CMAKE_FIND_ROOT_PATH correctly. Call Stack (most recent call first): /usr/local/homebrew/Cellar/cmake/2.8.4-rc2/share/cmake/Modules/CMakeSystemSpecificInformation.cmake:36 (INCLUDE) CMakeLists.txt:2 (PROJECT) Best Regards, Emmanuel _______________________________________________ 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