Difference between revisions of "CMake"
From ArmadeusWiki
(Create page) |
m (fix links) |
||
Line 75: | Line 75: | ||
TODO | TODO | ||
− | Goto [[OpenCV#Build_OpenCV| here]] for an example | + | Goto [[OpenCV#Build_OpenCV| here]] for an example (step #5) |
== Use CMake in your a project == | == Use CMake in your a project == | ||
TODO | TODO | ||
− | Goto [https://code.ros.org/trac/opencv/browser/tags/2.1/opencv/samples/c/example_cmake | + | Goto [https://code.ros.org/trac/opencv/browser/tags/2.1/opencv/samples/c/example_cmake here] for an example |
== See also == | == See also == | ||
− | * | + | * [http://www.cmake.org/cmake/help/documentation.html Cmake documentation] |
− | * Examples provided by existing projects ([https://code.ros.org/trac/opencv/browser/tags/2.1/opencv/samples/c/example_cmake | + | * Examples provided by existing projects ([https://code.ros.org/trac/opencv/browser/tags/2.1/opencv/samples/c/example_cmake example from OpenCV]) |
== Thanks == | == Thanks == | ||
Thanks to Ctaf42 for his help about CMake. | Thanks to Ctaf42 for his help about CMake. | ||
+ | |||
+ | [[Category: Software]] | ||
+ | [[Category: Toolchain]] |
Latest revision as of 00:45, 8 June 2010
Page under construction... Informations on this page are not guaranteed !!
Contents
Forewords
Cmake is a utility that generate Makefile for your projects. Therefore, it does not need to be cross-compiled.
Configure a project using CMake
The toolchain file
This file describes the (cross-)toolchain required to compile projects managed with CMake.
Copy-paste the following lines in a *.cmake file and set the variables of "Armadeus subsection" accordingly to your configuration.
##
## toolchain.cmake
##
## ==== Settings Section ====
## ---- Armadeus subsection ----
# set the Armadeus board (comments/uncomment according to your board)
set(ARMADEUS_BOARD "APF27")
# set(ARMADEUS_BOARD "APF9328")
# set the uClibc version
set(ARMADEUS_UCLIBC_VERSION "0.9.29")
# set the Armadeus root path
set(ARMADEUS_ROOT "/path/to/your/armadeus/sdk")
## ---- CMake subsection ----
# this one is important
set(CMAKE_SYSTEM_NAME "Linux")
# this one not so much
set(CMAKE_SYSTEM_VERSION "1")
## ==== CMake Variables ====
if(ARMADEUS_BOARD STREQUAL "APF27")
set(ARMADEUS_MARCH "armv5te")
elseif(ARMADEUS_BOARD STREQUAL "APF9328")
set(ARMADEUS_MARCH "armv4t")
else(ARMADEUS_BOARD STREQUAL "APF27")
message("\n"
"===========================================================\n"
"= Cannot determine the target =\n"
"===========================================================\n"
)
endif(ARMADEUS_BOARD STREQUAL "APF27")
set(ARMADEUS_ROOT_BR ${ARMADEUS_ROOT}/buildroot)
set(ARMADEUS_ROOT_CTC ${ARMADEUS_ROOT_BR}/build_${ARMADEUS_MARCH}/staging_dir)
set(ARMADEUS_ROOT_CTC_BINDIR ${ARMADEUS_ROOT_CTC}/usr/bin)
set(ARMADEUS_CTC_PREFIX "arm-linux-")
# specify the cross-toolchain (compiler, header and library directories)
set(CMAKE_C_COMPILER ${ARMADEUS_ROOT_CTC_BINDIR}/${ARMADEUS_CTC_PREFIX}gcc)
set(CMAKE_CXX_COMPILER ${ARMADEUS_ROOT_CTC_BINDIR}/${ARMADEUS_CTC_PREFIX}g++)
set(CMAKE_INCLUDE_PATH ${ARMADEUS_ROOT_BR}/toolchain_build_${ARMADEUS_MARCH}/uClibc-${ARMADEUS_UCLIBC_VERSION}/include)
set(CMAKE_LIBRARY_PATH ${ARMADEUS_ROOT_CTC})
set(CMAKE_FIND_ROOT_PATH ${ARMADEUS_ROOT_CTC} ${CMAKE_INCLUDE_PATH})
# search for programs in the build host directories
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
# for libraries and headers in the target directories
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
This file should be generated by Buildroot at the time of the Armadeus SDK setup.
Run CMake
TODO
Goto here for an example (step #5)
Use CMake in your a project
TODO
Goto here for an example
See also
- Cmake documentation
- Examples provided by existing projects (example from OpenCV)
Thanks
Thanks to Ctaf42 for his help about CMake.