vcpkg/ports/vtk/vtkm.patch

142 lines
5.0 KiB
Diff
Raw Normal View History

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 ()