Merge topic 'fix-vtkm-devices-namespaces'

d5ce96789 CMAKE: fix vtkm devices namespaces

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !2953
This commit is contained in:
Vicente Bolea 2023-01-13 14:50:42 +00:00 committed by Kitware Robot
commit 3a620941dd
9 changed files with 34 additions and 28 deletions

@ -186,7 +186,7 @@ function(setup_cuda_flags)
endfunction() endfunction()
#common warnings for all platforms when building cuda #common warnings for all platforms when building cuda
if ((TARGET vtkm_cuda) OR (TARGET vtkm::kokkos_cuda)) if ((TARGET vtkm_cuda) OR (TARGET vtkm_kokkos_cuda))
setup_cuda_flags() setup_cuda_flags()
endif() endif()

@ -41,7 +41,7 @@ function(vtkm_extract_real_library library real_library)
endif() endif()
endfunction() endfunction()
if(VTKm_ENABLE_TBB AND NOT TARGET vtkm_tbb) if(VTKm_ENABLE_TBB AND NOT (TARGET vtkm_tbb OR TARGET vtkm::tbb))
# Skip find_package(TBB) if we already have it # Skip find_package(TBB) if we already have it
if (NOT TARGET TBB::tbb) if (NOT TARGET TBB::tbb)
find_package(TBB REQUIRED) find_package(TBB REQUIRED)
@ -54,7 +54,7 @@ if(VTKm_ENABLE_TBB AND NOT TARGET vtkm_tbb)
install(TARGETS vtkm_tbb EXPORT ${VTKm_EXPORT_NAME}) install(TARGETS vtkm_tbb EXPORT ${VTKm_EXPORT_NAME})
endif() endif()
if(VTKm_ENABLE_OPENMP AND NOT TARGET vtkm_openmp) if(VTKm_ENABLE_OPENMP AND NOT (TARGET vtkm_openmp OR TARGET vtkm::openmp))
find_package(OpenMP 4.0 REQUIRED COMPONENTS CXX QUIET) find_package(OpenMP 4.0 REQUIRED COMPONENTS CXX QUIET)
add_library(vtkm_openmp INTERFACE) add_library(vtkm_openmp INTERFACE)
@ -85,7 +85,7 @@ if(VTKm_ENABLE_CUDA)
message(FATAL_ERROR "VTK-m CUDA support requires version 9.2+") message(FATAL_ERROR "VTK-m CUDA support requires version 9.2+")
endif() endif()
if(NOT TARGET vtkm_cuda) if(NOT (TARGET vtkm_cuda OR TARGET vtkm::cuda))
add_library(vtkm_cuda INTERFACE) add_library(vtkm_cuda INTERFACE)
set_target_properties(vtkm_cuda PROPERTIES EXPORT_NAME cuda) set_target_properties(vtkm_cuda PROPERTIES EXPORT_NAME cuda)
@ -313,13 +313,13 @@ function(kokkos_fix_compile_options)
endforeach() endforeach()
endwhile() endwhile()
set_property(TARGET vtkm::kokkos PROPERTY INTERFACE_LINK_OPTIONS "$<DEVICE_LINK:${cuda_arch}>") set_property(TARGET vtkm_kokkos PROPERTY INTERFACE_LINK_OPTIONS "$<DEVICE_LINK:${cuda_arch}>")
if (OPENMP IN_LIST Kokkos_DEVICES) if (OPENMP IN_LIST Kokkos_DEVICES)
set_property(TARGET vtkm::kokkos PROPERTY INTERFACE_LINK_OPTIONS "$<HOST_LINK:-fopenmp>") set_property(TARGET vtkm_kokkos PROPERTY INTERFACE_LINK_OPTIONS "$<HOST_LINK:-fopenmp>")
endif() endif()
endfunction() endfunction()
if(VTKm_ENABLE_KOKKOS AND NOT TARGET vtkm::kokkos) if(VTKm_ENABLE_KOKKOS AND NOT TARGET vtkm_kokkos)
cmake_minimum_required(VERSION 3.13 FATAL_ERROR) cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
find_package(Kokkos REQUIRED) find_package(Kokkos REQUIRED)
@ -344,19 +344,25 @@ if(VTKm_ENABLE_KOKKOS AND NOT TARGET vtkm::kokkos)
set(CMAKE_CUDA_ARCHITECTURES ${cuda_arch}) set(CMAKE_CUDA_ARCHITECTURES ${cuda_arch})
message(STATUS "Detected Cuda arch from Kokkos: ${cuda_arch}") message(STATUS "Detected Cuda arch from Kokkos: ${cuda_arch}")
add_library(vtkm::kokkos_cuda INTERFACE IMPORTED GLOBAL) add_library(vtkm_kokkos_cuda INTERFACE)
set_property(TARGET vtkm_kokkos_cuda PROPERTY EXPORT_NAME kokkos_cuda)
install(TARGETS vtkm_kokkos_cuda EXPORT ${VTKm_EXPORT_NAME})
elseif(HIP IN_LIST Kokkos_DEVICES) elseif(HIP IN_LIST Kokkos_DEVICES)
cmake_minimum_required(VERSION 3.18 FATAL_ERROR) cmake_minimum_required(VERSION 3.18 FATAL_ERROR)
enable_language(HIP) enable_language(HIP)
add_library(vtkm::kokkos_hip INTERFACE IMPORTED GLOBAL) set_target_properties(Kokkos::kokkoscore PROPERTIES
set_property(TARGET Kokkos::kokkoscore PROPERTY INTERFACE_COMPILE_OPTIONS "") INTERFACE_COMPILE_OPTIONS ""
set_property(TARGET Kokkos::kokkoscore PROPERTY INTERFACE_LINK_OPTIONS "") INTERFACE_LINK_OPTIONS ""
)
add_library(vtkm_kokkos_hip INTERFACE)
set_property(TARGET vtkm_kokkos_hip PROPERTY EXPORT_NAME kokkos_hip)
install(TARGETS vtkm_kokkos_hip EXPORT ${VTKm_EXPORT_NAME})
endif() endif()
add_library(vtkm::kokkos INTERFACE IMPORTED GLOBAL) add_library(vtkm_kokkos INTERFACE IMPORTED GLOBAL)
set_target_properties(vtkm::kokkos PROPERTIES INTERFACE_LINK_LIBRARIES "Kokkos::kokkos") set_target_properties(vtkm_kokkos PROPERTIES INTERFACE_LINK_LIBRARIES "Kokkos::kokkos")
if (TARGET vtkm::kokkos_cuda) if (TARGET vtkm_kokkos_cuda)
kokkos_fix_compile_options() kokkos_fix_compile_options()
endif() endif()
endif() endif()

@ -434,9 +434,9 @@ function(vtkm_add_target_information uses_vtkm_target)
endforeach() endforeach()
endif() endif()
if((TARGET vtkm_cuda) OR (TARGET vtkm::kokkos_cuda)) if(TARGET vtkm_cuda OR TARGET vtkm::cuda OR TARGET vtkm_kokkos_cuda OR TARGET vtkm::kokkos_cuda)
set_source_files_properties(${VTKm_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "CUDA") set_source_files_properties(${VTKm_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "CUDA")
elseif(TARGET vtkm::kokkos_hip) elseif(TARGET vtkm_kokkos_hip OR TARGET vtkm::kokkos_hip)
set_source_files_properties(${VTKm_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "HIP") set_source_files_properties(${VTKm_TI_DEVICE_SOURCES} PROPERTIES LANGUAGE "HIP")
kokkos_compilation(SOURCE ${VTKm_TI_DEVICE_SOURCES}) kokkos_compilation(SOURCE ${VTKm_TI_DEVICE_SOURCES})
endif() endif()

@ -116,7 +116,7 @@ function(vtkm_test_against_install dir)
set(args -C ${build_config}) set(args -C ${build_config})
endif() endif()
if(WIN32 AND TARGET vtkm::tbb) if(WIN32 AND TARGET vtkm_tbb)
#on windows we need to specify these as FindTBB won't #on windows we need to specify these as FindTBB won't
#find the installed version just with the prefix path #find the installed version just with the prefix path
list(APPEND args list(APPEND args
@ -126,7 +126,7 @@ function(vtkm_test_against_install dir)
) )
endif() endif()
if(TARGET vtkm::kokkos) if(TARGET vtkm_kokkos)
list(APPEND args "-DKokkos_DIR=${Kokkos_DIR}") list(APPEND args "-DKokkos_DIR=${Kokkos_DIR}")
endif() endif()

@ -280,8 +280,8 @@ endif()
if(TARGET vtkm_openmp) if(TARGET vtkm_openmp)
list(APPEND backends vtkm_openmp) list(APPEND backends vtkm_openmp)
endif() endif()
if(TARGET vtkm::kokkos) if(TARGET vtkm_kokkos)
list(APPEND backends vtkm::kokkos) list(APPEND backends vtkm_kokkos)
endif() endif()
target_link_libraries(vtkm_cont PUBLIC vtkm_compiler_flags ${backends}) target_link_libraries(vtkm_cont PUBLIC vtkm_compiler_flags ${backends})

@ -20,7 +20,7 @@ set(headers
vtkm_declare_headers(${headers}) vtkm_declare_headers(${headers})
if (TARGET vtkm::kokkos) if (TARGET vtkm_kokkos)
set(sources set(sources
${CMAKE_CURRENT_SOURCE_DIR}/DeviceAdapterAlgorithmKokkos.cxx ${CMAKE_CURRENT_SOURCE_DIR}/DeviceAdapterAlgorithmKokkos.cxx
${CMAKE_CURRENT_SOURCE_DIR}/DeviceAdapterMemoryManagerKokkos.cxx ${CMAKE_CURRENT_SOURCE_DIR}/DeviceAdapterMemoryManagerKokkos.cxx
@ -29,9 +29,9 @@ if (TARGET vtkm::kokkos)
${CMAKE_CURRENT_SOURCE_DIR}/KokkosTypes.cxx) ${CMAKE_CURRENT_SOURCE_DIR}/KokkosTypes.cxx)
target_sources(vtkm_cont PRIVATE ${sources}) target_sources(vtkm_cont PRIVATE ${sources})
if (TARGET vtkm::kokkos_cuda) if (TARGET vtkm_kokkos_cuda)
set_source_files_properties(${sources} TARGET_DIRECTORY vtkm_cont PROPERTIES LANGUAGE CUDA) set_source_files_properties(${sources} TARGET_DIRECTORY vtkm_cont PROPERTIES LANGUAGE CUDA)
elseif(TARGET vtkm::kokkos_hip) elseif(TARGET vtkm_kokkos_hip)
set_source_files_properties(${sources} TARGET_DIRECTORY vtkm_cont PROPERTIES LANGUAGE HIP) set_source_files_properties(${sources} TARGET_DIRECTORY vtkm_cont PROPERTIES LANGUAGE HIP)
kokkos_compilation(SOURCE ${sources}) kokkos_compilation(SOURCE ${sources})
endif() endif()

@ -15,9 +15,9 @@ set(unit_tests
vtkm_unit_tests(SOURCES ${unit_tests} LABEL "KOKKOS" LIBRARIES vtkm_worklet BACKEND kokkos) vtkm_unit_tests(SOURCES ${unit_tests} LABEL "KOKKOS" LIBRARIES vtkm_worklet BACKEND kokkos)
if (TARGET vtkm::kokkos_cuda) if (TARGET vtkm_kokkos_cuda)
set_source_files_properties(${unit_tests} PROPERTIES LANGUAGE CUDA) set_source_files_properties(${unit_tests} PROPERTIES LANGUAGE CUDA)
elseif(TARGET vtkm::kokkos_hip) elseif(TARGET vtkm_kokkos_hip)
set_source_files_properties(${unit_tests} PROPERTIES LANGUAGE HIP) set_source_files_properties(${unit_tests} PROPERTIES LANGUAGE HIP)
kokkos_compilation(SOURCE ${unit_tests}) kokkos_compilation(SOURCE ${unit_tests})
endif() endif()

@ -6,4 +6,4 @@ DEPENDS
vtkm_cont vtkm_cont
TEST_DEPENDS TEST_DEPENDS
vtkm_worklet vtkm_worklet
vtkm::kokkos vtkm_kokkos

@ -31,9 +31,9 @@ if(VTKM_ENABLE_CUDA)
string(REGEX REPLACE "([0-9]+)\\.([0-9]+).*" "\\2" VTKM_CUDA_VERSION_MINOR ${CMAKE_CUDA_COMPILER_VERSION}) string(REGEX REPLACE "([0-9]+)\\.([0-9]+).*" "\\2" VTKM_CUDA_VERSION_MINOR ${CMAKE_CUDA_COMPILER_VERSION})
endif() endif()
if (TARGET vtkm::kokkos_cuda) if (TARGET vtkm_kokkos_cuda)
set(VTKM_KOKKOS_CUDA ON) set(VTKM_KOKKOS_CUDA ON)
elseif(TARGET vtkm::kokkos_hip) elseif(TARGET vtkm_kokkos_hip)
set(VTKM_KOKKOS_HIP ON) set(VTKM_KOKKOS_HIP ON)
endif() endif()