SET(${var} FALSE)
ENDIF()
- #
- # Check that we can link with the full MPI interface:
- #
-
- SET(_linker_flags "${DEAL_II_LINKER_FLAGS}")
-
- CHECK_COMPILER_SETUP(
- "${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_SAVED} ${MPI_CXX_FLAGS}"
- "${_linker_flags} ${DEAL_II_LINKER_FLAGS_SAVED} ${MPI_LINKER_FLAGS}"
- MPI_WORKING_COMPILER
- ${DEAL_II_LIBRARIES} ${MPI_LIBRARIES}
- )
-
- IF(NOT MPI_WORKING_COMPILER AND DEAL_II_COMPILER_HAS_FUSE_LD_LLD)
- MESSAGE(STATUS
- "Unable to compile a simple test program. "
- "Trying to drop \"-fuse-ld=lld\" from the linker flags."
- )
-
- IF(DEAL_II_COMPILER_HAS_FUSE_LD_GOLD)
- STRING(REPLACE "-fuse-ld=lld" "-fuse-ld=gold"
- _linker_flags "${_linker_flags}"
- )
- ELSE()
- STRING(REPLACE "-fuse-ld=lld" ""
- _linker_flags "${_linker_flags}"
- )
- ENDIF()
-
- SET(DEAL_II_COMPILER_HAS_FUSE_LD_LLD FALSE CACHE INTERNAL "" FORCE)
- SET(DEAL_II_COMPILER_HAS_FUSE_LD_LLD FALSE)
-
- CHECK_COMPILER_SETUP(
- "${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_SAVED} ${MPI_CXX_FLAGS}"
- "${_linker_flags} ${DEAL_II_LINKER_FLAGS_SAVED} ${MPI_LINKER_FLAGS}"
- MPI_WORKING_COMPILER
- ${DEAL_II_LIBRARIES} ${MPI_LIBRARIES}
- )
- ENDIF()
-
- IF(NOT MPI_WORKING_COMPILER AND DEAL_II_COMPILER_HAS_FUSE_LD_GOLD)
- MESSAGE(STATUS
- "Unable to compile a simple test program. "
- "Trying to drop \"-fuse-ld=gold\" from the linker flags."
- )
-
- STRING(REPLACE "-fuse-ld=gold" ""
- _linker_flags "${_linker_flags}"
- )
-
- SET(DEAL_II_COMPILER_HAS_FUSE_LD_GOLD FALSE CACHE INTERNAL "" FORCE)
- SET(DEAL_II_COMPILER_HAS_FUSE_LD_GOLD FALSE)
-
- CHECK_COMPILER_SETUP(
- "${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_SAVED} ${MPI_CXX_FLAGS}"
- "${_linker_flags} ${DEAL_II_LINKER_FLAGS_SAVED} ${MPI_LINKER_FLAGS}"
- MPI_WORKING_COMPILER
- ${DEAL_II_LIBRARIES} ${MPI_LIBRARIES}
- )
- ENDIF()
-
- IF(MPI_WORKING_COMPILER)
- SET(DEAL_II_LINKER_FLAGS "${_linker_flags}")
- ELSE()
- MESSAGE(STATUS "Could not find a sufficient MPI installation: "
- "Unable to compile a simple test program."
- )
- SET(MPI_ADDITIONAL_ERROR_STRING
- ${MPI_ADDITIONAL_ERROR_STRING}
- "Unable to compile and link a simple test program with your MPI installation. \n"
- )
- SET(${var} FALSE)
- ENDIF()
-
ENDIF()
ENDMACRO()
#
FOREACH(build ${DEAL_II_BUILD_TYPES})
- CHECK_COMPILER_SETUP(
- "${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_${build}}"
- "${DEAL_II_LINKER_FLAGS} ${DEAL_II_LINKER_FLAGS_${build}}"
- DEAL_II_HAVE_USABLE_FLAGS_${build}
- ${DEAL_II_LIBRARIES} ${DEAL_II_LIBRARIES_${build}}
- )
+
+ MACRO(_check_linker_flags)
+ CHECK_COMPILER_SETUP(
+ "${DEAL_II_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_${build}}"
+ "${DEAL_II_LINKER_FLAGS} ${DEAL_II_LINKER_FLAGS_${build}}"
+ DEAL_II_HAVE_USABLE_FLAGS_${build}
+ ${DEAL_II_LIBRARIES} ${DEAL_II_LIBRARIES_${build}}
+ )
+ ENDMACRO()
+
+ MACRO(_drop_linker_flag _linker_flag _replacement_flag _variable)
+ MESSAGE(STATUS
+ "Unable to compile a simple test program. "
+ "Trying to drop \"${_linker_flag}\" from the linker flags."
+ )
+ STRING(REPLACE "${_linker_flag}" "${_replacement_flag}"
+ DEAL_II_LINKER_FLAGS "${DEAL_II_LINKER_FLAGS}"
+ )
+ STRING(REPLACE "${_linker_flag}" "${_replacement_flag}"
+ DEAL_II_LINKER_FLAGS_${build} "${DEAL_II_LINKER_FLAGS_${_build}}"
+ )
+ SET(${_variable} FALSE CACHE INTERNAL "" FORCE)
+ SET(${_variable} FALSE)
+ ENDMACRO()
+
+ _check_linker_flags()
+
+ IF(NOT DEAL_II_HAVE_USABLE_FLAGS_${build} AND DEAL_II_COMPILER_HAS_FUSE_LD_LLD)
+ SET(_replacement "")
+ IF(DEAL_II_COMPILER_HAS_FUSE_LD_GOLD)
+ SET(_replacement "-fuse-ld=gold")
+ ENDIF()
+ _drop_linker_flag(
+ "-fuse-ld=lld" ${_replacement}
+ DEAL_II_COMPILER_HAS_FUSE_LD_LLD
+ )
+ _check_linker_flags()
+ ENDIF()
+
+ IF(NOT DEAL_II_HAVE_USABLE_FLAGS_${build} AND DEAL_II_COMPILER_HAS_FUSE_LD_GOLD)
+ _drop_linker_flag(
+ "-fuse-ld=gold" ""
+ DEAL_II_COMPILER_HAS_FUSE_LD_GOLD
+ )
+ _check_linker_flags()
+ ENDIF()
IF(NOT DEAL_II_HAVE_USABLE_FLAGS_${build})
MESSAGE(FATAL_ERROR "