summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CMakeDetermineCompilerABI.cmake2
-rw-r--r--Modules/FindMPI.cmake40
-rw-r--r--Modules/FindXercesC.cmake (renamed from Modules/FindXerces.cmake)66
3 files changed, 53 insertions, 55 deletions
diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake
index 4bc42dd..344ae47 100644
--- a/Modules/CMakeDetermineCompilerABI.cmake
+++ b/Modules/CMakeDetermineCompilerABI.cmake
@@ -26,7 +26,7 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src)
set(BIN "${CMAKE_PLATFORM_INFO_DIR}/CMakeDetermineCompilerABI_${lang}.bin")
set(CMAKE_FLAGS )
if(DEFINED CMAKE_${lang}_VERBOSE_FLAG)
- set(CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}")
+ set(CMAKE_FLAGS "-DEXE_LINKER_FLAGS=${CMAKE_${lang}_VERBOSE_FLAG}")
endif()
if(NOT "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xMSVC")
# Avoid adding our own platform standard libraries for compilers
diff --git a/Modules/FindMPI.cmake b/Modules/FindMPI.cmake
index ba4ea5b..6f6dcf3 100644
--- a/Modules/FindMPI.cmake
+++ b/Modules/FindMPI.cmake
@@ -188,6 +188,21 @@ foreach(SystemPrefixDir ${CMAKE_SYSTEM_PREFIX_PATH})
endforeach()
endforeach()
+function (_mpi_check_compiler compiler options cmdvar resvar)
+ execute_process(
+ COMMAND "${compiler}" ${options}
+ OUTPUT_VARIABLE cmdline OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_VARIABLE cmdline ERROR_STRIP_TRAILING_WHITESPACE
+ RESULT_VARIABLE success)
+ # Intel MPI 5.0.1 will return a zero return code even when the
+ # argument to the MPI compiler wrapper is unknown. Attempt to
+ # catch this case.
+ if("${cmdline}" MATCHES "undefined reference")
+ set(success 255 )
+ endif()
+ set(${cmdvar} "${cmdline}" PARENT_SCOPE)
+ set(${resvar} "${success}" PARENT_SCOPE)
+endfunction()
#
# interrogate_mpi_compiler(lang try_libs)
@@ -220,12 +235,7 @@ function (interrogate_mpi_compiler lang try_libs)
if (MPI_${lang}_COMPILER)
# Check whether the -showme:compile option works. This indicates that we have either OpenMPI
# or a newer version of LAM-MPI, and implies that -showme:link will also work.
- execute_process(
- COMMAND ${MPI_${lang}_COMPILER} -showme:compile
- OUTPUT_VARIABLE MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE MPI_COMPILER_RETURN)
-
+ _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-showme:compile" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
if (MPI_COMPILER_RETURN EQUAL 0)
# If we appear to have -showme:compile, then we should
# also have -showme:link. Try it.
@@ -257,20 +267,12 @@ function (interrogate_mpi_compiler lang try_libs)
# Older versions of LAM-MPI have "-showme". Try to find that.
if (NOT MPI_COMPILER_RETURN EQUAL 0)
- execute_process(
- COMMAND ${MPI_${lang}_COMPILER} -showme
- OUTPUT_VARIABLE MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE MPI_COMPILER_RETURN)
+ _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-showme" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
endif()
# MVAPICH uses -compile-info and -link-info. Try them.
if (NOT MPI_COMPILER_RETURN EQUAL 0)
- execute_process(
- COMMAND ${MPI_${lang}_COMPILER} -compile-info
- OUTPUT_VARIABLE MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE MPI_COMPILER_RETURN)
+ _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-compile-info" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
# If we have compile-info, also have link-info.
if (MPI_COMPILER_RETURN EQUAL 0)
@@ -290,11 +292,7 @@ function (interrogate_mpi_compiler lang try_libs)
# MPICH just uses "-show". Try it.
if (NOT MPI_COMPILER_RETURN EQUAL 0)
- execute_process(
- COMMAND ${MPI_${lang}_COMPILER} -show
- OUTPUT_VARIABLE MPI_COMPILE_CMDLINE OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_VARIABLE MPI_COMPILE_CMDLINE ERROR_STRIP_TRAILING_WHITESPACE
- RESULT_VARIABLE MPI_COMPILER_RETURN)
+ _mpi_check_compiler("${MPI_${lang}_COMPILER}" "-show" MPI_COMPILE_CMDLINE MPI_COMPILER_RETURN)
endif()
if (MPI_COMPILER_RETURN EQUAL 0)
diff --git a/Modules/FindXerces.cmake b/Modules/FindXercesC.cmake
index 6c6007a..5a8ea9d 100644
--- a/Modules/FindXerces.cmake
+++ b/Modules/FindXercesC.cmake
@@ -1,21 +1,21 @@
#.rst:
-# FindXerces
-# ----------
+# FindXercesC
+# -----------
#
# Find the Apache Xerces-C++ validating XML parser headers and libraries.
#
# This module reports information about the Xerces installation in
# several variables. General variables::
#
-# Xerces_FOUND - true if the Xerces headers and libraries were found
-# Xerces_VERSION - Xerces release version
-# Xerces_INCLUDE_DIRS - the directory containing the Xerces headers
-# Xerces_LIBRARIES - Xerces libraries to be linked
+# XercesC_FOUND - true if the Xerces headers and libraries were found
+# XercesC_VERSION - Xerces release version
+# XercesC_INCLUDE_DIRS - the directory containing the Xerces headers
+# XercesC_LIBRARIES - Xerces libraries to be linked
#
# The following cache variables may also be set::
#
-# Xerces_INCLUDE_DIR - the directory containing the Xerces headers
-# Xerces_LIBRARY - the Xerces library
+# XercesC_INCLUDE_DIR - the directory containing the Xerces headers
+# XercesC_LIBRARY - the Xerces library
# Written by Roger Leigh <rleigh@codelibre.net>
@@ -32,54 +32,54 @@
# (To distribute this file outside of CMake, substitute the full
# License text for the above reference.)
-function(_Xerces_GET_VERSION version_hdr)
+function(_XercesC_GET_VERSION version_hdr)
file(STRINGS ${version_hdr} _contents REGEX "^[ \t]*#define XERCES_VERSION_.*")
if(_contents)
- string(REGEX REPLACE ".*#define XERCES_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" Xerces_MAJOR "${_contents}")
- string(REGEX REPLACE ".*#define XERCES_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" Xerces_MINOR "${_contents}")
- string(REGEX REPLACE ".*#define XERCES_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" Xerces_PATCH "${_contents}")
+ string(REGEX REPLACE ".*#define XERCES_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" XercesC_MAJOR "${_contents}")
+ string(REGEX REPLACE ".*#define XERCES_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" XercesC_MINOR "${_contents}")
+ string(REGEX REPLACE ".*#define XERCES_VERSION_REVISION[ \t]+([0-9]+).*" "\\1" XercesC_PATCH "${_contents}")
- if(NOT Xerces_MAJOR MATCHES "^[0-9]+$")
+ if(NOT XercesC_MAJOR MATCHES "^[0-9]+$")
message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MAJOR!")
endif()
- if(NOT Xerces_MINOR MATCHES "^[0-9]+$")
+ if(NOT XercesC_MINOR MATCHES "^[0-9]+$")
message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_MINOR!")
endif()
- if(NOT Xerces_PATCH MATCHES "^[0-9]+$")
+ if(NOT XercesC_PATCH MATCHES "^[0-9]+$")
message(FATAL_ERROR "Version parsing failed for XERCES_VERSION_REVISION!")
endif()
- set(Xerces_VERSION "${Xerces_MAJOR}.${Xerces_MINOR}.${Xerces_PATCH}" PARENT_SCOPE)
+ set(XercesC_VERSION "${XercesC_MAJOR}.${XercesC_MINOR}.${XercesC_PATCH}" PARENT_SCOPE)
else()
message(FATAL_ERROR "Include file ${version_hdr} does not exist or does not contain expected version information")
endif()
endfunction()
# Find include directory
-find_path(Xerces_INCLUDE_DIR
+find_path(XercesC_INCLUDE_DIR
NAMES "xercesc/util/PlatformUtils.hpp"
DOC "Xerces-C++ include directory")
-mark_as_advanced(Xerces_INCLUDE_DIR)
+mark_as_advanced(XercesC_INCLUDE_DIR)
-# Find all Xerces libraries
-find_library(Xerces_LIBRARY "xerces-c"
+# Find all XercesC libraries
+find_library(XercesC_LIBRARY "xerces-c"
DOC "Xerces-C++ libraries")
-mark_as_advanced(Xerces_LIBRARY)
+mark_as_advanced(XercesC_LIBRARY)
-if(Xerces_INCLUDE_DIR)
- _Xerces_GET_VERSION("${Xerces_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp")
+if(XercesC_INCLUDE_DIR)
+ _XercesC_GET_VERSION("${XercesC_INCLUDE_DIR}/xercesc/util/XercesVersion.hpp")
endif()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(Xerces
- FOUND_VAR Xerces_FOUND
- REQUIRED_VARS Xerces_LIBRARY
- Xerces_INCLUDE_DIR
- Xerces_VERSION
- VERSION_VAR Xerces_VERSION
- FAIL_MESSAGE "Failed to find Xerces")
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(XercesC
+ FOUND_VAR XercesC_FOUND
+ REQUIRED_VARS XercesC_LIBRARY
+ XercesC_INCLUDE_DIR
+ XercesC_VERSION
+ VERSION_VAR XercesC_VERSION
+ FAIL_MESSAGE "Failed to find XercesC")
-if(Xerces_FOUND)
- set(Xerces_INCLUDE_DIRS "${Xerces_INCLUDE_DIR}")
- set(Xerces_LIBRARIES "${Xerces_LIBRARY}")
+if(XercesC_FOUND)
+ set(XercesC_INCLUDE_DIRS "${XercesC_INCLUDE_DIR}")
+ set(XercesC_LIBRARIES "${XercesC_LIBRARY}")
endif()