CMakeLists.txt 4.67 KB
Newer Older
1 2 3 4 5 6 7 8
##============================================================================
##  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.
##
9
##  Copyright 2014 National Technology & Engineering Solutions of Sandia, LLC (NTESS).
10
##  Copyright 2014 UT-Battelle, LLC.
11
##  Copyright 2014 Los Alamos National Security.
12
##
13
##  Under the terms of Contract DE-NA0003525 with NTESS,
14 15 16 17 18 19 20 21
##  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
22
  Algorithm.h
23
  ArrayCopy.h
24
  ArrayHandle.h
Sujin Philip's avatar
Sujin Philip committed
25
  ArrayHandleCast.h
26
  ArrayHandleCartesianProduct.h
27
  ArrayHandleCompositeVector.h
28
  ArrayHandleConstant.h
29
  ArrayHandleCounting.h
30
  ArrayHandleExtractComponent.h
31
  ArrayHandleDiscard.h
32
  ArrayHandleGroupVec.h
33
  ArrayHandleGroupVecVariable.h
34
  ArrayHandleImplicit.h
35
  ArrayHandleIndex.h
36
  ArrayHandlePermutation.h
37
  ArrayHandleReverse.h
38
  ArrayHandleStreaming.h
39
  ArrayHandleSwizzle.h
40
  ArrayHandleTransform.h
41
  ArrayHandleUniformPointCoordinates.h
42
  ArrayHandleVirtualCoordinates.h
Robert Maynard's avatar
Robert Maynard committed
43
  ArrayHandleZip.h
44
  ArrayPortal.h
45
  ArrayPortalToIterators.h
46
  ArrayHandleConcatenate.h
47
  ArrayRangeCompute.h
48
  AssignerMultiBlock.h
49
  AtomicArray.h
50 51
  BoundingIntervalHierarchyNode.h
  BoundingIntervalHierarchy.h
52 53
  BoundsCompute.h
  BoundsGlobalCompute.h
54
  CellLocator.h
55
  CellLocatorHelper.h
Sujin Philip's avatar
Sujin Philip committed
56
  CellLocatorTwoLevelUniformGrid.h
57 58
  CellSet.h
  CellSetExplicit.h
59
  CellSetListTag.h
60
  CellSetSingleType.h
61
  CellSetStructured.h
62
  CellSetPermutation.h
63 64
  ColorTable.h
  ColorTableSamples.h
65
  CoordinateSystem.h
66
  DataSet.h
67 68
  DataSetBuilderExplicit.h
  DataSetBuilderRectilinear.h
69
  DataSetBuilderUniform.h
70
  DataSetFieldAdd.h
71
  DeviceAdapter.h
72
  DeviceAdapterAlgorithm.h
73
  DeviceAdapterListTag.h
74
  DynamicArrayHandle.h
75
  DynamicCellSet.h
76
  EnvironmentTracker.h
77
  Error.h
78
  ErrorBadAllocation.h
Sujin Philip's avatar
Sujin Philip committed
79
  ErrorBadDevice.h
80 81
  ErrorBadType.h
  ErrorBadValue.h
82
  ErrorFilterExecution.h
83
  ErrorExecution.h
84
  ErrorInternal.h
85
  ExecutionObjectBase.h
86
  Field.h
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
87 88
  FieldRangeCompute.h
  FieldRangeGlobalCompute.h
89
  ImplicitFunctionHandle.h
dongliangchu's avatar
dongliangchu committed
90
  MultiBlock.h
91
  PointLocator.h
Li-Ta Lo's avatar
Li-Ta Lo committed
92
  PointLocatorUniformGrid.h
93
  RuntimeDeviceInformation.h
94
  RuntimeDeviceTracker.h
95 96 97 98
  Storage.h
  StorageBasic.h
  StorageImplicit.h
  StorageListTag.h
Kenneth Moreland's avatar
Kenneth Moreland committed
99
  Timer.h
100
  TryExecute.h
101
  VirtualObjectHandle.h
102 103
  )

104
set(template_sources
105
  ArrayHandle.hxx
106
  ArrayRangeCompute.hxx
107
  BoundingIntervalHierarchy.hxx
108
  CellSetExplicit.hxx
109
  CellSetStructured.hxx
110
  CoordinateSystem.hxx
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
111 112
  FieldRangeCompute.hxx
  FieldRangeGlobalCompute.hxx
113
  StorageBasic.hxx
114 115 116 117
  )

set(sources
  ArrayHandle.cxx
118
  AssignerMultiBlock.cxx
119 120
  BoundsCompute.cxx
  BoundsGlobalCompute.cxx
121 122
  CellSet.cxx
  CellSetStructured.cxx
123
  DataSet.cxx
124 125 126
  DataSetBuilderExplicit.cxx
  DataSetBuilderRectilinear.cxx
  DataSetBuilderUniform.cxx
127
  DynamicArrayHandle.cxx
128
  EnvironmentTracker.cxx
129
  Field.cxx
Utkarsh Ayachit's avatar
Utkarsh Ayachit committed
130 131
  FieldRangeCompute.cxx
  FieldRangeGlobalCompute.cxx
132
  internal/ArrayHandleBasicImpl.cxx
133 134 135
  internal/ArrayManagerExecutionShareWithControl.cxx
  internal/SimplePolymorphicContainer.cxx
  MultiBlock.cxx
136
  PresetColorTables.cxx
137
  RuntimeDeviceTracker.cxx
138
  StorageBasic.cxx
139
  TryExecute.cxx
140 141
  )

142 143 144
# 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
145
  ArrayRangeCompute.cxx
146
  CellSetExplicit.cxx
147
  ColorTable.cxx
148
  CoordinateSystem.cxx
149 150
  )

151
#-----------------------------------------------------------------------------
152 153 154 155 156 157
vtkm_library( NAME vtkm_cont
              SOURCES ${sources}
              TEMPLATE_SOURCES ${template_sources}
              HEADERS ${headers}
              WRAP_FOR_CUDA ${device_sources}
            )
158
add_subdirectory(internal)
Kenneth Moreland's avatar
Kenneth Moreland committed
159
add_subdirectory(arg)
160
add_subdirectory(diy)
161
add_subdirectory(serial)
162
add_subdirectory(tbb)
163
add_subdirectory(openmp)
164 165 166
add_subdirectory(cuda)

set(backends )
167
if(TARGET vtkm::tbb)
168
  list(APPEND backends vtkm::tbb)
169
endif()
170
if(TARGET vtkm::cuda)
171
  list(APPEND backends vtkm::cuda)
172
endif()
173 174 175
if(TARGET vtkm::openmp)
  list(APPEND backends vtkm::openmp)
endif()
176
target_link_libraries(vtkm_cont PUBLIC vtkm_compiler_flags ${backends})
177
if(TARGET vtkm_diy)
178
  # This will become a required dependency eventually.
179
  target_link_libraries(vtkm_cont PUBLIC vtkm_diy vtkm_taotuple)
180 181
endif()

182
#-----------------------------------------------------------------------------
183
add_subdirectory(testing)