mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-16 17:22:55 +00:00
VTK-m and DIY now properly export MPI requirements.
Previously an installed version of VTK-m wasn't relocatable as it had system MPI paths. Additionally the installed vtkm_diy target would depend on MPI but not `find_package(MPI)`
This commit is contained in:
parent
83bc8d7596
commit
fb6235e0e9
1756
CMake/FindMPI.cmake
Normal file
1756
CMake/FindMPI.cmake
Normal file
File diff suppressed because it is too large
Load Diff
21
CMake/VTKmMPI.cmake
Normal file
21
CMake/VTKmMPI.cmake
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
##============================================================================
|
||||||
|
## Copyright (c) Kitware, Inc.
|
||||||
|
## All rights reserved.
|
||||||
|
## See LICENSE.txt for details.
|
||||||
|
##
|
||||||
|
## This software is distributed WITHOUT ANY WARRANTY; without even
|
||||||
|
## the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||||
|
## PURPOSE. See the above copyright notice for more information.
|
||||||
|
##============================================================================
|
||||||
|
|
||||||
|
if(VTKm_ENABLE_MPI AND NOT TARGET MPI::MPI_CXX)
|
||||||
|
if(CMAKE_VERSION VERSION_LESS 3.10)
|
||||||
|
find_package(MPI REQUIRED MODULE)
|
||||||
|
else()
|
||||||
|
#clunky but we need to make sure we use the upstream module if it exists
|
||||||
|
set(orig_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||||
|
set(CMAKE_MODULE_PATH "")
|
||||||
|
find_package(MPI MODULE)
|
||||||
|
set(CMAKE_MODULE_PATH ${orig_CMAKE_MODULE_PATH})
|
||||||
|
endif()
|
||||||
|
endif()
|
@ -12,6 +12,7 @@ include(CMakeParseArguments)
|
|||||||
|
|
||||||
include(VTKmDeviceAdapters)
|
include(VTKmDeviceAdapters)
|
||||||
include(VTKmCPUVectorization)
|
include(VTKmCPUVectorization)
|
||||||
|
include(VTKmMPI)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Utility to build a kit name from the current directory.
|
# Utility to build a kit name from the current directory.
|
||||||
|
@ -182,14 +182,6 @@ check_type_size("long long" VTKm_SIZE_LONG_LONG BUILTIN_TYPES_ONLY)
|
|||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Add subdirectories
|
# Add subdirectories
|
||||||
if(VTKm_ENABLE_MPI)
|
|
||||||
# This `if` is temporary and will be removed once `diy` supports building
|
|
||||||
# without MPI.
|
|
||||||
if (NOT MPI_C_FOUND)
|
|
||||||
find_package(MPI ${VTKm_FIND_PACKAGE_QUIETLY})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_subdirectory(vtkm)
|
add_subdirectory(vtkm)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
@ -241,6 +233,7 @@ if(NOT VTKm_INSTALL_ONLY_LIBRARIES)
|
|||||||
install(
|
install(
|
||||||
FILES
|
FILES
|
||||||
${VTKm_SOURCE_DIR}/CMake/FindTBB.cmake
|
${VTKm_SOURCE_DIR}/CMake/FindTBB.cmake
|
||||||
|
${VTKm_SOURCE_DIR}/CMake/FindMPI.cmake
|
||||||
${VTKm_SOURCE_DIR}/CMake/FindOpenGL.cmake
|
${VTKm_SOURCE_DIR}/CMake/FindOpenGL.cmake
|
||||||
${VTKm_SOURCE_DIR}/CMake/FindOpenMP.cmake
|
${VTKm_SOURCE_DIR}/CMake/FindOpenMP.cmake
|
||||||
DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}
|
DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}
|
||||||
@ -253,6 +246,7 @@ if(NOT VTKm_INSTALL_ONLY_LIBRARIES)
|
|||||||
${VTKm_SOURCE_DIR}/CMake/VTKmDetectCUDAVersion.cu
|
${VTKm_SOURCE_DIR}/CMake/VTKmDetectCUDAVersion.cu
|
||||||
${VTKm_SOURCE_DIR}/CMake/VTKmDeviceAdapters.cmake
|
${VTKm_SOURCE_DIR}/CMake/VTKmDeviceAdapters.cmake
|
||||||
${VTKm_SOURCE_DIR}/CMake/VTKmExportHeaderTemplate.h.in
|
${VTKm_SOURCE_DIR}/CMake/VTKmExportHeaderTemplate.h.in
|
||||||
|
${VTKm_SOURCE_DIR}/CMake/VTKmMPI.cmake
|
||||||
${VTKm_SOURCE_DIR}/CMake/VTKmRenderingContexts.cmake
|
${VTKm_SOURCE_DIR}/CMake/VTKmRenderingContexts.cmake
|
||||||
${VTKm_SOURCE_DIR}/CMake/VTKmWrappers.cmake
|
${VTKm_SOURCE_DIR}/CMake/VTKmWrappers.cmake
|
||||||
DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}
|
DESTINATION ${VTKm_INSTALL_CMAKE_MODULE_DIR}
|
||||||
|
18
vtkm/thirdparty/diy/CMakeLists.txt
vendored
18
vtkm/thirdparty/diy/CMakeLists.txt
vendored
@ -24,23 +24,7 @@ target_include_directories(vtkm_diy INTERFACE
|
|||||||
$<INSTALL_INTERFACE:${VTKm_INSTALL_INCLUDE_DIR}/vtkm/thirdparty/diy>)
|
$<INSTALL_INTERFACE:${VTKm_INSTALL_INCLUDE_DIR}/vtkm/thirdparty/diy>)
|
||||||
|
|
||||||
if(VTKm_ENABLE_MPI)
|
if(VTKm_ENABLE_MPI)
|
||||||
set(arg)
|
target_link_libraries(vtkm_diy INTERFACE MPI::MPI_CXX)
|
||||||
foreach(apath IN LISTS MPI_C_INCLUDE_PATH MPI_CXX_INCLUDE_PATH)
|
|
||||||
list(APPEND arg $<BUILD_INTERFACE:${apath}>)
|
|
||||||
endforeach()
|
|
||||||
list(REMOVE_DUPLICATES arg)
|
|
||||||
target_include_directories(vtkm_diy INTERFACE ${arg})
|
|
||||||
target_link_libraries(vtkm_diy INTERFACE
|
|
||||||
$<BUILD_INTERFACE:${MPI_C_LIBRARIES}>
|
|
||||||
$<BUILD_INTERFACE:${MPI_CXX_LIBRARIES}>)
|
|
||||||
if(MPI_C_COMPILE_DEFINITIONS)
|
|
||||||
target_compile_definitions(vtkm_diy INTERFACE
|
|
||||||
$<$<COMPILE_LANGUAGE:C>:${MPI_C_COMPILE_DEFINITIONS}>)
|
|
||||||
endif()
|
|
||||||
if(MPI_CXX_COMPILE_DEFNITIONS)
|
|
||||||
target_compile_definitions(vtkm_diy INTERFACE
|
|
||||||
$<$<COMPILE_LANGUAGE:CXX>:${MPI_CXX_COMPILE_DEFNITIONS>)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS vtkm_diy
|
install(TARGETS vtkm_diy
|
||||||
|
Loading…
Reference in New Issue
Block a user