The DUNE Build System¶
DUNE provides a set of utilities to aid the setup of a project. Most of the utilities are CMake scripts that automate common use cases or required steps needed to use a DUNE project. Among other things, these utilities provide:
Automatic intra-module project configuration
Find modules for software commonly used in the DUNE context
Testing utilities
Configuration-file generation
Setup of DUNE Python bindings
Guides¶
The DUNE buildsystem guide and FAQ are available here:
- The DUNE Build System
- Frequently Asked Questions (FAQ)
- How do I use Dune with CMake?
- What files in a DUNE module belong to the CMake build system?
- How do I modify the flags and linked libraries of a given target?
- How do I link against external libraries that are not checked for by DUNE?
- What is an out-of-source build?
- What is the simplified build system and how do I use it?
- How do I change my compiler and compiler flags?
- How do I set the C++ standard?
- How should I handle ini and grid files in an out-of-source build?
- How do I use CMake with IDEs?
- I usually modify my CXXFLAGS when calling make. How can I do this in CMake?
- How do I run the test suite from CMake?
- Can I disable an external dependency?
- How do I troubleshoot?
- Where can I get help?
Reference Manual¶
Input Variable reference¶
- ALLOW_CFLAGS_OVERWRITE
- ALLOW_CXXFLAGS_OVERWRITE
- ARPACKPP_ROOT
- ARPACK_ROOT
- CONVERT
- DUNE_BUILD_TESTS_ON_MAKE_ALL
- DUNE_INSTANCE_GENERATED
- DUNE_MATHJAX_DISABLE_CDN
- DUNE_MATHJAX_DISABLE_LOCAL
- DUNE_MAX_TEST_CORES
- DUNE_POLICY_DEFAULT
- DUNE_POLICY_DISABLE_WARNING
- DUNE_PYTHON_ADDITIONAL_PIP_PARAMS
- DUNE_PYTHON_ALLOW_GET_PIP
- DUNE_PYTHON_EXTERNAL_VIRTUALENV_FOR_ABSOLUTE_BUILDDIR
- DUNE_PYTHON_INSTALL_LOCATION
- DUNE_PYTHON_VIRTUALENV_PATH
- DUNE_PYTHON_WHEELHOUSE
- DUNE_SYMLINK_RELATIVE_LINKS
- DUNE_SYMLINK_TO_SOURCE_TREE
- DUNE_USE_SYSTEM_PYBIND11
- ENABLE_HEADERCHECK
- INKSCAPE
- INKSCAPE_FOUND
- INKSCAPE_NEW_VERSION
- LATEXMK_DIR
- LATEXMK_EXECUTABLE
- LATEXMK_FOUND
- LATEXMK_ROOT
- LATEXMK_VERSION_MAJOR
- LATEXMK_VERSION_MINOR
- LATEXMK_VERSION_STRING
- MATHJAX2_FOUND
- MATHJAX2_PATH
- MINIMAL_DEBUG_LEVEL
- MathJax2_ROOT
- PYTHON_TEST
- SPHINX_EXECUTABLE
- SPHINX_FOUND
- SPHINX_ROOT
Command reference¶
- add_doxygen_target
- add_dune_alberta_flags
- add_dune_arpackpp_flags
- add_dune_blas_lapack_flags
- add_dune_gmp_flags
- add_dune_metis_flags
- add_dune_mpfr_flags
- add_dune_mpi_flags
- add_dune_parmetis_flags
- add_dune_ptscotch_flags
- add_dune_quadmath_flags
- add_dune_suitesparse_flags
- add_dune_superlu_flags
- add_dune_tbb_flags
- add_dune_vc_flags
- add_sphinx_targets
- create_doc_install
- dune_add_copy_command
- dune_add_copy_dependency
- dune_add_copy_target
- dune_add_latex_document
- dune_add_library
- dune_add_pybind11_module
- dune_add_pybind11_submodule
- dune_add_test
- dune_check_cxx_source_compiles
- dune_check_module_version
- dune_cmake_sphinx_doc
- dune_create_inkscape_image_converter_target
- dune_declare_test_label
- dune_default_include_directories
- dune_define_gridtype
- dune_define_policy
- dune_enable_all_packages
- dune_execute_process
- dune_instance_add
- dune_instance_begin
- dune_instance_end
- dune_library_add_sources
- dune_link_dune_py
- dune_mark_module_as_required_dependency
- dune_module_information
- dune_module_path
- dune_module_to_macro
- dune_module_to_uppercase
- dune_policy
- dune_process_dependency_macros
- dune_project
- dune_provide_pybind11
- dune_python_add_test
- dune_python_configure_bindings
- dune_python_configure_dependencies
- dune_python_configure_package
- dune_python_find_package
- dune_register_package_flags
- dune_set_minimal_debug_level
- dune_sphinx_doc
- dune_symlink_to_source_files
- dune_symlink_to_source_tree
- dune_target_enable_all_packages
- finalize_dune_project
- replace_properties
Module reference¶
- AddBLASLapackFlags
- AddGMPFlags
- AddMETISFlags
- AddMPFRFlags
- AddMPIFlags
- AddPTScotchFlags
- AddParMETISFlags
- AddQuadMathFlags
- AddSuiteSparseFlags
- AddTBBFlags
- AddThreadsFlags
- AddVcFlags
- CheckCXXFeatures
- DuneAddLibrary
- DuneAddPybind11Module
- DuneDefaultIncludeDirectories
- DuneDoc
- DuneDoxygen
- DuneEnableAllPackages
- DuneExecuteProcess
- DuneGridMacros
- DuneInstance
- DuneIstlMacros
- DuneMacros
- DuneModuleDependencies
- DuneModuleInformation
- DunePathHelper
- DunePkgConfig
- DunePolicy
- DuneProject
- DuneProvidePybind11
- DunePythonCommonMacros
- DunePythonFindPackage
- DunePythonInstallPackage
- DunePythonTestCommand
- DunePythonVirtualenv
- DuneReplaceProperties
- DuneSphinxCMakeDoc
- DuneSphinxDoc
- DuneStreams
- DuneSymlinkOrCopy
- DuneTestMacros
- DuneUtilities
- FindARPACK
- FindARPACKPP
- FindAlberta
- FindGMP
- FindInkscape
- FindLatexMk
- FindMETIS
- FindMPFR
- FindMathJax2
- FindPTScotch
- FindParMETIS
- FindQuadMath
- FindSphinx
- FindSuiteSparse
- FindSuperLU
- FindTBB
- Headercheck
- OverloadCompilerFlags
- UseInkscape