vtk-m/vtkm/interop/testing/CMakeLists.txt
Robert Maynard ff687016ee For VTK-m libs all includes of DeviceAdapterTagCuda happen from cuda files
It is very easy to cause ODR violations with DeviceAdapterTagCuda.
If you include that header from a C++ file and a CUDA file inside
the same program we an ODR violation. The reasons is that the C++
versions will say the tag is invalid, and the CUDA will say the
tag is valid.

The solution to this is that any compilation unit that includes
DeviceAdapterTagCuda from a version of VTK-m that has CUDA enabled
must be invoked by the cuda compiler.
2019-04-22 10:39:54 -04:00

50 lines
1.3 KiB
CMake

##============================================================================
## 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.
##============================================================================
set(headers
TestingOpenGLInterop.h
TestingTransferFancyHandles.h
)
vtkm_declare_headers(${headers})
if(NOT TARGET GLUT::GLUT)
find_package(GLUT QUIET)
if(NOT TARGET GLUT::GLUT)
return()
endif()
endif()
# rendering can only have a single backend so we need to
if(VTKm_ENABLE_OSMESA_CONTEXT AND TARGET vtkm_rendering)
list(APPEND unit_tests
UnitTestTransferOSMesa.cxx
UnitTestFancyTransferOSMesa.cxx
)
elseif(VTKm_ENABLE_EGL_CONTEXT AND TARGET vtkm_rendering)
list(APPEND unit_tests
UnitTestTransferEGL.cxx
UnitTestFancyTransferEGL.cxx
)
elseif(VTKm_ENABLE_GL_CONTEXT AND TARGET vtkm_rendering)
list(APPEND unit_tests
UnitTestTransferGLUT.cxx
UnitTestFancyTransferGLUT.cxx
)
endif()
if(unit_tests)
vtkm_unit_tests(SOURCES ${unit_tests}
LIBRARIES vtkm_rendering GLUT::GLUT
DEFINES VTKM_NO_ERROR_ON_MIXED_CUDA_CXX_TAG)
endif()