diff --git a/Accelerators/Vtkm/CMakeLists.txt b/Accelerators/Vtkm/CMakeLists.txt index 4297575bd..643df6fd5 100644 --- a/Accelerators/Vtkm/CMakeLists.txt +++ b/Accelerators/Vtkm/CMakeLists.txt @@ -14,8 +14,10 @@ ## ##============================================================================= -list(INSERT 0 CMAKE_MODULE_PATH - "${VTK_SOURCE_DIR}/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake") +find_package(VTKm CONFIG REQUIRED) + +#list(INSERT 0 CMAKE_MODULE_PATH +# "${VTK_SOURCE_DIR}/ThirdParty/vtkm/vtkvtkm/vtk-m/CMake") set(sources vtkmlib/ArrayConvertersReal.cxx diff --git a/Accelerators/Vtkm/CMakeLists.txt b/Accelerators/Vtkm/CMakeLists.txt index a01a6bda3..889c87ebb 100644 --- a/Accelerators/Vtkm/CMakeLists.txt +++ b/Accelerators/Vtkm/CMakeLists.txt @@ -126,9 +126,9 @@ vtkm_add_target_information(${vtkm_accel_target} MODIFY_CUDA_FLAGS DEVICE_SOURCES ${sources}) -vtk_module_set_property(VTK::AcceleratorsVTKm - PROPERTY JOB_POOL_COMPILE - VALUE vtkm_pool) +#vtk_module_set_property(VTK::AcceleratorsVTKm +# PROPERTY JOB_POOL_COMPILE +# VALUE vtkm_pool) vtk_module_link(VTK::AcceleratorsVTKm PRIVATE vtkm_worklet diff --git a/CMake/FindVTKm.cmake b/CMake/FindVTKm.cmake new file mode 100644 index 000000000..c0fe00c0e --- /dev/null +++ b/CMake/FindVTKm.cmake @@ -0,0 +1 @@ +find_package(VTKm CONFIG REQUIRED) \ No newline at end of file diff --git a/CMake/vtkCompilerPlatformFlags.cmake b/CMake/vtkCompilerPlatformFlags.cmake index b0bdba1e6..69c570a25 100644 --- a/CMake/vtkCompilerPlatformFlags.cmake +++ b/CMake/vtkCompilerPlatformFlags.cmake @@ -107,7 +107,7 @@ if(MSVC) if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") STRING(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4 /bigobj") endif() endif() diff --git a/ThirdParty/vtkm/CMakeLists.txt b/ThirdParty/vtkm/CMakeLists.txt index 5817d42f8..bc5a33d93 100644 --- a/ThirdParty/vtkm/CMakeLists.txt +++ b/ThirdParty/vtkm/CMakeLists.txt @@ -1,6 +1,47 @@ -vtk_module_third_party_internal( - LICENSE_FILES "vtkvtkm/vtk-m/LICENSE.txt" - VERSION "master" - SUBDIRECTORY vtkvtkm - STANDARD_INCLUDE_DIRS - INTERFACE) +#vtk_module_third_party_internal( +# LICENSE_FILES "vtkvtkm/vtk-m/LICENSE.txt" +# VERSION "master" +# SUBDIRECTORY vtkvtkm +# STANDARD_INCLUDE_DIRS +# INTERFACE) + +message(STATUS "VTK_MODULE_USE_EXTERNAL_VTK_vtkm: ${VTK_MODULE_USE_EXTERNAL_VTK_vtkm}") +if(TRUE) + message(STATUS "Searching for external VTKm") + find_package(VTKm CONFIG REQUIRED) + if(TARGET vtkm_compiler_flags) + get_target_property(VTKm_INCLUDE_DIRS vtkm_compiler_flags INTERFACE_INCLUDE_DIRECTORIES) + message(STATUS "INCLUDE: ${VTKm_INCLUDE_DIRS}") + get_target_property(VTKm_DIY_INCLUDE_DIRS vtkm_diy INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(VTKm_OPTION_INCLUDE_DIRS vtkm_optionparser INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(VTKm_TAO_INCLUDE_DIRS vtkm_taotuple INTERFACE_INCLUDE_DIRECTORIES) + if(MSVC) + set(VTKm_DEFINITIONS /bigobj) + endif() + else() + message(FATAL_ERROR "VTKM target missing") + endif() + if(VTKM_FOUND) + message(STATUS "Found VTKm") + endif() +endif() + +vtk_module_third_party( + INTERNAL + HEADER_ONLY + LICENSE_FILES "vtkvtkm/vtk-m/LICENSE.txt" + VERSION "master" + SUBDIRECTORY vtkvtkm + STANDARD_INCLUDE_DIRS + INTERFACE + EXTERNAL + PACKAGE VTKm + TARGETS vtkm_cont vtkm_filter vtkm_diy vtkm_optionparser vtkm_taotuple + #LIBRARIES vtkm_cont vtkm_filter vtkm_diy vtkm_optionparser vtkm_taotuple + INCLUDE_DIRS VTKm_INCLUDE_DIRS VTKm_DIY_INCLUDE_DIRS VTKm_OPTION_INCLUDE_DIRS VTKm_TAO_INCLUDE_DIRS) +# configure_file( + # "${CMAKE_CURRENT_SOURCE_DIR}/vtk_utf8.h.in" + # "${CMAKE_CURRENT_BINARY_DIR}/vtk_utf8.h") + +# vtk_module_install_headers( + # FILES "${CMAKE_CURRENT_BINARY_DIR}/vtk_utf8.h") diff --git a/ThirdParty/vtkm/vtk.module b/ThirdParty/vtkm/vtk.module index a8e4dad0f..c7bbbf0e8 100644 --- a/ThirdParty/vtkm/vtk.module +++ b/ThirdParty/vtkm/vtk.module @@ -3,5 +3,7 @@ NAME PRIVATE_DEPENDS # While not needed to satisfy symbols, this is necessary to guarantee that # VTK_SMP_IMPLEMENTATION_TYPE is available when configuring vtk-m. - VTK::CommonCore + # VTK::CommonCore +LIBRARY_NAME + VTKm THIRD_PARTY diff --git a/CMake/vtk-config.cmake.in b/CMake/vtk-config.cmake.in index 1ecfde326..ae5576e66 100644 --- a/CMake/vtk-config.cmake.in +++ b/CMake/vtk-config.cmake.in @@ -114,9 +114,7 @@ set("${CMAKE_FIND_PACKAGE_NAME}_AVAILABLE_COMPONENTS" "@vtk_all_components@") unset("${CMAKE_FIND_PACKAGE_NAME}_FOUND") set("${CMAKE_FIND_PACKAGE_NAME}_HAS_VTKm" "@vtk_has_vtkm@") if (${CMAKE_FIND_PACKAGE_NAME}_HAS_VTKm) - find_package(VTKm - PATHS "${CMAKE_CURRENT_LIST_DIR}/vtkm" - NO_DEFAULT_PATH) + find_package(VTKm CONFIG REQUIRED) if (NOT VTKm_FOUND) set("${CMAKE_FIND_PACKAGE_NAME}_FOUND" 0) endif ()