8035b526a8
Now components are labeled as devices, and therefore allow other components to link to only backends. We also have done the same thing for rendering.
180 lines
4.0 KiB
CMake
180 lines
4.0 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.
|
|
##
|
|
## Copyright 2016 Sandia Corporation.
|
|
## Copyright 2016 UT-Battelle, LLC.
|
|
## Copyright 2016 Los Alamos National Security.
|
|
##
|
|
## Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
|
|
## the U.S. Government retains certain rights in this software.
|
|
##
|
|
## Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National
|
|
## Laboratory (LANL), the U.S. Government retains certain rights in
|
|
## this software.
|
|
##============================================================================
|
|
|
|
set(headers
|
|
Actor.h
|
|
AxisAnnotation.h
|
|
AxisAnnotation2D.h
|
|
AxisAnnotation3D.h
|
|
BitmapFont.h
|
|
BitmapFontFactory.h
|
|
BoundingBoxAnnotation.h
|
|
Camera.h
|
|
Canvas.h
|
|
CanvasRayTracer.h
|
|
Color.h
|
|
ColorBarAnnotation.h
|
|
ColorTable.h
|
|
DecodePNG.h
|
|
MatrixHelpers.h
|
|
Scene.h
|
|
Mapper.h
|
|
MapperRayTracer.h
|
|
MapperVolume.h
|
|
TextAnnotation.h
|
|
TextAnnotationBillboard.h
|
|
TextAnnotationScreen.h
|
|
Triangulator.h
|
|
View.h
|
|
View1D.h
|
|
View2D.h
|
|
View3D.h
|
|
WorldAnnotator.h
|
|
)
|
|
|
|
set(sources
|
|
Actor.cxx
|
|
AxisAnnotation.cxx
|
|
AxisAnnotation2D.cxx
|
|
AxisAnnotation3D.cxx
|
|
BitmapFont.cxx
|
|
BitmapFontFactory.cxx
|
|
BoundingBoxAnnotation.cxx
|
|
Camera.cxx
|
|
Canvas.cxx
|
|
CanvasRayTracer.cxx
|
|
Color.cxx
|
|
ColorBarAnnotation.cxx
|
|
ColorTable.cxx
|
|
DecodePNG.cxx
|
|
Mapper.cxx
|
|
MapperRayTracer.cxx
|
|
MapperVolume.cxx
|
|
Scene.cxx
|
|
TextAnnotation.cxx
|
|
TextAnnotationBillboard.cxx
|
|
TextAnnotationScreen.cxx
|
|
View.cxx
|
|
View1D.cxx
|
|
View2D.cxx
|
|
View3D.cxx
|
|
WorldAnnotator.cxx
|
|
|
|
internal/RunTriangulator.cxx
|
|
raytracing/Ray.cxx
|
|
)
|
|
|
|
set(opengl_headers
|
|
CanvasGL.h
|
|
MapperGL.h
|
|
TextureGL.h
|
|
WorldAnnotatorGL.h
|
|
)
|
|
|
|
set(opengl_sources
|
|
CanvasGL.cxx
|
|
MapperGL.cxx
|
|
TextureGL.cxx
|
|
WorldAnnotatorGL.cxx
|
|
)
|
|
|
|
set(egl_headers
|
|
CanvasEGL.h
|
|
)
|
|
|
|
set(egl_sources
|
|
CanvasEGL.cxx
|
|
)
|
|
|
|
set(osmesa_headers
|
|
CanvasOSMesa.h
|
|
)
|
|
|
|
set(osmesa_sources
|
|
CanvasOSMesa.cxx
|
|
)
|
|
|
|
# This list of sources has code that uses devices and so might need to be
|
|
# compiled with a device-specific compiler (like CUDA).
|
|
set(device_sources
|
|
CanvasRayTracer.cxx
|
|
)
|
|
|
|
#-----------------------------------------------------------------------------
|
|
vtkm_configure_component_OpenGL()
|
|
if(VTKm_OpenGL_FOUND)
|
|
list(APPEND headers ${opengl_headers})
|
|
list(APPEND sources ${opengl_sources})
|
|
|
|
vtkm_configure_component_OSMesa()
|
|
if(VTKm_OSMesa_FOUND)
|
|
list(APPEND headers ${osmesa_headers})
|
|
list(APPEND sources ${osmesa_sources})
|
|
endif()
|
|
|
|
vtkm_configure_component_EGL()
|
|
if(VTKm_EGL_FOUND)
|
|
list(APPEND headers ${egl_headers})
|
|
list(APPEND sources ${egl_sources})
|
|
endif()
|
|
endif()
|
|
|
|
if(VTKm_ENABLE_OSMESA AND NOT VTKm_OSMesa_FOUND)
|
|
message(SEND_ERROR "OSMesa was requested by not properly configured.
|
|
Either make sure the OSMesa headers and library are properly found or set
|
|
VTKm_ENABLE_OSMESA to OFF.")
|
|
endif()
|
|
|
|
vtkm_declare_headers(${headers})
|
|
|
|
if (VTKm_ENABLE_CUDA)
|
|
vtkm_library(
|
|
SOURCES ${sources}
|
|
CUDA
|
|
WRAP_FOR_CUDA ${device_sources}
|
|
)
|
|
else()
|
|
vtkm_library(
|
|
SOURCES ${sources}
|
|
)
|
|
endif()
|
|
|
|
target_link_libraries(vtkm_rendering
|
|
PUBLIC vtkm_cont
|
|
PRIVATE ${VTKm_OPENGL_LIBRARIES}
|
|
${VTKm_BACKEND_LIBRARIES}
|
|
)
|
|
target_include_directories(vtkm_rendering
|
|
PRIVATE ${VTKm_OPENGL_INCLUDE_DIRS}
|
|
${VTKm_BACKEND_INCLUDE_DIRS}
|
|
)
|
|
|
|
# Subclasses need rendering library
|
|
vtkm_configure_component_Rendering()
|
|
|
|
add_subdirectory(internal)
|
|
add_subdirectory(raytracing)
|
|
|
|
|
|
|
|
|
|
#-----------------------------------------------------------------------------
|
|
add_subdirectory(testing)
|