attempting to fix various build and linking errors

This commit is contained in:
Caitlin Ross 2020-12-15 14:04:04 -05:00
parent 5336fea028
commit 40185ee440
5 changed files with 79 additions and 0 deletions

@ -206,6 +206,10 @@ set(gradient_sources_device
GradientVector.cxx
)
if (VTKm_ADD_XGC_TO_DEFAULT_TYPES_VTK)
list(APPEND gradient_sources_device GradientXGCPoints.cxx)
endif()
vtkm_pyexpander_generated_file(ClipWithFieldSkipInstantiations.hxx)
vtkm_pyexpander_generated_file(ClipWithImplicitFunctionSkipInstantiations.hxx)
vtkm_pyexpander_generated_file(ClipWithFieldSignedInteger.cxx)

@ -213,6 +213,20 @@ extern template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradien
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
#ifdef VTKM_ADD_XGC_DEFAULT_TYPES
extern template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Vec<float, 3>, vtkm::cont::StorageTagXGCCoordinates>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
extern template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Vec<double, 3>, vtkm::cont::StorageTagXGCCoordinates>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
#endif
#endif //vtkm_filter_Gradient_cxx
}
} // namespace vtkm::filter

@ -0,0 +1,35 @@
//============================================================================
// 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.
//============================================================================
#ifndef vtk_m_filter_Gradient_XGC_cxx
#define vtk_m_filter_Gradient_XGC_cxx
#include <vtkm/filter/Gradient.h>
#include <vtkm/filter/Gradient.hxx>
namespace vtkm
{
namespace filter
{
template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Vec<float, 3>, vtkm::cont::StorageTagXGCCoordinates>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
template VTKM_FILTER_GRADIENT_TEMPLATE_EXPORT vtkm::cont::DataSet Gradient::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Vec<double, 3>, vtkm::cont::StorageTagXGCCoordinates>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
}
}
#endif

@ -153,6 +153,19 @@ struct AllCastArraysForStorageImpl<TargetT,
using type = vtkm::ListEmpty;
};
#ifdef VTKM_ADD_XGC_DEFAULT_TYPES
template <typename T>
struct AllCastArraysForStorageImpl<vtkm::Vec<T, 3>, vtkm::cont::StorageTagXGCCoordinates, true>
{
using type = vtkm::List<vtkm::cont::ArrayHandleXGCCoordinates<T>>;
};
template <typename TargetT>
struct AllCastArraysForStorageImpl<TargetT, vtkm::cont::StorageTagXGCCoordinates, false>
{
using type = vtkm::ListEmpty;
};
#endif
// Given a target type and storage of an array handle, provides a list this array handle plus all
// array handles that can be cast to the target type wrapped in an ArrayHandleCast that does so.
template <typename TargetT, typename Storage>

@ -97,6 +97,19 @@ struct CheckSameCoordinateSystem
VTKM_TEST_ASSERT(
test_equal_portals(originalPortal.GetThirdPortal(), filePortal.GetThirdPortal()));
}
#ifdef VTKM_ADD_XGC_DEFAULT_TYPES
// Just added to fix compilation errors when building with XGC types added to default types
// An XGC data set wouldn't be directly written out to a VTK file, it should be converted
// to an explicit grid first and then written out.
template <typename T>
void operator()(const vtkm::cont::ArrayHandle<T, vtkm::cont::StorageTagXGCCoordinates>&,
const vtkm::cont::CoordinateSystem&) const
{
throw vtkm::cont::ErrorBadType("UnitTestVTKDataSetWriter::CheckSameCoordinateSystem() shouldn't"
" be called on ArrayHandleXGCCoordinates");
}
#endif
};
void CheckWrittenReadData(const vtkm::cont::DataSet& originalData,