From b2e5c6b021d070b1398519075d3ea2d6d58374b3 Mon Sep 17 00:00:00 2001
From: heltai
Date: Mon, 2 Dec 2013 16:00:06 +0000
Subject: [PATCH] Merged from trunk
git-svn-id: https://svn.dealii.org/branches/branch_manifold_id@31844 0785d39b-7218-0410-832d-ea1e28bc413d
---
deal.II/bundled/functionparser/fpoptimizer.cc | 43 +-
.../cmake/checks/check_03_compiler_bugs.cmake | 13 +
.../checks/check_03_generator_bugs.cmake | 34 +
deal.II/cmake/macros/macro_add_test.cmake | 12 +-
.../macro_deal_ii_invoke_autopilot.cmake | 6 +-
deal.II/cmake/macros/macro_pickup_tests.cmake | 36 +-
deal.II/cmake/scripts/run_test.cmake | 6 -
deal.II/cmake/scripts/run_testsuite.cmake | 9 +-
deal.II/cmake/setup_testsuite.cmake | 29 +-
deal.II/doc/developers/cmake-internals.html | 789 +++++++++---------
deal.II/doc/developers/porting.html | 63 +-
deal.II/doc/developers/svn.html | 19 +-
deal.II/doc/developers/testsuite.html | 557 ++++++-------
deal.II/doc/developers/toc.html | 183 ++--
.../doc/developers/writing-documentation.html | 110 +--
deal.II/doc/documentation.html | 75 +-
deal.II/doc/doxygen/CMakeLists.txt | 43 +-
deal.II/doc/doxygen/footer.html | 11 -
deal.II/doc/doxygen/header.html.in | 20 -
deal.II/doc/doxygen/headers/main.h | 2 -
deal.II/doc/doxygen/headers/multithreading.h | 30 +-
deal.II/doc/doxygen/options.dox.in | 16 +-
deal.II/doc/doxygen/scripts/mod_footer.pl | 15 +
deal.II/doc/doxygen/scripts/mod_header.pl | 16 +
deal.II/doc/doxygen/stylesheet.css | 326 +-------
deal.II/doc/license.html | 2 +-
deal.II/doc/navbar.html | 2 +-
deal.II/doc/news/changes.h | 61 +-
deal.II/doc/publications/dealii.bib | 13 +-
deal.II/doc/publications/index.html | 106 +--
deal.II/doc/readme.html | 6 +-
deal.II/doc/reports/index.html | 24 +-
deal.II/doc/screen.css | 156 ++--
deal.II/doc/users/cmake.html | 579 ++++++-------
deal.II/doc/users/cmakelists.html | 52 +-
deal.II/doc/users/doxygen.html | 4 +-
deal.II/doc/users/navbar.html | 2 +-
deal.II/doc/users/toc.html | 234 +++---
deal.II/examples/step-14/doc/results.dox | 22 +-
deal.II/examples/step-14/step-14.cc | 249 +++---
deal.II/examples/step-42/doc/intro.dox | 4 +-
deal.II/examples/step-51/doc/intro.dox | 28 +-
deal.II/examples/step-51/doc/results.dox | 30 +-
deal.II/examples/step-9/doc/results.dox | 18 +-
deal.II/examples/step-9/step-9.cc | 392 +++++----
.../include/deal.II/base/derivative_form.h | 20 +-
deal.II/include/deal.II/base/exceptions.h | 2 +-
.../deal.II/base/polynomials_nedelec.h | 18 +-
deal.II/include/deal.II/base/quadrature.h | 20 +-
deal.II/include/deal.II/base/quadrature_lib.h | 4 +-
.../deal.II/base/tensor_product_polynomials.h | 2 +-
deal.II/include/deal.II/base/work_stream.h | 144 ++--
.../include/deal.II/dofs/dof_renumbering.h | 36 +-
deal.II/include/deal.II/fe/fe_face.h | 2 +-
deal.II/include/deal.II/fe/fe_nedelec.h | 16 +-
deal.II/include/deal.II/fe/fe_values.h | 82 +-
deal.II/include/deal.II/integrators/laplace.h | 31 +-
.../include/deal.II/lac/constraint_matrix.h | 8 +
deal.II/include/deal.II/lac/sparse_direct.h | 10 +-
.../deal.II/matrix_free/fe_evaluation.h | 24 +-
.../matrix_free/matrix_free.templates.h | 6 +-
.../include/deal.II/numerics/vector_tools.h | 10 +-
.../deal.II/numerics/vector_tools.templates.h | 32 +-
deal.II/source/base/data_out_base.cc | 2 +-
deal.II/source/base/exceptions.cc | 39 +-
deal.II/source/dofs/dof_renumbering.cc | 22 -
deal.II/source/dofs/dof_renumbering.inst.in | 17 -
deal.II/source/dofs/dof_tools_constraints.cc | 210 +++--
deal.II/source/fe/fe_values.cc | 162 ++--
deal.II/source/fe/mapping_cartesian.cc | 24 +-
deal.II/source/fe/mapping_q1.cc | 31 +-
deal.II/source/grid/grid_generator.cc | 5 +-
deal.II/source/grid/grid_tools.inst.in | 14 +
deal.II/source/lac/constraint_matrix.cc | 35 +-
deal.II/source/lac/sparse_direct.cc | 48 +-
deal.II/source/numerics/data_out.cc | 25 +-
.../numerics/derivative_approximation.cc | 7 +-
.../numerics/vector_tools_interpolate.inst.in | 2 +-
deal.II/tests/CMakeLists.txt | 37 +-
79 files changed, 2777 insertions(+), 2817 deletions(-)
create mode 100644 deal.II/cmake/checks/check_03_generator_bugs.cmake
delete mode 100644 deal.II/doc/doxygen/footer.html
delete mode 100644 deal.II/doc/doxygen/header.html.in
create mode 100644 deal.II/doc/doxygen/scripts/mod_footer.pl
create mode 100644 deal.II/doc/doxygen/scripts/mod_header.pl
diff --git a/deal.II/bundled/functionparser/fpoptimizer.cc b/deal.II/bundled/functionparser/fpoptimizer.cc
index 4eab746805..a9d7d3cb26 100644
--- a/deal.II/bundled/functionparser/fpoptimizer.cc
+++ b/deal.II/bundled/functionparser/fpoptimizer.cc
@@ -16,6 +16,20 @@
download the development version of the library.
*/
+#include
+#include
+#include
+#include
+#include
+#include
+#include
@@ -220,26 +219,24 @@ SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME}${DEAL_II_${build}_SUFFIX}
there are:
-
- ./cmake/checks/check_01_compiler_features.cmake
- - Search for support for compiler dependent features such as stack
- trace support, demangler support, etc.
-
- ./cmake/checks/check_01_cpu_features.cmake
- - Platform introspection for CPU features goes here and must be
- guarded with DEAL_II_ALLOW_PLATFORM_INTROSPECTION
+./cmake/checks/check_01_compiler_features.cmake
+ - Search for support for compiler dependent features such as stack
+ trace support, demangler support, etc.
- ./cmake/checks/check_01_cxx_features.cmake
- - Check for supported C++ language features such as sufficient C++11
- support
+./cmake/checks/check_01_cpu_features.cmake
+ - Platform introspection for CPU features goes here and must be
+ guarded with DEAL_II_ALLOW_PLATFORM_INTROSPECTION
- ./cmake/checks/check_01_system_features.cmake
- - Checks for specific platform (Linux/Darwin/CYGWIN/Windows..)
- features and support
+./cmake/checks/check_01_cxx_features.cmake
+ - Check for supported C++ language features such as sufficient C++11
+ support
- ./cmake/checks/check_02_compiler_bugs.cmake
- - Check for compiler bugs
+./cmake/checks/check_01_system_features.cmake
+ - Checks for specific platform (Linux/Darwin/CYGWIN/Windows..)
+ features and support
+./cmake/checks/check_02_compiler_bugs.cmake
+ - Check for compiler bugs
@@ -260,51 +257,48 @@ SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME}${DEAL_II_${build}_SUFFIX}
There are a number of readily available platform check macros:
-
- CHECK_CXX_SOURCE_COMPILES(source variable)
- - Checks whether it is possible to compile _and_ link the code snippet
- <source>. If successful, variable is set to 1.
-
- CHECK_CXX_SOURCE_RUNS(source variable)
- - variable is set to 1 if <source> could be successfully compiled and
- linked and the resulting program ran and exited without error.
- Avoid this macro outside of a DEAL_II_ALLOW_PLATFORM_INTROSPECTION
- guard. A sensible fallback should be provided if the check cannot
- be run (e.g. when cross compiling).
-
- CHECK_CXX_COMPILER_BUG(source variable)
- - Inverts the logic of CHECK_CXX_SOURCE_COMPILES(), i.e. variable is
- set to 1 if it was not possible to compile and link <source>.
-
- CHECK_INCLUDE_FILE_CXX(header variable)
- - Check whether it is possible to compile and link a dummy program
- including <header>.
-
- CHECK_FUNCTION_EXISTS(function variable)
- - Check for the existence of a function prototype with name
- <function>. (Don't forget to specify the link libraries, see
- below.) Use CHECK_CXX_SYMBOL_EXISTS to search for C++ function
- definitions instead, if possible.
-
- CHECK_CXX_SYMBOL_EXISTS(symbol header_file variable)
- - Check for the existence of a symbol definition in the header_file
- as well as for the presence in the current link interface
- (Don't forget to specify the link libraries, see below.)
-
- CHECK_CXX_COMPILER_FLAG(flag variable)
- - Sets the variable to 1 if the compiler understands the flag.
-
+CHECK_CXX_SOURCE_COMPILES(source variable)
+ - Checks whether it is possible to compile _and_ link the code snippet
+ <source>. If successful, variable is set to 1.
+
+CHECK_CXX_SOURCE_RUNS(source variable)
+ - variable is set to 1 if <source> could be successfully compiled and
+ linked and the resulting program ran and exited without error.
+ Avoid this macro outside of a DEAL_II_ALLOW_PLATFORM_INTROSPECTION
+ guard. A sensible fallback should be provided if the check cannot
+ be run (e.g. when cross compiling).
+
+CHECK_CXX_COMPILER_BUG(source variable)
+ - Inverts the logic of CHECK_CXX_SOURCE_COMPILES(), i.e. variable is
+ set to 1 if it was not possible to compile and link <source>.
+
+CHECK_INCLUDE_FILE_CXX(header variable)
+ - Check whether it is possible to compile and link a dummy program
+ including <header>.
+
+CHECK_FUNCTION_EXISTS(function variable)
+ - Check for the existence of a function prototype with name
+ <function>. (Don't forget to specify the link libraries, see
+ below.) Use CHECK_CXX_SYMBOL_EXISTS to search for C++ function
+ definitions instead, if possible.
+
+CHECK_CXX_SYMBOL_EXISTS(symbol header_file variable)
+ - Check for the existence of a symbol definition in the header_file
+ as well as for the presence in the current link interface
+ (Don't forget to specify the link libraries, see below.)
+
+CHECK_CXX_COMPILER_FLAG(flag variable)
+ - Sets the variable to 1 if the compiler understands the flag.
Necessary compiler flags can easily set in the string variable
CMAKE_REQUIRED_FLAGS
. There are two small macros
that do this job nicely:
-
-
- PUSH_TEST_FLAG("-Werror")
- CHECK_CXX_SOURCE_COMPILES(...)
- POP_TEST_FLAG()
+
+PUSH_TEST_FLAG("-Werror")
+CHECK_CXX_SOURCE_COMPILES(...)
+POP_TEST_FLAG()
Necessary include directories and libraries necessary for
@@ -314,12 +308,11 @@ SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME}${DEAL_II_${build}_SUFFIX}
lists and later on reset CMAKE_REQUIRED_*
(including
CMAKE_REQUIRED_FLAGS
) to their default values:
-
-
- LIST(APPEND CMAKE_REQUIRED_INCLUDES <a list of includes>)
- LIST(APPEND CMAKE_REQUIRED_LIBRARIES <a list of libraries>)
- CHECK_CXX_SOURCE_COMPILES(...)
- RESET_CMAKE_REQUIRED()
+
+LIST(APPEND CMAKE_REQUIRED_INCLUDES <a list of includes>)
+LIST(APPEND CMAKE_REQUIRED_LIBRARIES <a list of libraries>)
+CHECK_CXX_SOURCE_COMPILES(...)
+RESET_CMAKE_REQUIRED()
@@ -353,16 +346,15 @@ SET_TARGET_PROPERTIES(${DEAL_II_BASE_NAME}${DEAL_II_${build}_SUFFIX}
If successful, the following uncached variables might be set:
-
- FEATURE_FOUND
- FEATURE_LIBRARIES
- FEATURE_INCLUDE_DIRS
- FEATURE_LINKER_FLAGS
-
- FEATURE_VERSION
- FEATURE_VERSION_MAJOR
- FEATURE_VERSION_MINOR
- FEATURE_VERSION_SUBMINOR
+FEATURE_FOUND
+FEATURE_LIBRARIES
+FEATURE_INCLUDE_DIRS
+FEATURE_LINKER_FLAGS
+
+FEATURE_VERSION
+FEATURE_VERSION_MAJOR
+FEATURE_VERSION_MINOR
+FEATURE_VERSION_SUBMINOR
There are obviously valid exceptions from this rule, though.
@@ -375,321 +367,312 @@ There are obviously valid exceptions from this rule, though.
A hint with FEATURE_DIR
can be set up for
convenience. It is best to start the Find
module by
-
-
- SET_IF_EMPTY(FEATURE_DIR "$ENV{FEATURE_DIR}")
+
+SET_IF_EMPTY(FEATURE_DIR "$ENV{FEATURE_DIR}")
and use FEATURE_DIR
as a hint. If the external
library could be found, hide it via
MARK_AS_ADVANCED
, if the external library could not
be found, set a cache value:
-
-
- SET(FEATURE_DIR "" CACHE PATH "An optional hint to a FEATURE directory")
+
+SET(FEATURE_DIR "" CACHE PATH "An optional hint to a FEATURE directory")
-
- ./cmake/configure/configure_*.cmake
-
+
+ ./cmake/configure/configure_*.cmake
+
The final step in the configuration phase is the setup of features
(which refer to external or bundled libraries
deal.II can optionally interface with.)
-
-
- At bare minimum configure_<feature>.cmake
- file for a feature just consists of a call to the
- CONFIGURE_FEATURE(<FEATURE>)
macro which is
- implemented in
- ./cmake/macros/macro_configure_feature.cmake
.
- In this case the corresponding Find<FEATURE>.cmake
- module is used to determine whether an external dependency can be
- resolved or not. Depending on the current state of
- DEAL_II_WITH_<FEATURE>
(see
- here) the variables
-
-
- FEATURE_LIBRARIES
- FEATURE_INCLUDE_DIRS
- FEATURE_LINKER_FLAGS
-
- are appended to the set of global variables
- and DEAL_II_WITH_<FEATURE>
is set to
- TRUE
.
-
-
-
- It is possible to override this default behaviour with the following
- variables and macros (all of them are optional and will be replaced
- by an appropriate default action if unset):
+
+ At bare minimum configure_<feature>.cmake
+ file for a feature just consists of a call to the
+ CONFIGURE_FEATURE(<FEATURE>)
macro which is
+ implemented in
+ ./cmake/macros/macro_configure_feature.cmake
.
+ In this case the corresponding Find<FEATURE>.cmake
+ module is used to determine whether an external dependency can be
+ resolved or not. Depending on the current state of
+ DEAL_II_WITH_<FEATURE>
(see
+ here) the variables
+
+FEATURE_LIBRARIES
+FEATURE_INCLUDE_DIRS
+FEATURE_LINKER_FLAGS
+
+ are appended to the set of global variables
+ and DEAL_II_WITH_<FEATURE>
is set to
+ TRUE
.
+
+
+
+ It is possible to override this default behaviour with the following
+ variables and macros (all of them are optional and will be replaced
+ by an appropriate default action if unset):
+
+ -
+
<FEATURE>
means all caps,
+ <feature>
means all lowercase
+
+ -
+ In
./cmake/configure/configure_<feature>.cmake
:
+
+FEATURE_<FEATURE>_DEPENDS (a variable)
+ - a variable which contains an optional list of other features
+ this feature depends on (and which have to be enabled for this feature
+ to work.) The features must be given with the full option toggle:
+ DEAL_II_WITH_[...]
+
+FEATURE_<FEATURE>_FIND_EXTERNAL(var) (a macro)
+ - which should set var to TRUE if all dependencies for the feature are
+ fulfilled. In this case all necessary variables for
+ FEATURE_<FEATURE>_CONFIGURE_EXTERNAL must be set.
+ Otherwise var should remain unset.
+ If this macro is undefined, FIND_PACKAGE(<FEATURES>) is
+ called directly instead.
+
+FEATURE_<FEATURE>_CONFIGURE_EXTERNAL() (a macro)
+ - which should setup all necessary configuration for the feature with
+ external dependencies. If something goes wrong this macro must
+ issue a FATAL_ERROR.
+ If this macro is undefined, the information provided in
+ <FEATURES>_LIBRARIES, <FEATURES>_INCLUDE_DIRS and
+ <FEATURES>_LINKER_FLAGS is used for the build.
+
+FEATURE_<FEATURE>_CONFIGURE_BUNDLED() (a macro)
+ - which should setup all necessary configuration for the feature with
+ bundled source dependencies. If something goes wrong this macro must
+ issue a FATAL_ERROR.
+
+FEATURE_<FEATURE>_ERROR_MESSAGE() (macro)
+ - which should print a meaningful error message (with FATAL_ERROR) for
+ the case that no external library was found (and bundled is not
+ allowed to be used.) If not defined, a suitable default error message
+ will be printed.
+
+
+ -
+ In
./bundled/CMakeLists.txt
:
+
+FEATURE_<FEATURE>_HAVE_BUNDLED (a boolean)
+ - which should either be set to TRUE if all necessary libraries of the
+ features comes bundled with deal.II and hence can be supported
+ without external dependencies, or unset.
+
+DEAL_II_FORCE_BUNDLED_<FEATURE> (an option)
+ - If <feature> can be set up by bundled libraries, this
+ configuration option must be present to force a use of bundled
+ dependencies
+
+
+ -
+ Furthermore, if
+
FEATURE_<FEATURE>_BUNDLED_CONFIGURED
is set to
+ TRUE
the file ./bundled/CMakeLists.txt
+ must compile and install the bundled package appropriately.
+
+
+
+
+
+
+ Global variables controlling the build process
+
+
+ The following list describes all global variables controlling the
+ build process and the visibility associated with it (internal use for
+ compiling deal.Ii, externally used variables will get exported in
+ deal.IIConfig.cmake). Lists should be manipulated with
+ LIST(APPEND ...)
, flags with ADD_FLAGS(...)
+ (or if it is necessary to guard them with
+ ENABLE_IF_SUPPORTED(...)
.)
+
+ -
+ The general (internal) logic for variables applies:
- -
-
<FEATURE>
means all caps,
- <feature>
means all lowercase
-
- -
- In
./cmake/configure/configure_<feature>.cmake
:
-
-
- FEATURE_<FEATURE>_DEPENDS (a variable)
- - a variable which contains an optional list of other features
- this feature depends on (and which have to be enabled for this feature
- to work.) The features must be given with the full option toggle:
- DEAL_II_WITH_[...]
-
- FEATURE_<FEATURE>_FIND_EXTERNAL(var) (a macro)
- - which should set var to TRUE if all dependencies for the feature are
- fulfilled. In this case all necessary variables for
- FEATURE_<FEATURE>_CONFIGURE_EXTERNAL must be set.
- Otherwise var should remain unset.
- If this macro is undefined, FIND_PACKAGE(<FEATURES>) is
- called directly instead.
-
- FEATURE_<FEATURE>_CONFIGURE_EXTERNAL() (a macro)
- - which should setup all necessary configuration for the feature with
- external dependencies. If something goes wrong this macro must
- issue a FATAL_ERROR.
- If this macro is undefined, the information provided in
- <FEATURES>_LIBRARIES, <FEATURES>_INCLUDE_DIRS and
- <FEATURES>_LINKER_FLAGS is used for the build.
-
- FEATURE_<FEATURE>_CONFIGURE_BUNDLED() (a macro)
- - which should setup all necessary configuration for the feature with
- bundled source dependencies. If something goes wrong this macro must
- issue a FATAL_ERROR.
-
- FEATURE_<FEATURE>_ERROR_MESSAGE() (macro)
- - which should print a meaningful error message (with FATAL_ERROR) for
- the case that no external library was found (and bundled is not
- allowed to be used.) If not defined, a suitable default error message
- will be printed.
-
-
- -
- In
./bundled/CMakeLists.txt
:
-
-
- FEATURE_<FEATURE>_HAVE_BUNDLED (a boolean)
- - which should either be set to TRUE if all necessary libraries of the
- features comes bundled with deal.II and hence can be supported
- without external dependencies, or unset.
-
- DEAL_II_FORCE_BUNDLED_<FEATURE> (an option)
- - If <feature> can be set up by bundled libraries, this
- configuration option must be present to force a use of bundled
- dependencies
-
-
- -
- Furthermore, if
-
FEATURE_<FEATURE>_BUNDLED_CONFIGURED
is set to
- TRUE
the file ./bundled/CMakeLists.txt
- must compile and install the bundled package appropriately.
+ - A variable name without
_DEBUG
or
+ _RELEASE
: Used for all targets
+ -
<...>_DEBUG
: additionally used for debug targets
+ -
<...>_RELEASE
: additionally used for release targets
-
-
+ -
+ For internal use, for setting necessary linker flags for the deal.II library:
+
+ -
DEAL_II_LINKER_FLAGS
+ -
DEAL_II_LINKER_FLAGS_DEBUG
+ -
DEAL_II_LINKER_FLAGS_RELEASE
+
+ -
+ For internal use, for setting necessary compiler flags, e.g.
+
-std=c++11
(if available):
+
+ -
CMAKE_CXX_FLAGS
+ -
DEAL_II_CXX_FLAGS_DEBUG
+ -
DEAL_II_CXX_FLAGS_RELEASE
+
+ -
+ For internal use, for setting necessary include dirs for the compilation of the
+ deal.II library:
+
+ -
INCLUDE_DIRECTORIES(...)
+
-
- Global variables controlling the build process
+ -
+ For internal use, for setting necessary preprocessor definitions
+ (
-D<...>
) for the compilation of the
+ deal.II library:
+
+ -
DEAL_II_DEFINITIONS
+ -
DEAL_II_DEFINITIONS_DEBUG
+ -
DEAL_II_DEFINITIONS_RELEASE
+
-
- The following list describes all global variables controlling the
- build process and the visibility associated with it (internal use for
- compiling deal.Ii, externally used variables will get exported in
- deal.IIConfig.cmake). Lists should be manipulated with
- LIST(APPEND ...)
, flags with ADD_FLAGS(...)
- (or if it is necessary to guard them with
- ENABLE_IF_SUPPORTED(...)
.)
+
-
+ For internal and external use, used to keep track of external
+ libraries, the deal.II library and user
+ programs have to be linked against:
- -
- The general (internal) logic for variables applies:
-
- - A variable name without
_DEBUG
or
- _RELEASE
: Used for all targets
- -
<...>_DEBUG
: additionally used for debug targets
- -
<...>_RELEASE
: additionally used for release targets
-
-
- -
- For internal use, for setting necessary linker flags for the deal.II library:
-
- -
DEAL_II_LINKER_FLAGS
- -
DEAL_II_LINKER_FLAGS_DEBUG
- -
DEAL_II_LINKER_FLAGS_RELEASE
-
-
- -
- For internal use, for setting necessary compiler flags, e.g.
-
-std=c++11
(if available):
-
- -
CMAKE_CXX_FLAGS
- -
DEAL_II_CXX_FLAGS_DEBUG
- -
DEAL_II_CXX_FLAGS_RELEASE
-
-
- -
- For internal use, for setting necessary include dirs for the compilation of the
- deal.II library:
-
- -
INCLUDE_DIRECTORIES(...)
-
-
- -
- For internal use, for setting necessary preprocessor definitions
- (
-D<...>
) for the compilation of the
- deal.II library:
-
- -
DEAL_II_DEFINITIONS
- -
DEAL_II_DEFINITIONS_DEBUG
- -
DEAL_II_DEFINITIONS_RELEASE
-
-
- -
- For internal and external use, used to keep track of external
- libraries, the deal.II library and user
- programs have to be linked against:
-
- -
DEAL_II_EXTERNAL_LIBRARIES
- -
DEAL_II_EXTERNAL_LIBRARIES_DEBUG
- -
DEAL_II_EXTERNAL_LIBRARIES_RELEASE
-
-
- -
- For external use, used to keep track of external preprocessor
- definitions, necessary for the compilation of user programs:
-
- -
DEAL_II_USER_DEFINITIONS
- -
DEAL_II_USER_DEFINITIONS_DEBUG
- -
DEAL_II_USER_DEFINITIONS_RELEASE
-
-
- -
- Used to keep track of external include dirs, necessary for the
- compilation of user programs:
-
- -
DEAL_II_USER_INCLUDE_DIRS
-
+ -
DEAL_II_EXTERNAL_LIBRARIES
+ -
DEAL_II_EXTERNAL_LIBRARIES_DEBUG
+ -
DEAL_II_EXTERNAL_LIBRARIES_RELEASE
-
-
- Target definition and installation
-
- ./include/deal.II/base/config.h.in
+ -
+ For external use, used to keep track of external preprocessor
+ definitions, necessary for the compilation of user programs:
+
+ -
DEAL_II_USER_DEFINITIONS
+ -
DEAL_II_USER_DEFINITIONS_DEBUG
+ -
DEAL_II_USER_DEFINITIONS_RELEASE
+
- In contrast to autoconf there is no intermediate step any more that
- automatically generates config.h.in. The setup in this file has to be
- done by hand. Please note:
+ -
+ Used to keep track of external include dirs, necessary for the
+ compilation of user programs:
- -
config.h.in
should only contain a minimum of
- necessary compile definitions to avoid unnecessary recompilation if
- configuration changes.
- - Definition toggles in
config.h.in
should have a
- prominent comment explaining it and should be grouped by file
- exporting the definition.
+ -
DEAL_II_USER_INCLUDE_DIRS
+
+
+
+
+Target definition and installation
+
+ ./include/deal.II/base/config.h.in
+
+In contrast to autoconf there is no intermediate step any more that
+automatically generates config.h.in. The setup in this file has to be
+done by hand. Please note:
+
+ -
config.h.in
should only contain a minimum of
+ necessary compile definitions to avoid unnecessary recompilation if
+ configuration changes.
+ - Definition toggles in
config.h.in
should have a
+ prominent comment explaining it and should be grouped by file
+ exporting the definition.
+
+
+
+./source/CMakeLists.txt
+
+
+ All parts of the library are organized into logical object libraries
+ with their respective sources lying under
+ ./source/<foo>
, or
+ ./bundled/<foo>/<...>
. The actual setup of
+ an object library happens within that subdirectories with the help of
+ two macros:
+
+#
+# Glob for all header files associated with the object target:
+# As this list is only for cosmetic reasons, so that associated header
+# files show up in IDEs, we don't manage an explicit list (with the
+# trade-off to have to run "make rebuild_cache" when a new header file
+# emerges...)
+#
+FILE(GLOB _header
+ ${CMAKE_SOURCE_DIR}/include/deal.II/dofs/*.h
+ )
+
+#
+# A list of source files forming the object target:
+#
+SET(_src
+ ...
+ dof_tools.cc
+ )
+
+#
+# A list of instantiations that must be expanded:
+#
+SET(_inst
+ ...
+ dof_tools.inst.in
+ )
+
+#
+# The following macro will set up an obj_dofs.debug and
+# obj_dofs.release target with appropriate compile flags and
+# definitions for a simultaneous build of debug and release library.
+# Furthermore, the object name will be stored in
+# ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/deal_ii_objects_(debug/release)
+# so that it is available in global scope.
+#
+# Header files and instatiation files (${_header}, ${_inst}) are added
+# for cosmetic reasons, so that they show up in IDEs.
+#
+DEAL_II_ADD_LIBRARY(obj_dofs OBJECT ${_src} ${_header} ${_inst})
+
+#
+# This macro will set up an obj_dofs.inst target for expanding all
+# files listed in ${inst_in_files}. Appropriate target dependencies
+# will be added to obj_dofs.debug and obj_dofs.release.
+#
+EXPAND_INSTANTIATIONS(obj_dofs "${inst_in_files}")
+
+
+
+
+ Later, all object targets are collected in
+ ./source/CMakeLists.txt
to define the actual debug and
+ releases libraries. For further details, see
+ ./source/CMakelists.txt
and
+ ./cmake/macros/macro_deal_ii_add_library.cmake
.
+
+
+
+./cmake/config/CMakeLists.txt
+
+
+ The final bits of configuration happens in
+ ./cmake/config/CMakeLists.txt
where the templates for
+ the project configuration deal.IIConfig.cmake
and the
+ compatibility file Make.global_options
get expanded.
+ Furthermore, the configuration for the template expansion mechanism
+ resides under ./cmake/config/template_arguments.in
.
+
+
+
+
+ The deal.II Authors
+ $Date$
+
+
-
- ./source/CMakeLists.txt
-
-
- All parts of the library are organized into logical object libraries
- with their respective sources lying under
- ./source/<foo>
, or
- ./bundled/<foo>/<...>
. The actual setup of
- an object library happens within that subdirectories with the help of
- two macros:
-
-
- #
- # Glob for all header files associated with the object target:
- # As this list is only for cosmetic reasons, so that associated header
- # files show up in IDEs, we don't manage an explicit list (with the
- # trade-off to have to run "make rebuild_cache" when a new header file
- # emerges...)
- #
- FILE(GLOB _header
- ${CMAKE_SOURCE_DIR}/include/deal.II/dofs/*.h
- )
-
- #
- # A list of source files forming the object target:
- #
- SET(_src
- ...
- dof_tools.cc
- )
-
- #
- # A list of instantiations that must be expanded:
- #
- SET(_inst
- ...
- dof_tools.inst.in
- )
-
- #
- # The following macro will set up an obj_dofs.debug and
- # obj_dofs.release target with appropriate compile flags and
- # definitions for a simultaneous build of debug and release library.
- # Furthermore, the object name will be stored in
- # ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/deal_ii_objects_(debug/release)
- # so that it is available in global scope.
- #
- # Header files and instatiation files (${_header}, ${_inst}) are added
- # for cosmetic reasons, so that they show up in IDEs.
- #
- DEAL_II_ADD_LIBRARY(obj_dofs OBJECT ${_src} ${_header} ${_inst})
-
- #
- # This macro will set up an obj_dofs.inst target for expanding all
- # files listed in ${inst_in_files}. Appropriate target dependencies
- # will be added to obj_dofs.debug and obj_dofs.release.
- #
- EXPAND_INSTANTIATIONS(obj_dofs "${inst_in_files}")
-
-
-
-
- Later, all object targets are collected in
- ./source/CMakeLists.txt
to define the actual debug and
- releases libraries. For further details, see
- ./source/CMakelists.txt
and
- ./cmake/macros/macro_deal_ii_add_library.cmake
.
-
-
-
- ./cmake/config/CMakeLists.txt
-
-
- The final bits of configuration happens in
- ./cmake/config/CMakeLists.txt
where the templates for
- the project configuration deal.IIConfig.cmake
and the
- compatibility file Make.global_options
get expanded.
- Furthermore, the configuration for the template expansion mechanism
- resides under ./cmake/config/template_arguments.in
.
-
-
-
-
- The deal.II Authors
- $Date$
-
-
-
-