>> 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