The DUNE cmake setup
DUNE uses cmake to control its build process (creates makefiles).
Debug build
By default, running the cmake on DUNE disables debugging. To enable this, add the '-DDEBUG=TRUE
' flag when invoking cmake.
Changing Toolchain
By default, the toolchain in 'dune/cmake/Toolchain.cmake
' is used. An example of setting up an alternative toolchain is available at Ubuntu cross compiling with libraries.
Adding External Libraries
External libraries is configured through the files at 'dune/cmake/Libraries
'. These check if the respective library is available, and then adds the needed include directories with headers and linked libraries. In addition, they each set cmake flags like 'DUNE_USING_JPEG
' or 'DUNE_SYS_HAS_JPEG
'. These flags can then be used cmakefiles of individual tasks to ensure the task is only built if the required library was successfully included.
Building with only a Subset of Tasks
To reduce compile time and binary size, an option is to only build a selection of the tasks included with DUNE. This can be done by setting the TASK_FILE
variable when invoking cmake, and pointing it towards a file containing calls to either dune_add_task
or dune_add_tasks
. Example call:
cmake -DTASK_FILE=../dune/user/taskFile.cmake ../dune
Example of content to put in the TASK_FILE
:
dune_add_tasks(${PROJECT_SOURCE_DIR}/user/src) dune_add_task(${PROJECT_SOURCE_DIR}/src Transports/Announce/Task.cmake)