## ---------------------------------------------------------------------
-## ##
-# The cmake build system for the deal.II project #
-# #
-# See doc/readme.html and doc/development/cmake.html for further #
-# details on how to use the cmake build system of deal.II. #
-## ##
+## ##
+# The cmake build system for the deal.II project #
+# #
+# See doc/readme.html and doc/development/cmake.html for further #
+# details on how to use the cmake build system of deal.II. #
+## ##
-###########################################################################
-# #
-# Configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Configuration: #
+# #
+########################################################################
#
# General configuration for cmake:
INCLUDE(setup_finalize)
-###########################################################################
-# #
-# Compilation and installation: #
-# #
-###########################################################################
+########################################################################
+# #
+# Compilation and installation: #
+# #
+########################################################################
MESSAGE(STATUS "")
MESSAGE(STATUS "Configuring done. Proceed to target definitions now.")
##
## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Check for various compiler features: #
-# #
-###########################################################################
+########################################################################
+# #
+# Check for various compiler features: #
+# #
+########################################################################
#
# This file sets up:
## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Platform and CPU specific tests: #
-# #
-###########################################################################
+########################################################################
+# #
+# Platform and CPU specific tests: #
+# #
+########################################################################
#
# This file sets up
#
-###########################################################################
-# #
-# C++11 Support: #
-# #
-###########################################################################
+########################################################################
+# #
+# C++11 Support: #
+# #
+########################################################################
#
# See if there is a compiler flag to enable C++11 features
ENDIF()
-###########################################################################
-# #
-# Check for various C++ features: #
-# #
-###########################################################################
+########################################################################
+# #
+# Check for various C++ features: #
+# #
+########################################################################
CHECK_CXX_SOURCE_COMPILES(
"
#
-###########################################################################
-# #
-# POSIX and Linux specific tests: #
-# #
-###########################################################################
+########################################################################
+# #
+# POSIX and Linux specific tests: #
+# #
+########################################################################
#
# Check for various posix (and linux) specific header files and symbols
ENDIF()
-###########################################################################
-# #
-# Mac OSX specific setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Mac OSX specific setup: #
+# #
+########################################################################
IF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
#
-###########################################################################
-# #
-# Windows and CYGWIN specific setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Windows and CYGWIN specific setup: #
+# #
+########################################################################
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
#
##
## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Check for various compiler bugs: #
-# #
-###########################################################################
+########################################################################
+# #
+# Check for various compiler bugs: #
+# #
+########################################################################
#
ENDIF()
-#
-# Some gcc compiler versions have a problem when using an unsigned count
-# in the std::advance function. Unfortunately, this also happens
-# occasionally from within the standard library, so we can't prevent the
-# warning messages. Since this is annoying, switch of the flag -W which
-# causes this.
-#
-# - Matthias Maier, rewritten 2012
-#
-
-# TODO: We use the mpi.h header file for this check. We should test this
-# bug directly...
-CHECK_INCLUDE_FILE_CXX("mpi.h" HAVE_MPI_H)
-
-IF(HAVE_MPI_H)
- PUSH_TEST_FLAG("-Wunused-parameter")
- PUSH_TEST_FLAG("-Werror")
- CHECK_CXX_COMPILER_BUG(
- "
- #include <mpi.h>
- int main() { return 0; }
- "
- DEAL_II_ADVANCE_WARNING_BUG)
- POP_TEST_FLAG()
- POP_TEST_FLAG()
-
- IF(DEAL_II_ADVANCE_WARNING_BUG)
- ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-Wno-unused-parameter")
- ENDIF()
-ENDIF()
-
-
#
# In some cases, we would like to name partial specializations
# as friends. However, the standard forbids us to do so. But
)
-###########################################################################
-# #
-# Setup and install the convenience macros: #
-# #
-###########################################################################
+########################################################################
+# #
+# Setup and install the convenience macros: #
+# #
+########################################################################
INSTALL(FILES
${CMAKE_SOURCE_DIR}/cmake/macros/macro_deal_ii_initialize_cached_variables.cmake
)
-###########################################################################
-# #
-# Configure and install the cmake project configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Configure and install the cmake project configuration: #
+# #
+########################################################################
#
# Strip -Wno-deprecated from CMAKE_CXX_FLAGS so that deprecation warnings
)
-###########################################################################
-# #
-# Configure and install the old Makefile configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Configure and install the old Makefile configuration: #
+# #
+########################################################################
IF(DEAL_II_COMPONENT_COMPAT_FILES)
#
-###########################################################################
-# #
-# Helper Macros: #
-# #
-###########################################################################
+########################################################################
+# #
+# Helper Macros: #
+# #
+########################################################################
#
# Some black magic to have substitution in command names:
ENDMACRO()
-###########################################################################
-# #
-# CONFIGURE_FEATURE: #
-# #
-###########################################################################
+########################################################################
+# #
+# CONFIGURE_FEATURE: #
+# #
+########################################################################
MACRO(CONFIGURE_FEATURE _feature)
#
#
-###########################################################################
-# #
-# General configuration options: #
-# #
-###########################################################################
+########################################################################
+# #
+# General configuration options: #
+# #
+########################################################################
If(DEAL_II_HAVE_BUNDLED_DIRECTORY)
OPTION(DEAL_II_ALLOW_BUNDLED
ENDIF()
-###########################################################################
-# #
-# Compilation and linking: #
-# #
-###########################################################################
+########################################################################
+# #
+# Compilation and linking: #
+# #
+########################################################################
#
# Setup CMAKE_BUILD_TYPE:
UNSET(ENV{LDFLAGS})
-###########################################################################
-# #
-# Miscellaneous setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Miscellaneous setup: #
+# #
+########################################################################
GET_CMAKE_PROPERTY(_res VARIABLES)
FOREACH(_var ${_res})
#
-###########################################################################
-# #
-# Sanity checks: #
-# #
-###########################################################################
+########################################################################
+# #
+# Sanity checks: #
+# #
+########################################################################
#
# Check the user provided CXX flags:
ENDIF()
-###########################################################################
-# #
-# Compiler setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Compiler setup: #
+# #
+########################################################################
IF(DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS)
#
#
-###########################################################################
-# #
-# Custom targets for library, documentation and compat_files components: #
-# #
-###########################################################################
+########################################################################
+# #
+# Custom targets for library, documentation and compat_files comp.: #
+# #
+########################################################################
ADD_CUSTOM_TARGET(library)
FOREACH(_build ${DEAL_II_BUILD_TYPES})
# *) Can be overwritten by the command line via -D<...>
#
-###########################################################################
-# #
-# General information about deal.II: #
-# #
-###########################################################################
+########################################################################
+# #
+# General information about deal.II: #
+# #
+########################################################################
SET_IF_EMPTY(DEAL_II_PACKAGE_NAME "deal.II")
SET(DEAL_II_VERSION ${DEAL_II_VERSION_MAJOR}.${DEAL_II_VERSION_MINOR})
-###########################################################################
-# #
-# Information about paths, install locations and names: #
-# #
-###########################################################################
+########################################################################
+# #
+# Information about paths, install locations and names: #
+# #
+########################################################################
SET(DEAL_II_PROJECT_CONFIG_NAME "${DEAL_II_PACKAGE_NAME}")
ENDIF()
-###########################################################################
-# #
-# Cleanup and setup that has to happen after the call to PROJECT(): #
-# #
-###########################################################################
+########################################################################
+# #
+# Cleanup and setup that has to happen after the call to PROJECT(): #
+# #
+########################################################################
#
# Cleanup some files used for storing the names of all object targets that
## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Finalize the configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Finalize the configuration: #
+# #
+########################################################################
#
# Hide some cmake specific cached variables. This is annoying...
ENDFOREACH()
-###########################################################################
-# #
-# And write a nice configuration summary to file: #
-# #
-###########################################################################
+########################################################################
+# #
+# And write a nice configuration summary to file: #
+# #
+########################################################################
SET(_log_detailed "${CMAKE_BINARY_DIR}/detailed.log")
SET(_log_summary "${CMAKE_BINARY_DIR}/summary.log")