set(vtkAcceleratorsVTKmFiltersMPICxxTests-MPI_NUMPROCS 2)
vtk_add_test_mpi(vtkAcceleratorsVTKmFiltersMPICxxTests-MPI tests
  TestVTKMFeatureAnalysis.cxx
  )

if (TARGET vtkm::cuda)
  #the enable_language call is scoped! so we have to re-enable
  #cuda in the test directory
  enable_language(CUDA)
  foreach(src IN LISTS tests)
    string(REPLACE "," ";" src ${src})
    list(GET src 0 src)

    set_source_files_properties(${src} PROPERTIES
      LANGUAGE CUDA
      CUDA_SOURCE_PROPERTY_FORMAT OBJ
      CUDA_SEPARABLE_COMPILATION ON)
  endforeach()

  #the tests aren't scoped as a child directory of vtkAcceleratorsVTKmFiltersMPI
  #so we need to redo this logic
  vtkm_get_cuda_flags(CMAKE_CUDA_FLAGS)

  # Temporarily suppress "has address taken but no possible call to it" warnings,
  # until we figure out its implications.
  # We are disabling all warnings as nvlink has no known way to suppress
  # individual warning types.
  string(APPEND CMAKE_CUDA_FLAGS " -Xnvlink -w")
endif()


vtk_test_cxx_executable(vtkAcceleratorsVTKmFiltersMPICxxTests-MPI tests
  RENDERING_FACTORY
  )

if (TARGET vtkm::cuda)
  # When cuda is enabled VTK::AcceleratorsVTKmFiltersMPI is built statically but with fpic
  # enabled so the tests are also built with fpic enabled
  set_target_properties(vtkAcceleratorsVTKmFiltersMPICxxTests-MPI PROPERTIES
    POSITION_INDEPENDENT_CODE ON
    CUDA_ARCHITECTURES OFF)
endif()
