From 99b415a7e0214e858cad9dc07f8809cb6a9908bb Mon Sep 17 00:00:00 2001 From: Shiqing Fan Date: Thu, 5 Mar 2009 14:57:35 +0000 Subject: [PATCH] On windows, the mca_common_* libraries should be installed in bin, otherwise the libraries that are dependent on them, e.g. shared build of mca_btl_sm, couldn't be loaded at runtime. This commit fixes the problem. This commit was SVN r20735. --- .../CMakeModules/check_mca_subdirs.cmake | 25 +++++++++++++++---- ompi/mca/btl/sm/.windows | 2 +- ompi/mca/coll/sm/.windows | 2 +- ompi/mca/mpool/sm/.windows | 2 +- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake b/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake index fd92de82ea..7c6c5b48e3 100644 --- a/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake +++ b/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake @@ -153,6 +153,21 @@ FOREACH (MCA_FRAMEWORK ${MCA_FRAMEWORK_LIST}) STRING(REPLACE "mca_link_libraries=" "" MCA_LINK_LIBRARIES ${VALUE}) ENDIF(NOT VALUE STREQUAL "") + # the mca_common_* libraries should be installed into bin, + # this will avoid the runtime open module failure. + IF("${MCA_FRAMEWORK}" STREQUAL "common") + SET(LIB_NAME_PREFIX "lib") + SET(INSTALL_DEST "RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib") + ELSE("${MCA_FRAMEWORK}" STREQUAL "common") + SET(LIB_NAME_PREFIX "") + SET(INSTALL_DEST "RUNTIME DESTINATION lib/openmpi + LIBRARY DESTINATION lib/openmpi + ARCHIVE DESTINATION lib/openmpi") + ENDIF("${MCA_FRAMEWORK}" STREQUAL "common") + + # generate CMakeLists.txt for each component for shared build. FILE (WRITE "${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}/CMakeLists.txt" " @@ -177,17 +192,17 @@ FILE(GLOB ${MCA_FRAMEWORK}_${MCA_COMPONENT}_FILES SET_SOURCE_FILES_PROPERTIES(\${${MCA_FRAMEWORK}_${MCA_COMPONENT}_FILES} PROPERTIES LANGUAGE CXX) -ADD_LIBRARY(mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} SHARED +ADD_LIBRARY(${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} SHARED \${${MCA_FRAMEWORK}_${MCA_COMPONENT}_FILES}) -SET_TARGET_PROPERTIES(mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} +SET_TARGET_PROPERTIES(${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} PROPERTIES COMPILE_FLAGS \"-D_USRDLL -DOPAL_IMPORTS -DOMPI_IMPORTS -DORTE_IMPORTS\") -TARGET_LINK_LIBRARIES (mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} ${MCA_LINK_LIBRARIES}) +TARGET_LINK_LIBRARIES (${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} ${MCA_LINK_LIBRARIES}) -ADD_DEPENDENCIES(mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} libopen-pal ${MCA_DEPENDENCIES}) +ADD_DEPENDENCIES(${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} libopen-pal ${MCA_DEPENDENCIES}) -INSTALL(TARGETS mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} DESTINATION lib/openmpi) +INSTALL(TARGETS ${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} ${INSTALL_DEST}) ") ADD_SUBDIRECTORY (${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT} mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}) diff --git a/ompi/mca/btl/sm/.windows b/ompi/mca/btl/sm/.windows index 8a842aa05b..bf04159dc0 100644 --- a/ompi/mca/btl/sm/.windows +++ b/ompi/mca/btl/sm/.windows @@ -10,5 +10,5 @@ # Specific to this module -mca_dependencies=libmpi libopen-rte mca_common_sm +mca_dependencies=libmpi libopen-rte libmca_common_sm diff --git a/ompi/mca/coll/sm/.windows b/ompi/mca/coll/sm/.windows index 8a842aa05b..bf04159dc0 100644 --- a/ompi/mca/coll/sm/.windows +++ b/ompi/mca/coll/sm/.windows @@ -10,5 +10,5 @@ # Specific to this module -mca_dependencies=libmpi libopen-rte mca_common_sm +mca_dependencies=libmpi libopen-rte libmca_common_sm diff --git a/ompi/mca/mpool/sm/.windows b/ompi/mca/mpool/sm/.windows index 8a842aa05b..bf04159dc0 100644 --- a/ompi/mca/mpool/sm/.windows +++ b/ompi/mca/mpool/sm/.windows @@ -10,5 +10,5 @@ # Specific to this module -mca_dependencies=libmpi libopen-rte mca_common_sm +mca_dependencies=libmpi libopen-rte libmca_common_sm