Make the compiler wrappers work correctly for MinGW build.
This commit was SVN r25051.
Этот коммит содержится в:
родитель
3d96497581
Коммит
20ee92c16e
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart,
|
# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart,
|
||||||
# University of Stuttgart. All rights reserved.
|
# University of Stuttgart. All rights reserved.
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
@ -28,7 +28,7 @@ IF(MSVC)
|
|||||||
ELSE(CMAKE_CL_64)
|
ELSE(CMAKE_CL_64)
|
||||||
SET(COMPILER_TYPE "win32")
|
SET(COMPILER_TYPE "win32")
|
||||||
ENDIF(CMAKE_CL_64)
|
ENDIF(CMAKE_CL_64)
|
||||||
ELSEIF(NOT "$ENV{MSYSTEM}" STREQUAL "")
|
ELSEIF("${CMAKE_GENERATOR}" STREQUAL "MinGW Makefiles")
|
||||||
SET(WINDOWS_MINGW TRUE CACHE INTERNAL "Windows MinGW env")
|
SET(WINDOWS_MINGW TRUE CACHE INTERNAL "Windows MinGW env")
|
||||||
ENDIF(MSVC)
|
ENDIF(MSVC)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# -*- cmake-script -*-
|
# -*- cmake-script -*-
|
||||||
#
|
#
|
||||||
# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart,
|
# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart,
|
||||||
# University of Stuttgart. All rights reserved.
|
# University of Stuttgart. All rights reserved.
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
@ -47,6 +47,9 @@ IF(NOT MINGW_CHECK_DONE)
|
|||||||
|
|
||||||
MESSAGE( STATUS "Start MinGW specific detection....")
|
MESSAGE( STATUS "Start MinGW specific detection....")
|
||||||
|
|
||||||
|
GET_FILENAME_COMPONENT(CC ${CMAKE_C_COMPILER} NAME)
|
||||||
|
GET_FILENAME_COMPONENT(CXX ${CMAKE_CXX_COMPILER} NAME)
|
||||||
|
|
||||||
# Default compiler settings.
|
# Default compiler settings.
|
||||||
SET(OMPI_C_OPTION_COMPILE "-c" CACHE INTERNAL
|
SET(OMPI_C_OPTION_COMPILE "-c" CACHE INTERNAL
|
||||||
"C compiler option for compiling without linking.")
|
"C compiler option for compiling without linking.")
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart,
|
# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart,
|
||||||
# University of Stuttgart. All rights reserved.
|
# University of Stuttgart. All rights reserved.
|
||||||
# Copyright (c) 2008 The University of Tennessee and The University
|
# Copyright (c) 2008 The University of Tennessee and The University
|
||||||
# of Tennessee Research Foundation. All rights
|
# of Tennessee Research Foundation. All rights
|
||||||
@ -127,7 +127,7 @@ SET_TARGET_PROPERTIES(libmpi PROPERTIES
|
|||||||
# Set compile flags for this target
|
# Set compile flags for this target
|
||||||
IF (BUILD_SHARED_LIBS)
|
IF (BUILD_SHARED_LIBS)
|
||||||
SET_TARGET_PROPERTIES(libmpi PROPERTIES
|
SET_TARGET_PROPERTIES(libmpi PROPERTIES
|
||||||
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}HAVE_CONFIG_H ${OMPI_C_DEF_PRE}OMPI_EXPORTS ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS ${OMPI_CXX_LAN_FLAG} PREFIX "" IMPORT_PREFIX """)
|
COMPILE_FLAGS "${OMPI_C_DEF_PRE}_USRDLL ${OMPI_C_DEF_PRE}HAVE_CONFIG_H ${OMPI_C_DEF_PRE}OMPI_EXPORTS ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS ${OMPI_CXX_LAN_FLAG}" PREFIX "" IMPORT_PREFIX "")
|
||||||
TARGET_LINK_LIBRARIES (libmpi ${OpenMPI_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event${CMAKE_DEBUG_POSTFIX}.lib
|
TARGET_LINK_LIBRARIES (libmpi ${OpenMPI_BINARY_DIR}/${CMAKE_CFG_INTDIR}/event${CMAKE_DEBUG_POSTFIX}.lib
|
||||||
libopen-rte Ws2_32.lib shlwapi.lib ${EXTRA_LINK_LIBRARIES})
|
libopen-rte Ws2_32.lib shlwapi.lib ${EXTRA_LINK_LIBRARIES})
|
||||||
ELSE (BUILD_SHARED_LIBS)
|
ELSE (BUILD_SHARED_LIBS)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2007-2010 High Performance Computing Center Stuttgart,
|
# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart,
|
||||||
# University of Stuttgart. All rights reserved.
|
# University of Stuttgart. All rights reserved.
|
||||||
# $COPYRIGHT$
|
# $COPYRIGHT$
|
||||||
#
|
#
|
||||||
@ -23,7 +23,7 @@ ENDIF(NOT OMPI_PROVIDE_MPI_FILE_INTERFACE)
|
|||||||
|
|
||||||
ADD_LIBRARY (libmpi_cxx ${CXX_SOURCE_FILES})
|
ADD_LIBRARY (libmpi_cxx ${CXX_SOURCE_FILES})
|
||||||
|
|
||||||
SET_TARGET_PROPERTIES (libmpi_cxx PROPERTIES LINKER_LANGUAGE CXX)
|
SET_TARGET_PROPERTIES (libmpi_cxx PROPERTIES LINKER_LANGUAGE CXX PREFIX "" IMPORT_PREFIX "")
|
||||||
|
|
||||||
# Set compile flags for this target
|
# Set compile flags for this target
|
||||||
IF (BUILD_SHARED_LIBS)
|
IF (BUILD_SHARED_LIBS)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2007-2009 High Performance Computing Center Stuttgart,
|
# Copyright (c) 2007-2011 High Performance Computing Center Stuttgart,
|
||||||
# University of Stuttgart. All rights reserved.
|
# University of Stuttgart. All rights reserved.
|
||||||
# Copyright (c) 2008 The University of Tennessee and The University
|
# Copyright (c) 2008 The University of Tennessee and The University
|
||||||
# of Tennessee Research Foundation. All rights
|
# of Tennessee Research Foundation. All rights
|
||||||
@ -23,12 +23,12 @@ MACRO(CONFIGURE_WRAPPER_DATA_FILE APP_NAME)
|
|||||||
SET(INPUT_PREFIX ${APP_NAME})
|
SET(INPUT_PREFIX ${APP_NAME})
|
||||||
ENDIF(${APP_NAME} STREQUAL "mpicxx")
|
ENDIF(${APP_NAME} STREQUAL "mpicxx")
|
||||||
|
|
||||||
FILE(READ ${OpenMPI_SOURCE_DIR}/ompi/tools/wrappers/${INPUT_PREFIX}-wrapper-data.txt.in FILE_STRING)
|
FILE(READ ${OpenMPI_SOURCE_DIR}/ompi/tools/wrappers/${INPUT_PREFIX}-wrapper-data.txt.in DATA_FILE)
|
||||||
STRING(REGEX REPLACE "-l[-a-zA-Z0-9_]+ " "" OUTPUT ${FILE_STRING})
|
STRING(REGEX REPLACE "-l[-a-zA-Z0-9_]+ " "" DATA_FILE ${DATA_FILE})
|
||||||
|
|
||||||
# create a temporary input file, for "write file" command only
|
# create a temporary input file, for "write file" command only
|
||||||
# replace the variables in the first level. :(
|
# replace the variables in the first level. :(
|
||||||
FILE(WRITE ${OMPI_BINARY_DIR}/tools/wrappers/${APP_NAME}-wrapper-data.txt.in "${OUTPUT}")
|
FILE(WRITE ${OMPI_BINARY_DIR}/tools/wrappers/${APP_NAME}-wrapper-data.txt.in "${DATA_FILE}")
|
||||||
|
|
||||||
CONFIGURE_FILE(${OMPI_BINARY_DIR}/tools/wrappers/${APP_NAME}-wrapper-data.txt.in
|
CONFIGURE_FILE(${OMPI_BINARY_DIR}/tools/wrappers/${APP_NAME}-wrapper-data.txt.in
|
||||||
${OMPI_BINARY_DIR}/tools/wrappers/${APP_NAME}${OMPI_EXE_DEBUG_POSTFIX}-wrapper-data.txt @ONLY)
|
${OMPI_BINARY_DIR}/tools/wrappers/${APP_NAME}${OMPI_EXE_DEBUG_POSTFIX}-wrapper-data.txt @ONLY)
|
||||||
@ -40,7 +40,9 @@ MACRO(CONFIGURE_WRAPPER_DATA_FILE APP_NAME)
|
|||||||
DESTINATION share/openmpi)
|
DESTINATION share/openmpi)
|
||||||
ENDMACRO()
|
ENDMACRO()
|
||||||
|
|
||||||
|
|
||||||
# select debug or release libraries at configure time
|
# select debug or release libraries at configure time
|
||||||
|
IF(WINDOWS_VS)
|
||||||
IF(OMPI_DEBUG_BUILD)
|
IF(OMPI_DEBUG_BUILD)
|
||||||
SET(OMPI_WRAPPER_BASE_LIBS
|
SET(OMPI_WRAPPER_BASE_LIBS
|
||||||
"libmpid.lib libopen-pald.lib libopen-rted.lib advapi32.lib Ws2_32.lib shlwapi.lib")
|
"libmpid.lib libopen-pald.lib libopen-rted.lib advapi32.lib Ws2_32.lib shlwapi.lib")
|
||||||
@ -48,6 +50,13 @@ ELSE(OMPI_DEBUG_BUILD)
|
|||||||
SET(OMPI_WRAPPER_BASE_LIBS
|
SET(OMPI_WRAPPER_BASE_LIBS
|
||||||
"libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib Ws2_32.lib shlwapi.lib")
|
"libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib Ws2_32.lib shlwapi.lib")
|
||||||
ENDIF(OMPI_DEBUG_BUILD)
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
|
ELSEIF(WINDOWS_MINGW)
|
||||||
|
IF(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_BASE_LIBS "-lmpid")
|
||||||
|
ELSE(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_BASE_LIBS "-lmpi")
|
||||||
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
|
ENDIF(WINDOWS_VS)
|
||||||
|
|
||||||
IF(BUILD_SHARED_LIBS)
|
IF(BUILD_SHARED_LIBS)
|
||||||
SET(OMPI_WRAPPER_EXTRA_CFLAGS
|
SET(OMPI_WRAPPER_EXTRA_CFLAGS
|
||||||
@ -65,6 +74,22 @@ CONFIGURE_WRAPPER_DATA_FILE(mpicc)
|
|||||||
UNSET(OMPI_WRAPPER_EXTRA_LIBS)
|
UNSET(OMPI_WRAPPER_EXTRA_LIBS)
|
||||||
|
|
||||||
IF(OMPI_WANT_CXX_BINDINGS)
|
IF(OMPI_WANT_CXX_BINDINGS)
|
||||||
|
|
||||||
|
# select debug or release libraries at configure time
|
||||||
|
IF(WINDOWS_VS)
|
||||||
|
IF(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_CXX_LIB "libmpi_cxxd.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ELSE(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_CXX_LIB "libmpi_cxx.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
|
ELSEIF(WINDOWS_MINGW)
|
||||||
|
IF(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_CXX_LIB "-lmpi_cxxd ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ELSE(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_CXX_LIB "-lmpi_cxx ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
|
ENDIF(WINDOWS_VS)
|
||||||
|
|
||||||
IF(BUILD_SHARED_LIBS)
|
IF(BUILD_SHARED_LIBS)
|
||||||
SET(OMPI_WRAPPER_EXTRA_CXXFLAGS
|
SET(OMPI_WRAPPER_EXTRA_CXXFLAGS
|
||||||
"${OMPI_CXX_LAN_FLAG} ${OMPI_CXX_EXCEPTION} ${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS")
|
"${OMPI_CXX_LAN_FLAG} ${OMPI_CXX_EXCEPTION} ${OMPI_C_DEF_PRE}OMPI_IMPORTS ${OMPI_C_DEF_PRE}OPAL_IMPORTS ${OMPI_C_DEF_PRE}ORTE_IMPORTS")
|
||||||
@ -76,18 +101,26 @@ IF(OMPI_WANT_CXX_BINDINGS)
|
|||||||
ENDIF(OMPI_DEBUG_BUILD)
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
ENDIF(BUILD_SHARED_LIBS)
|
ENDIF(BUILD_SHARED_LIBS)
|
||||||
|
|
||||||
# select debug or release libraries at configure time
|
|
||||||
IF(OMPI_DEBUG_BUILD)
|
|
||||||
SET(OMPI_WRAPPER_CXX_LIB "libmpi_cxxd.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
|
||||||
ELSE(OMPI_DEBUG_BUILD)
|
|
||||||
SET(OMPI_WRAPPER_CXX_LIB "libmpi_cxx.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
|
||||||
ENDIF(OMPI_DEBUG_BUILD)
|
|
||||||
|
|
||||||
CONFIGURE_WRAPPER_DATA_FILE(mpic++)
|
CONFIGURE_WRAPPER_DATA_FILE(mpic++)
|
||||||
CONFIGURE_WRAPPER_DATA_FILE(mpicxx)
|
CONFIGURE_WRAPPER_DATA_FILE(mpicxx)
|
||||||
ENDIF(OMPI_WANT_CXX_BINDINGS)
|
ENDIF(OMPI_WANT_CXX_BINDINGS)
|
||||||
|
|
||||||
IF(OMPI_WANT_F77_BINDINGS)
|
IF(OMPI_WANT_F77_BINDINGS)
|
||||||
|
# select debug or release libraries at configure time
|
||||||
|
IF(WINDOWS_VS)
|
||||||
|
IF(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_EXTRA_LIBS "libmpi_f77d.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ELSE(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_EXTRA_LIBS "libmpi_f77.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
|
ELSEIF(WINDOWS_MINGW)
|
||||||
|
IF(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_EXTRA_LIBS "-lmpi_f77d ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ELSE(OMPI_DEBUG_BUILD)
|
||||||
|
SET(OMPI_WRAPPER_EXTRA_LIBS "-lmpi_f77 ${OMPI_WRAPPER_BASE_LIBS}")
|
||||||
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
|
ENDIF(WINDOWS_VS)
|
||||||
|
|
||||||
IF(BUILD_SHARED_LIBS)
|
IF(BUILD_SHARED_LIBS)
|
||||||
SET(OMPI_WRAPPER_EXTRA_FFLAGS
|
SET(OMPI_WRAPPER_EXTRA_FFLAGS
|
||||||
"")
|
"")
|
||||||
@ -99,12 +132,6 @@ IF(OMPI_WANT_F77_BINDINGS)
|
|||||||
ENDIF(OMPI_DEBUG_BUILD)
|
ENDIF(OMPI_DEBUG_BUILD)
|
||||||
ENDIF(BUILD_SHARED_LIBS)
|
ENDIF(BUILD_SHARED_LIBS)
|
||||||
|
|
||||||
# select debug or release libraries at configure time
|
|
||||||
IF(OMPI_DEBUG_BUILD)
|
|
||||||
SET(OMPI_WRAPPER_EXTRA_LIBS "libmpi_f77d.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
|
||||||
ELSE(OMPI_DEBUG_BUILD)
|
|
||||||
SET(OMPI_WRAPPER_EXTRA_LIBS "libmpi_f77.lib ${OMPI_WRAPPER_BASE_LIBS}")
|
|
||||||
ENDIF(OMPI_DEBUG_BUILD)
|
|
||||||
CONFIGURE_WRAPPER_DATA_FILE(mpif77)
|
CONFIGURE_WRAPPER_DATA_FILE(mpif77)
|
||||||
UNSET(OMPI_WRAPPER_EXTRA_LIBS)
|
UNSET(OMPI_WRAPPER_EXTRA_LIBS)
|
||||||
ENDIF(OMPI_WANT_F77_BINDINGS)
|
ENDIF(OMPI_WANT_F77_BINDINGS)
|
||||||
|
@ -56,13 +56,13 @@
|
|||||||
#include "opal/util/basename.h"
|
#include "opal/util/basename.h"
|
||||||
#include "opal/util/os_path.h"
|
#include "opal/util/os_path.h"
|
||||||
|
|
||||||
#if !defined(__WINDOWS__)
|
#if defined(__WINDOWS__) && defined(_MSC_VER)
|
||||||
#define OPAL_INCLUDE_FLAG "-I"
|
|
||||||
#define OPAL_LIBDIR_FLAG "-L"
|
|
||||||
#else
|
|
||||||
#define OPAL_INCLUDE_FLAG "/I"
|
#define OPAL_INCLUDE_FLAG "/I"
|
||||||
#define OPAL_LIBDIR_FLAG "/LIBPATH:"
|
#define OPAL_LIBDIR_FLAG "/LIBPATH:"
|
||||||
#endif /* !defined(__WINDOWS__) */
|
#else
|
||||||
|
#define OPAL_INCLUDE_FLAG "-I"
|
||||||
|
#define OPAL_LIBDIR_FLAG "-L"
|
||||||
|
#endif /* !defined(__WINDOWS__) && defined(_MSC_VER) */
|
||||||
|
|
||||||
struct options_data_t {
|
struct options_data_t {
|
||||||
char **compiler_args;
|
char **compiler_args;
|
||||||
@ -358,14 +358,20 @@ data_callback(const char *key, const char *value)
|
|||||||
} else if (0 == strcmp(key, "libdir")) {
|
} else if (0 == strcmp(key, "libdir")) {
|
||||||
if (NULL != value) options_data[parse_options_idx].path_libdir =
|
if (NULL != value) options_data[parse_options_idx].path_libdir =
|
||||||
opal_install_dirs_expand(value);
|
opal_install_dirs_expand(value);
|
||||||
#if defined(__WINDOWS__)
|
#if defined(__WINDOWS__) && defined(_MSC_VER)
|
||||||
opal_argv_append_nosize( &options_data[parse_options_idx].link_flags, "/link" );
|
opal_argv_append_nosize( &options_data[parse_options_idx].link_flags, "/link" );
|
||||||
#endif /* defined(__WINDOWS__) */
|
#endif /* defined(__WINDOWS__) && defined(_MSC_VER) */
|
||||||
if (0 != strcmp(options_data[parse_options_idx].path_libdir, "/usr/lib")) {
|
if (0 != strcmp(options_data[parse_options_idx].path_libdir, "/usr/lib")) {
|
||||||
char *line;
|
char *line;
|
||||||
#if defined(__WINDOWS__)
|
#if defined(__WINDOWS__)
|
||||||
|
# if defined(_MSC_VER)
|
||||||
asprintf(&line, OPAL_LIBDIR_FLAG"\"%s\"",
|
asprintf(&line, OPAL_LIBDIR_FLAG"\"%s\"",
|
||||||
options_data[parse_options_idx].path_libdir);
|
options_data[parse_options_idx].path_libdir);
|
||||||
|
# else
|
||||||
|
/* linked DLLs are in bin for MinGW build*/
|
||||||
|
asprintf(&line, OPAL_LIBDIR_FLAG"\"%s/../bin\"",
|
||||||
|
options_data[parse_options_idx].path_libdir);
|
||||||
|
# endif /* defined(_MSC_VER) */
|
||||||
#else
|
#else
|
||||||
asprintf(&line, OPAL_LIBDIR_FLAG"%s",
|
asprintf(&line, OPAL_LIBDIR_FLAG"%s",
|
||||||
options_data[parse_options_idx].path_libdir);
|
options_data[parse_options_idx].path_libdir);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user