set(_log_summary "${CMAKE_BINARY_DIR}/summary.log")
file(REMOVE ${_log_detailed} ${_log_summary})
-macro(_both)
+function(_both)
# Write to both log files:
file(APPEND ${_log_detailed} "${ARGN}")
file(APPEND ${_log_summary} "${ARGN}")
-endmacro()
+endfunction()
-macro(_detailed)
+function(_detailed)
# Only write to detailed.log:
file(APPEND ${_log_detailed} "${ARGN}")
-endmacro()
+endfunction()
-macro(_summary)
+function(_summary)
# Only write to summary.log:
file(APPEND ${_log_summary} "${ARGN}")
-endmacro()
+endfunction()
+
+function(_print_target _target)
+ print_target_properties(${_target} _messages)
+ foreach(_message ${_messages})
+ _detailed("# ${_message}\n")
+ endforeach()
+endfunction()
_both(
"###
# ${CMAKE_CXX_COMPILER}
"
)
+if(CMAKE_C_COMPILER_WORKS)
+ _detailed("# CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}\n")
+endif()
+if(CMAKE_Fortran_COMPILER_WORKS)
+ _detailed("# CMAKE_Fortran_COMPILER: ${CMAKE_Fortran_COMPILER}\n")
+endif()
+_detailed("# CMAKE_GENERATOR: ${CMAKE_GENERATOR}\n")
+
if(DEAL_II_HAVE_CXX20)
_both("# C++ language standard: C++20\n")
elseif(DEAL_II_HAVE_CXX17)
_both("# C++ language standard: C++14\n")
endif()
-if(CMAKE_C_COMPILER_WORKS)
- _detailed("# CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}\n")
+_both("# Vectorization level: ${DEAL_II_VECTORIZATION_WIDTH_IN_BITS} bit")
+set(_instructions)
+if(DEAL_II_HAVE_SSE2)
+ list(APPEND _instructions "sse2")
endif()
-if(CMAKE_Fortran_COMPILER_WORKS)
- _detailed("# CMAKE_Fortran_COMPILER: ${CMAKE_Fortran_COMPILER}\n")
+if(DEAL_II_HAVE_AVX)
+ list(APPEND _instructions "avx2")
+endif()
+if(DEAL_II_HAVE_AVX512)
+ list(APPEND _instructions "avx512*")
+endif()
+if(DEAL_II_HAVE_ALTIVEC)
+ list(APPEND _instructions "altivec")
+endif()
+if(NOT "${_instructions}" STREQUAL "")
+ to_string(_string ${_instructions})
+ _both(" (${_string})\n")
endif()
-_detailed("# CMAKE_GENERATOR: ${CMAKE_GENERATOR}\n")
if(CMAKE_CROSSCOMPILING)
_both(
_both("#\n")
-_detailed(
-"# Base configuration:
-# DEAL_II_CXX_FLAGS: ${DEAL_II_CXX_FLAGS}
-"
- )
+_detailed("# Exported compiler and linker flags:\n")
+_detailed("# DEAL_II_CXX_FLAGS: ${DEAL_II_CXX_FLAGS}\n")
if(CMAKE_BUILD_TYPE MATCHES "Release")
_detailed("# DEAL_II_CXX_FLAGS_RELEASE: ${DEAL_II_CXX_FLAGS_RELEASE}\n")
endif()
_detailed("# DEAL_II_LINKER_FLAGS_DEBUG: ${DEAL_II_LINKER_FLAGS_DEBUG}\n")
endif()
-_detailed("# DEAL_II_DEFINITIONS: ${DEAL_II_DEFINITIONS}\n")
-if(CMAKE_BUILD_TYPE MATCHES "Release")
- _detailed("# DEAL_II_DEFINITIONS_RELEASE: ${DEAL_II_DEFINITIONS_RELEASE}\n")
-endif()
-if(CMAKE_BUILD_TYPE MATCHES "Debug")
- _detailed("# DEAL_II_DEFINITIONS_DEBUG: ${DEAL_II_DEFINITIONS_DEBUG}\n")
-endif()
-
-_detailed("# DEAL_II_INCLUDE_DIRS ${DEAL_II_INCLUDE_DIRS}\n")
-
-_detailed("# DEAL_II_LIBRARIES: ${DEAL_II_LIBRARIES}\n")
-if(CMAKE_BUILD_TYPE MATCHES "Release")
- _detailed("# DEAL_II_LIBRARIES_RELEASE: ${DEAL_II_LIBRARIES_RELEASE}\n")
-endif()
-if(CMAKE_BUILD_TYPE MATCHES "Debug")
- _detailed("# DEAL_II_LIBRARIES_DEBUG: ${DEAL_II_LIBRARIES_DEBUG}\n")
-endif()
-
-_detailed("# DEAL_II_TARGETS: ${DEAL_II_TARGETS}\n")
-if(CMAKE_BUILD_TYPE MATCHES "Release")
- _detailed("# DEAL_II_TARGETS_RELEASE: ${DEAL_II_TARGETS_RELEASE}\n")
-endif()
-if(CMAKE_BUILD_TYPE MATCHES "Debug")
- _detailed("# DEAL_II_TARGETS_DEBUG: ${DEAL_II_TARGETS_DEBUG}\n")
-endif()
-
-_detailed("# DEAL_II_VECTORIZATION_WIDTH_IN_BITS: ${DEAL_II_VECTORIZATION_WIDTH_IN_BITS}\n")
-
-if(DEAL_II_HAVE_CXX20)
- _detailed("# DEAL_II_HAVE_CXX20\n")
-elseif(DEAL_II_HAVE_CXX17)
- _detailed("# DEAL_II_HAVE_CXX17\n")
-elseif(DEAL_II_HAVE_CXX14)
- _detailed("# DEAL_II_HAVE_CXX14\n")
-endif()
-
+_detailed("# Library targets:\n")
+foreach(_build ${DEAL_II_BUILD_TYPES})
+ string(TOLOWER "${_build}" _build_lowercase)
+ _detailed("#\n")
+ _print_target(${DEAL_II_NAMESPACE}_${_build_lowercase})
+endforeach()
_detailed("#\n")
_both("# Configured Features (")
endif()
_both("DEAL_II_ALLOW_AUTODETECTION = ${DEAL_II_ALLOW_AUTODETECTION}):\n")
-
set(_deal_ii_features_sorted ${DEAL_II_FEATURES})
list(SORT _deal_ii_features_sorted)
foreach(_feature ${_deal_ii_features_sorted})
endif()
#
- # Print out version number:
+ # Print some non interface target related configuration values:
#
- if(DEFINED ${_feature}_VERSION)
- _detailed("# ${_feature}_VERSION = ${${_feature}_VERSION}\n")
- endif()
+
+ foreach(_var
+ EXECUTABLE VERSION DIR C_COMPILER CXX_COMPILER Fortran_COMPILER
+ WITH_64BIT_BLAS_INDICES
+ )
+ if(NOT "${${_feature}_${_var}}" STREQUAL "")
+ _detailed("# ${_feature}_${_var} = ${${_feature}_${_var}}\n")
+ endif()
+ endforeach()
#
- # Special version numbers:
+ # Special information:
#
- if(_feature MATCHES "THREADS" AND DEFINED TBB_VERSION)
- _detailed("# TBB_VERSION = ${TBB_VERSION}\n")
+
+ if(_feature MATCHES "MPI")
+ _detailed("# MPI_CXX_VERSION = ${MPI_CXX_VERSION}\n")
endif()
if(_feature MATCHES "KOKKOS")
_detailed("# KOKKOS_BACKENDS = ${Kokkos_DEVICES}\n")
_detailed("# KOKKOS_ARCHITECTURES = ${Kokkos_ARCH}\n")
endif()
-
- #
- # Print out ${_feature}_DIR:
- #
- if(NOT "${${_feature}_DIR}" STREQUAL "")
- _detailed("# ${_feature}_DIR = ${${_feature}_DIR}\n")
- endif()
-
- if(NOT "${${_feature}_SPLIT_CONFIGURATION}" STREQUAL "")
- _detailed("# ${_feature}_SPLIT_CONFIGURATION = ${${_feature}_SPLIT_CONFIGURATION}\n")
- endif()
-
- #
- # Print the feature configuration:
- #
- foreach(_var2
- C_COMPILER CXX_COMPILER Fortran_COMPILER WITH_64BIT_BLAS_INDICES
- ${DEAL_II_STRING_SUFFIXES} ${DEAL_II_LIST_SUFFIXES}
- )
- if(DEFINED ${_feature}_${_var2})
- _detailed("# ${_feature}_${_var2} = ${${_feature}_${_var2}}\n")
- endif()
- endforeach()
else()
# FEATURE is disabled
_both("# ( ${_var} = ${${_var}} )\n")
endif()
endforeach()
-_both(
- "#\n# Component configuration:\n"
- )
+_detailed("#\n# Interface targets:\n")
+
+foreach(_feature ${_deal_ii_features_sorted})
+ if(${DEAL_II_WITH_${_feature}})
+ string(TOLOWER ${_feature} _feature_lowercase)
+ if(${${_feature}_SPLIT_CONFIGURATION})
+ foreach(_build ${DEAL_II_BUILD_TYPE})
+ string(TOLOWER ${_build} _build_lowercase)
+ if(TARGET interface_${_feature_lowercase}_${_build_lowercase})
+ _detailed("#\n")
+ _print_target(interface_${_feature_lowercase}_${_build_lowercase})
+ endif()
+ endforeach()
+ else()
+ if(TARGET interface_${_feature_lowercase})
+ _detailed("#\n")
+ _print_target(interface_${_feature_lowercase})
+ endif()
+ endif()
+ endif()
+endforeach()
+
+_both("#\n# Component configuration:\n")
foreach(_component ${DEAL_II_COMPONENTS})
set(_var DEAL_II_COMPONENT_${_component})