From 6f8d0a1ab8680dbcc9859adb4be10fdfe257a61a Mon Sep 17 00:00:00 2001 From: Shiqing Fan Date: Tue, 3 Nov 2009 10:40:58 +0000 Subject: [PATCH] Update a few CMake scripts. Add Program Database (pdb) files for installation for debug build. This commit was SVN r22188. --- CMakeLists.txt | 18 +++++++++++++++--- .../win32/CMakeModules/check_mca_subdirs.cmake | 12 +++++++++--- ompi/CMakeLists.txt | 8 ++++++++ ompi/mpi/cxx/CMakeLists.txt | 6 ++++++ ompi/tools/CMakeLists.txt | 18 +++++++++--------- opal/CMakeLists.txt | 10 +++++++++- orte/CMakeLists.txt | 6 ++++++ 7 files changed, 62 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 568e8a6617..59caf95771 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,6 +31,11 @@ IF (NOT CMAKE_BUILD_TYPE) "Choose the type of build, options are: None, Debug, Release, RelWithDebInfo and MinSizeRel." FORCE) ENDIF (NOT CMAKE_BUILD_TYPE) +STRING(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE) +IF(${CMAKE_BUILD_TYPE} STREQUAL "debug") + SET(OMPI_DEBUG_BUILD 1) +ENDIF(${CMAKE_BUILD_TYPE} STREQUAL "debug") + # add debug-suffix to distinguish between debug and release version libraries. SET(CMAKE_DEBUG_POSTFIX "d") @@ -72,6 +77,13 @@ SET (CMAKE_SUPPRESS_REGENERATION true) # Dynamic/shared build, the default is set to static(OFF) OPTION(BUILD_SHARED_LIBS "Wether we want to build shared libraries." ON) +IF(CMAKE_CL_64) + SET(COMPILER_TYPE "x64") +ELSE(CMAKE_CL_64) + SET(COMPILER_TYPE "win32") +ENDIF(CMAKE_CL_64) + + INCLUDE(ompi_configure) ADD_SUBDIRECTORY(opal) @@ -97,12 +109,12 @@ ELSE(${RELEASE_VERSION} EQUAL 0) SET(OpenMPI_version "${MAJOR_VERSION}.${MINOR_VERSION}.${RELEASE_VERSION}") ENDIF(${RELEASE_VERSION} EQUAL 0) -SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OpenMPI_v${OpenMPI_version}") -SET(CPACK_PACKAGE_FILE_NAME "OpenMPI-${OpenMPI_version}") +SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OpenMPI_v${OpenMPI_version}-${COMPILER_TYPE}") +SET(CPACK_PACKAGE_FILE_NAME "OpenMPI_v${OpenMPI_version}-${COMPILER_TYPE}-${CMAKE_BUILD_TYPE}") SET(CPACK_INSTALLED_DIRECTORIES "${CMAKE_INSTALL_PREFIX}" ".") SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Open MPI") -SET(CPACK_SOURCE_PACKAGE_FILE_NAME "OpenMPI-${VERSION_STRING}") +SET(CPACK_SOURCE_PACKAGE_FILE_NAME "OpenMPI-${OpenMPI_version}") #SET(CPACK_SOURCE_INSTALLED_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}") #There is a bug in NSI that does not handle full unix paths properly. Make # sure there is at least one set of four (4) backlasshes. diff --git a/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake b/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake index 81aae1bcd9..f42bba62b8 100644 --- a/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake +++ b/contrib/platform/win32/CMakeModules/check_mca_subdirs.cmake @@ -221,17 +221,19 @@ FOREACH (MCA_FRAMEWORK ${MCA_FRAMEWORK_LIST}) SET(INSTALL_DEST "RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib") + SET(PDB_DEST "bin") ELSE("${MCA_FRAMEWORK}" STREQUAL "common") SET(LIB_NAME_PREFIX "") - IF(CMAKE_BUILD_TYPE STREQUAL "Debug") + IF(OMPI_DEBUG_BUILD) SET(INSTALL_DEST "RUNTIME DESTINATION lib/openmpi/debug LIBRARY DESTINATION lib/openmpi/debug ARCHIVE DESTINATION lib/openmpi/debug") - ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug") + SET(PDB_DEST "lib/openmpi/debug") + ELSE(OMPI_DEBUG_BUILD) SET(INSTALL_DEST "RUNTIME DESTINATION lib/openmpi LIBRARY DESTINATION lib/openmpi ARCHIVE DESTINATION lib/openmpi") - ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug") + ENDIF(OMPI_DEBUG_BUILD) ENDIF("${MCA_FRAMEWORK}" STREQUAL "common") @@ -263,6 +265,10 @@ TARGET_LINK_LIBRARIES (${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} $ ADD_DEPENDENCIES(${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} libopen-pal ${MCA_DEPENDENCIES}) INSTALL(TARGETS ${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} ${INSTALL_DEST}) +IF (OMPI_DEBUG_BUILD) + INSTALL(FILES ${OpenMPI_BINARY_DIR}/Debug/${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT}${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION ${PDB_DEST}) +ENDIF (OMPI_DEBUG_BUILD) ") ADD_SUBDIRECTORY (${PROJECT_BINARY_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT} mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}) diff --git a/ompi/CMakeLists.txt b/ompi/CMakeLists.txt index 4645a82b76..ebee821fab 100644 --- a/ompi/CMakeLists.txt +++ b/ompi/CMakeLists.txt @@ -151,6 +151,14 @@ INSTALL(TARGETS libmpi INSTALL(FILES ${PROJECT_BINARY_DIR}/include/mpi.h ${PROJECT_BINARY_DIR}/include/mpi_portable_platform.h DESTINATION include) +INSTALL(FILES errhandler/help-mpi-errors.txt + DESTINATION share/openmpi) + +IF (OMPI_DEBUG_BUILD) + INSTALL(FILES ${OpenMPI_BINARY_DIR}/Debug/libmpi${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION bin) +ENDIF (OMPI_DEBUG_BUILD) + IF(OMPI_WANT_F77_BINDINGS) INSTALL(FILES ${PROJECT_BINARY_DIR}/include/mpif.h ${PROJECT_BINARY_DIR}/include/mpif-config.h diff --git a/ompi/mpi/cxx/CMakeLists.txt b/ompi/mpi/cxx/CMakeLists.txt index d70b551e57..14014acf51 100644 --- a/ompi/mpi/cxx/CMakeLists.txt +++ b/ompi/mpi/cxx/CMakeLists.txt @@ -47,3 +47,9 @@ INSTALL(TARGETS libmpi_cxx RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) + +IF (OMPI_DEBUG_BUILD) + INSTALL(FILES ${OpenMPI_BINARY_DIR}/Debug/libmpi_cxx${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION bin) +ENDIF (OMPI_DEBUG_BUILD) + diff --git a/ompi/tools/CMakeLists.txt b/ompi/tools/CMakeLists.txt index aaf4bebc07..539d2553b0 100644 --- a/ompi/tools/CMakeLists.txt +++ b/ompi/tools/CMakeLists.txt @@ -41,24 +41,24 @@ MACRO(CONFIGURE_WRAPPER_DATA_FILE APP_NAME) ENDMACRO() # select debug or release libraries at configure time -IF(CMAKE_BUILD_TYPE STREQUAL "Debug") +IF(OMPI_DEBUG_BUILD) SET(OMPI_WRAPPER_EXTRA_LIBS "libmpid.lib libopen-pald.lib libopen-rted.lib advapi32.lib Ws2_32.lib shlwapi.lib") -ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug") +ELSE(OMPI_DEBUG_BUILD) SET(OMPI_WRAPPER_EXTRA_LIBS "libmpi.lib libopen-pal.lib libopen-rte.lib advapi32.lib Ws2_32.lib shlwapi.lib") -ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug") +ENDIF(OMPI_DEBUG_BUILD) GET_FILENAME_COMPONENT(CC "${CL_EXE}" NAME) IF(BUILD_SHARED_LIBS) SET(OMPI_WRAPPER_EXTRA_CFLAGS "/TC /D \"OMPI_IMPORTS\" /D \"OPAL_IMPORTS\" /D \"ORTE_IMPORTS\"") ELSE(BUILD_SHARED_LIBS) - IF(CMAKE_BUILD_TYPE STREQUAL "Debug") + IF(OMPI_DEBUG_BUILD) SET(OMPI_WRAPPER_EXTRA_CFLAGS "/TC /MDd") - ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug") + ELSE(OMPI_DEBUG_BUILD) SET(OMPI_WRAPPER_EXTRA_CFLAGS "/TC /MD") - ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug") + ENDIF(OMPI_DEBUG_BUILD) ENDIF(BUILD_SHARED_LIBS) CONFIGURE_WRAPPER_DATA_FILE(mpicc) @@ -74,11 +74,11 @@ IF(OMPI_WANT_CXX_BINDINGS) ENDIF(BUILD_SHARED_LIBS) # select debug or release libraries at configure time - IF(CMAKE_BUILD_TYPE STREQUAL "Debug") + IF(OMPI_DEBUG_BUILD) SET(OMPI_WRAPPER_CXX_LIB "libmpi_cxxd.lib") - ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug") + ELSE(OMPI_DEBUG_BUILD) SET(OMPI_WRAPPER_CXX_LIB "libmpi_cxx.lib") - ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug") + ENDIF(OMPI_DEBUG_BUILD) CONFIGURE_WRAPPER_DATA_FILE(mpic++) CONFIGURE_WRAPPER_DATA_FILE(mpicxx) diff --git a/opal/CMakeLists.txt b/opal/CMakeLists.txt index 273af4eae0..4b5dc587a2 100644 --- a/opal/CMakeLists.txt +++ b/opal/CMakeLists.txt @@ -144,4 +144,12 @@ INSTALL(TARGETS libopen-pal RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib) -INSTALL(FILES runtime/help-opal-runtime.txt DESTINATION share/openmpi) +INSTALL(FILES runtime/help-opal-runtime.txt + mca/base/help-mca-base.txt + mca/base/help-mca-param.txt + DESTINATION share/openmpi) + +IF (OMPI_DEBUG_BUILD) + INSTALL(FILES ${OpenMPI_BINARY_DIR}/Debug/libopen-pal${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION bin) +ENDIF (OMPI_DEBUG_BUILD) diff --git a/orte/CMakeLists.txt b/orte/CMakeLists.txt index aa87c138e7..8b516b0ad6 100644 --- a/orte/CMakeLists.txt +++ b/orte/CMakeLists.txt @@ -81,3 +81,9 @@ INSTALL(TARGETS libopen-rte INSTALL(FILES orted/help-orted.txt runtime/help-orte-runtime.txt util/hostfile/help-hostfile.txt util/dash_host/help-dash-host.txt DESTINATION share/openmpi) + +IF (OMPI_DEBUG_BUILD) + INSTALL(FILES ${OpenMPI_BINARY_DIR}/Debug/libopen-rte${CMAKE_DEBUG_POSTFIX}.pdb + DESTINATION bin) +ENDIF (OMPI_DEBUG_BUILD) +