1
1

Add a new CMake module for finding Windows CCP libraries, so that we can remove the library files in the source tree.

This commit was SVN r21071.
Этот коммит содержится в:
Shiqing Fan 2009-04-24 16:51:31 +00:00
родитель d8f61695cd
Коммит 4067d739b4
7 изменённых файлов: 157 добавлений и 91 удалений

Просмотреть файл

@ -1,5 +1,5 @@
#
# Copyright (c) 2007-2008 High Performance Computing Center Stuttgart,
# Copyright (c) 2007-2009 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# $COPYRIGHT$
#
@ -43,6 +43,7 @@ INCLUDE(ompi_get_version)
# Make the include path visible to all targets
INCLUDE_DIRECTORIES (
${OpenMPI_SOURCE_DIR}/contrib/platform/win32
${OpenMPI_SOURCE_DIR}/
${OpenMPI_SOURCE_DIR}/opal
${OpenMPI_SOURCE_DIR}/opal/include
@ -57,7 +58,6 @@ INCLUDE_DIRECTORIES (
${OpenMPI_BINARY_DIR}/ompi/include
${OpenMPI_BINARY_DIR}/orte
${OpenMPI_BINARY_DIR}/orte/include
${OpenMPI_SOURCE_DIR}/contrib/platform/win32
)
@ -77,7 +77,6 @@ INCLUDE(ompi_configure)
ADD_SUBDIRECTORY(opal)
ADD_SUBDIRECTORY(ompi)
ADD_SUBDIRECTORY(orte)
ADD_SUBDIRECTORY(test)
INCLUDE(InstallRequiredSystemLibraries)

Просмотреть файл

@ -96,16 +96,38 @@ FOREACH (MCA_FRAMEWORK ${MCA_FRAMEWORK_LIST})
ELSEIF(EXISTS "${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}/.windows")
SET(COMPONENT_FILES "")
FILE(STRINGS ${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT}/.windows
SET(CURRENT_PATH ${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT})
FILE(GLOB COMPONENT_FILES "${CURRENT_PATH}/*.C" "${CURRENT_PATH}/*.h"
"${CURRENT_PATH}/*.cc" "${CURRENT_PATH}/*.cpp")
# by default, build this component.
SET(BUILD_COMPONENT TRUE)
# do we have to run a check module first?
SET(REQUIRED_CHECK "")
FILE(STRINGS ${CURRENT_PATH}/.windows REQUIRED_CHECK REGEX "^required_check=")
SET(EXTRA_INCLUDE_PATH "")
IF(NOT REQUIRED_CHECK STREQUAL "")
STRING(REPLACE "required_check=" "" REQUIRED_CHECK ${REQUIRED_CHECK})
INCLUDE(${REQUIRED_CHECK})
IF(RESULT)
SET(EXTRA_INCLUDE_PATH ${RESULT_INCLUDE_PATH})
ELSE(RESULT)
# Required check failed, don't build this component.
SET(BUILD_COMPONENT FALSE)
ENDIF(RESULT)
ENDIF(NOT REQUIRED_CHECK STREQUAL "")
IF(BUILD_COMPONENT)
# check the library build type
FILE(STRINGS ${CURRENT_PATH}/.windows
VALUE REGEX "^not_single_shared_lib=")
IF(NOT VALUE STREQUAL "")
STRING(REPLACE "not_single_shared_lib=" "" NOT_SINGLE_SHARED_LIB ${VALUE})
ENDIF(NOT VALUE STREQUAL "")
SET(CURRENT_PATH ${PROJECT_SOURCE_DIR}/mca/${MCA_FRAMEWORK}/${MCA_COMPONENT})
FILE(GLOB COMPONENT_FILES "${CURRENT_PATH}/*.C" "${CURRENT_PATH}/*.h"
"${CURRENT_PATH}/*.cc" "${CURRENT_PATH}/*.cpp")
# check out if we have to exlude some source files.
SET(EXCLUDE_LIST "")
FILE(STRINGS ${CURRENT_PATH}/.windows EXCLUDE_LIST REGEX "^exclude_list=")
@ -125,6 +147,8 @@ FOREACH (MCA_FRAMEWORK ${MCA_FRAMEWORK_LIST})
SET(MCA_FILES ${MCA_FILES} ${COMPONENT_FILES})
SOURCE_GROUP(mca\\${MCA_FRAMEWORK}\\${MCA_COMPONENT} FILES ${COMPONENT_FILES})
INCLUDE_DIRECTORIES(${EXTRA_INCLUDE_PATH})
IF(EXISTS "${CURRENT_PATH}/configure.params")
FILE(STRINGS "${CURRENT_PATH}/configure.params"
CURRENT_COMPONENT_PRIORITY REGEX "PRIORITY")
@ -203,6 +227,8 @@ FOREACH (MCA_FRAMEWORK ${MCA_FRAMEWORK_LIST})
SET_SOURCE_FILES_PROPERTIES(\${COMPONENT_FILES}
PROPERTIES LANGUAGE CXX)
INCLUDE_DIRECTORIES(\${EXTRA_INCLUDE_PATH})
ADD_LIBRARY(${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} SHARED
\${COMPONENT_FILES})
@ -223,7 +249,9 @@ INSTALL(TARGETS ${LIB_NAME_PREFIX}mca_${MCA_FRAMEWORK}_${MCA_COMPONENT} ${INSTAL
INSTALL(DIRECTORY ${CURRENT_PATH}/ DESTINATION share/openmpi/
FILES_MATCHING PATTERN "*.txt" PATTERN ".svn" EXCLUDE)
ENDIF(BUILD_COMPONENT)
ENDIF(${MCA_COMPONENT} STREQUAL "base")
ENDFOREACH(MCA_COMPONENT)
STRING(LENGTH "${FRAMEWORK_STRUCT_DEF}" STRUCT_STRING_LENTH)

37
contrib/platform/win32/CMakeModules/find_ccp.cmake Исполняемый файл
Просмотреть файл

@ -0,0 +1,37 @@
# Copyright (c) 2009 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# The CCP components need to import the type library ccpapi.tlb,
# if it's not installed, the CCP components won't be built.
SET(EXTRA_INCLUDE_PATH "")
IF(NOT CCPAPI_FOUND)
MESSAGE(STATUS "looking for ccp...")
IF(CMAKE_CL_64)
SET(CCP_LIB_PATH $ENV{CCP_LIB64})
ELSE(CMAKE_CL_64)
SET(CCP_LIB_PATH $ENV{CCP_LIB32})
ENDIF(CMAKE_CL_64)
FIND_FILE(CCPAPI_FOUND ccpapi.tlb PATHS ${CCP_LIB_PATH})
IF(CCPAPI_FOUND)
SET(RESULT TRUE)
SET(RESULT_INCLUDE_PATH ${CCP_LIB_PATH})
MESSAGE(STATUS "looking for ccp...found.")
ELSE(CCPAPI_FOUND)
SET(RESULT FALSE)
MESSAGE(STATUS "looking for ccp...not found.")
ENDIF(CCPAPI_FOUND)
ELSE(NOT CCPAPI_FOUND)
SET(RESULT_INCLUDE_PATH ${CCP_LIB_PATH})
ENDIF(NOT CCPAPI_FOUND)

Просмотреть файл

@ -1,5 +1,5 @@
#
# Copyright (c) 2008 High Performance Computing Center Stuttgart,
# Copyright (c) 2009 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# $COPYRIGHT$
#
@ -11,3 +11,4 @@
# Specific to this module
mca_dependencies=libopen-rte
required_check=find_ccp

Двоичные данные
orte/mca/plm/ccp/ccpapi.tlb

Двоичный файл не отображается.

Просмотреть файл

@ -1,5 +1,5 @@
#
# Copyright (c) 2008 High Performance Computing Center Stuttgart,
# Copyright (c) 2009 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# $COPYRIGHT$
#
@ -11,3 +11,4 @@
# Specific to this module
mca_dependencies=libopen-rte
required_check=find_ccp

Двоичные данные
orte/mca/ras/ccp/ccpapi.tlb

Двоичный файл не отображается.