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)