Commit 8f915d4d authored by Vicente Bolea's avatar Vicente Bolea 💬
Browse files

Filters: Add cmake instantiations generator


Signed-off-by: Vicente Bolea's avatarVicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
parent 9798e72a
Pipeline #239046 passed with stage
......@@ -58,6 +58,51 @@ function(vtkm_pyexpander_generated_file generated_file_name)
endif()
endfunction(vtkm_pyexpander_generated_file)
#-----------------------------------------------------------------------------
# Internal function that parses a C++ header file and extract explicit
# template instantiations.
#
# USAGE:
#
# _vtkm_extract_instantiations(
# instantiations # Out: List of instantiations (; are escaped to $)
# filter_header # In: The path of the header file to parse.
# )
#
function(_vtkm_extract_instantiations instantiations filter_header)
file(STRINGS "${filter_header}" read_file)
foreach(line ${read_file})
if("${line}" MATCHES "VTKM_INSTANTIATION_BEGIN")
set(buf "")
endif()
# Escape semicolon to zip line in list
string(REPLACE ";" "$" line "${line}")
list(APPEND buf ${line})
if("${line}" MATCHES "VTKM_INSTANTIATION_END")
list(JOIN buf "\n" buf)
# Extract, prepare, and store the instantiation
if(${buf} MATCHES
"VTKM_INSTANTIATION_BEGIN(.*)VTKM_INSTANTIATION_END")
set(buf ${CMAKE_MATCH_1})
# Remove heading and trailing spaces and newlines
string(REGEX REPLACE "(^[ \n]+)|([ \n]+$)|([ ]*extern[ ]*)" "" buf ${buf})
string(REPLACE "_TEMPLATE_EXPORT" "_EXPORT" buf ${buf})
list(APPEND _instantiations ${buf})
endif()
endif()
endforeach(line)
set(${instantiations} "${_instantiations}" PARENT_SCOPE)
endfunction(_vtkm_extract_instantiations)
#-----------------------------------------------------------------------------
function(vtkm_generate_export_header lib_name)
# Get the location of this library in the directory structure
......@@ -476,3 +521,87 @@ function(vtkm_library)
endif()
endfunction(vtkm_library)
#-----------------------------------------------------------------------------
# Produce _instantiation-files_ given a filter.
#
# This function will parse the header file of a given filter and for each of
# the extern template found on it, it will produce its corresponding
# _instantiation-files_. Those produced `instantiation-files` are stored in
# the build directory and are not versioned.
#
# Usage:
# vtkm_add_instantiations(
# instantiations_list
# FILTER <name>
# [ INSTANTIATIONS_FILE <path> ]
# )
#
# instantiations_list: Output variable which contain the path of the newly
# produced _instantiation-files_.
#
# FILTER: The name of the filter of which we wish to produce those
# instantiations from.
#
# INSTANTIATIONS_FILE: _Optional_ parameter with the relative path of the file
# which contains the extern template instantiations. When omitted,
# `vtkm_add_instantiations` will default to `${FILTER}.h`.
#
function(vtkm_add_instantiations instantiations_list)
# Parse and validate parameters
set(oneValueArgs FILTER INSTANTIATIONS_FILE)
cmake_parse_arguments(VTKm_instantiations "" "${oneValueArgs}" "" ${ARGN})
if(NOT VTKm_instantiations_FILTER)
message(FATAL_ERROR "vtkm_add_instantiations needs a valid FILTER parameter")
endif()
set(filter ${VTKm_instantiations_FILTER})
set(file_header "${filter}.h")
set(file_template_source "${filter}.h")
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${filter}.hxx")
set(file_template_source "${filter}.hxx")
endif()
# Extract explicit instantiations
set(instantiations_file ${file_header})
if(VTKm_instantiations_INSTANTIATIONS_FILE)
set(instantiations_file ${VTKm_instantiations_INSTANTIATIONS_FILE})
endif()
_vtkm_extract_instantiations(instantiations ${instantiations_file})
# Compute relative path of header files
file(RELATIVE_PATH INSTANTIATION_FILTER_HEADER
${CMAKE_SOURCE_DIR}
"${CMAKE_CURRENT_SOURCE_DIR}/${file_header}"
)
file(RELATIVE_PATH INSTANTIATION_FILTER_TEMPLATE_SOURCE
${CMAKE_SOURCE_DIR}
"${CMAKE_CURRENT_SOURCE_DIR}/${file_template_source}"
)
# Generate instatiation file in the build directory
set(counter 0)
foreach(instantiation IN LISTS instantiations)
string(REPLACE "$" ";" instantiation ${instantiation})
set(INSTANTIATION_FILTER_METHOD "${instantiation}")
set(INSTANTIATION_FILTER_INC_GUARD "vtkm_filter_${filter}Instantiation${counter}_cxx")
# Create instantiation in build directory
set(instantiation_path "${CMAKE_CURRENT_BINARY_DIR}/${filter}Instantiation${counter}.cxx")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/InstantiationTemplate.cxx.in"
${instantiation_path}
@ONLY)
# Return value
list(APPEND _instantiations_list ${instantiation_path})
math(EXPR counter "${counter} + 1")
endforeach(instantiation)
set_source_files_properties(${_instantiations_list}
PROPERTIES SKIP_UNITY_BUILD_INCLUSION OFF
)
set(${instantiations_list} ${_instantiations_list} PARENT_SCOPE)
endfunction(vtkm_add_instantiations)
......@@ -8,6 +8,19 @@
## PURPOSE. See the above copyright notice for more information.
##============================================================================
vtkm_add_instantiations(ContourInstances FILTER Contour)
vtkm_add_instantiations(GradientInstances FILTER Gradient)
vtkm_add_instantiations(ClipWithFieldInstances
FILTER ClipWithField
INSTANTIATIONS_FILE ClipWithFieldExternInstantiations.h
)
vtkm_add_instantiations(ClipWithImplicitFunctionInstances
FILTER ClipWithImplicitFunction
INSTANTIATIONS_FILE ClipWithImplicitFunctionExternInstantiations.h
)
set(common_headers
CellAverage.h
CellMeasures.h
......@@ -30,6 +43,7 @@ set(common_headers
PolicyDefault.h
Threshold.h
ThresholdPoints.h
Instantiations.h
)
set(common_header_template_sources
......@@ -120,8 +134,8 @@ set(extra_header_template_sources
CellSetConnectivity.hxx
ClipWithField.hxx
ClipWithImplicitFunction.hxx
ClipWithFieldSkipInstantiations.hxx
ClipWithImplicitFunctionSkipInstantiations.hxx
ClipWithFieldExternInstantiations.h
ClipWithImplicitFunctionExternInstantiations.h
ComputeMoments.hxx
CoordinateSystemTransform.hxx
CrossProduct.hxx
......@@ -170,10 +184,8 @@ set(extra_header_template_sources
)
set(extra_sources_device
ClipWithFieldScalar.cxx
ClipWithFieldSignedInteger.cxx
ClipWithFieldUnsignedInteger.cxx
ClipWithImplicitFunction.cxx
${ClipWithFieldInstances}
${ClipWithImplicitFunctionInstances}
ExternalFaces.cxx
VectorMagnitude.cxx
particleadvection/Messenger.cxx
......@@ -198,8 +210,7 @@ set(contour_header_template_sources
set(contour_sources_device
Contour.cxx
ContourInteger.cxx
ContourScalar.cxx
${ContourInstances}
Slice.cxx
)
......@@ -212,23 +223,13 @@ set(gradient_header_template_sources
)
set(gradient_sources_device
GradientCartesianPoints.cxx
GradientScalar.cxx
GradientUniformPoints.cxx
GradientVector.cxx
${GradientInstances}
)
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)
vtkm_pyexpander_generated_file(ClipWithFieldUnsignedInteger.cxx)
vtkm_pyexpander_generated_file(ClipWithImplicitFunction.cxx)
vtkm_pyexpander_generated_file(ClipWithFieldExternInstantiations.h)
vtkm_pyexpander_generated_file(ClipWithImplicitFunctionExternInstantiations.h)
set_source_files_properties(Contour.cxx ExtractStructured.cxx ClipWithField.cxx ClipWithImplicitFunction.cxx PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
set_source_files_properties(Contour.cxx ExtractStructured.cxx ClipWithField.cxx PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
add_library(vtkm_filter INTERFACE)
......@@ -264,6 +265,14 @@ vtkm_library(
USE_VTKM_JOB_POOL
)
set_property(TARGET
vtkm_filter_common
vtkm_filter_extra
vtkm_filter_contour
vtkm_filter_gradient
PROPERTY UNITY_BUILD_MODE GROUP
)
target_link_libraries(vtkm_filter_common PUBLIC vtkm_worklet)
target_link_libraries(vtkm_filter_extra PUBLIC vtkm_filter_common)
target_link_libraries(vtkm_filter_contour PUBLIC vtkm_filter_common)
......@@ -278,7 +287,8 @@ target_link_libraries(vtkm_filter PUBLIC INTERFACE
vtkm_filter_extra
vtkm_filter_contour
vtkm_filter_gradient
vtkm_filter_common)
vtkm_filter_common
)
install(TARGETS vtkm_filter EXPORT ${VTKm_EXPORT_NAME})
......
......@@ -109,4 +109,8 @@ VTKM_FILTER_EXTRA_EXPORT_EXECUTE_METHOD(ClipWithField);
}
} // namespace vtkm::filter
#ifndef vtk_m_filter_ClipWithFieldExternInstantiations_h
#include <vtkm/filter/ClipWithFieldExternInstantiations.h>
#endif
#endif // vtk_m_filter_ClipWithField_h
......@@ -19,13 +19,6 @@
#include <vtkm/cont/DynamicCellSet.h>
#include <vtkm/cont/ErrorFilterExecution.h>
// Do not instantiation common concrete types unless we are compiling the
// corresponding TU.
#if !defined(vtkm_filter_ClipWithFieldExecuteInteger_cxx) || \
!defined(vtkm_filter_ClipWithFieldExecuteScalar_cxx)
#include <vtkm/filter/ClipWithFieldSkipInstantiations.hxx>
#endif
namespace vtkm
{
namespace filter
......
......@@ -8,14 +8,15 @@
// PURPOSE. See the above copyright notice for more information.
//============================================================================
////////////////////////// **** DO NOT EDIT THIS FILE!!! ****
// This file is automatically generated by ClipWithFieldSkipInstantiations.hxx.in
// This file is automatically generated by ClipWithFieldExternInstantiations.h.in
// clang-format off
#ifndef vtk_m_filter_ClipWithFieldSkipInstantiations_hxx
#define vtk_m_filter_ClipWithFieldSkipInstantiations_hxx
#ifndef vtk_m_filter_ClipWithFieldExternInstantiations_h
#define vtk_m_filter_ClipWithFieldExternInstantiations_h
#include <vtkm/filter/ClipWithField.h>
#include <vtkm/filter/ClipWithField.hxx>
#include <vtkm/filter/Instantiations.h>
#include <vtkm/cont/ArrayHandlePermutation.h>
#include <vtkm/cont/CellSetPermutation.h>
......@@ -30,12 +31,15 @@ namespace filter
#ifndef vtkm_filter_ClipWithFieldExecuteScalar_cxx
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float32>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -45,13 +49,17 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float64>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -61,17 +69,21 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
#endif // vtkm_filter_ClipWithFieldExecuteScalar_cxx
#ifndef vtkm_filter_ClipWithFieldExecuteSignedInteger_cxx
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Int8>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -81,13 +93,17 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Int16>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -97,13 +113,17 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Int32>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -113,13 +133,17 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Int64>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -129,17 +153,21 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
#endif // vtkm_filter_ClipWithFieldExecuteSignedInteger_cxx
#ifndef vtkm_filter_ClipWithFieldExecuteUnsignedInteger_cxx
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::UInt8>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -149,13 +177,17 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::UInt16>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -165,13 +197,17 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::UInt32>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -181,13 +217,17 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::UInt64>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -197,6 +237,7 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
#endif // vtkm_filter_ClipWithFieldExecuteUnsignedInteger_cxx
......
......@@ -16,18 +16,19 @@
//$# To build the source code, execute the following (after installing
//$# pyexpander, of course):
//$#
//$# expander.py ClipWithFieldSkipInstantiations.hxx.in > ClipWithFieldSkipInstantiations.hxx
//$# expander.py ClipWithFieldExternInstantiations.h.in > ClipWithFieldExternInstantiations.h
//$#
//$# Ignore the following comment. It is meant for the generated file.
// **** DO NOT EDIT THIS FILE!!! ****
// This file is automatically generated by ClipWithFieldSkipInstantiations.hxx.in
// This file is automatically generated by ClipWithFieldExternInstantiations.h.in
// clang-format off
#ifndef vtk_m_filter_ClipWithFieldSkipInstantiations_hxx
#define vtk_m_filter_ClipWithFieldSkipInstantiations_hxx
#ifndef vtk_m_filter_ClipWithFieldExternInstantiations_h
#define vtk_m_filter_ClipWithFieldExternInstantiations_h
#include <vtkm/filter/ClipWithField.h>
#include <vtkm/filter/ClipWithField.hxx>
#include <vtkm/filter/Instantiations.h>
#include <vtkm/cont/ArrayHandlePermutation.h>
#include <vtkm/cont/CellSetPermutation.h>
......@@ -64,12 +65,15 @@ $for((TU, types) in translationUnits.items())\
#ifndef $(TU)
$for(TYPE in types)\
VTKM_INSTANTIATION_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<$(TYPE)>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_INSTANTIATION_END
VTKM_INSTANTIATION_BEGIN
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
......@@ -79,6 +83,7 @@ extern template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoEx
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
VTKM_INSTANTIATION_END
$endfor\
#endif // $(TU)
......
//============================================================================
// 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 vtkm_filter_ClipWithFieldExecuteScalar_cxx
#define vtkm_filter_ClipWithFieldExecuteScalar_cxx
#include <vtkm/filter/ClipWithField.h>
#include <vtkm/filter/ClipWithField.hxx>
namespace vtkm
{
namespace filter
{
template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float32>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float32, vtkm::cont::StorageTagVirtual>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float64>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN
template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<vtkm::Float64, vtkm::cont::StorageTagVirtual>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
VTKM_DEPRECATED_SUPPRESS_END
#endif
}
}
#endif
//============================================================================
// 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.
//============================================================================
////////////////////////// **** DO NOT EDIT THIS FILE!!! ****
// This file is automatically generated by ClipWithFieldSignedInteger.cxx.in
// clang-format off
#ifndef vtkm_filter_ClipWithFieldExecuteSignedInteger_cxx
#define vtkm_filter_ClipWithFieldExecuteSignedInteger_cxx
#include <vtkm/filter/ClipWithField.h>
#include <vtkm/filter/ClipWithField.hxx>
namespace vtkm
{
namespace filter
{
template VTKM_FILTER_EXTRA_EXPORT vtkm::cont::DataSet ClipWithField::DoExecute(
const vtkm::cont::DataSet&,
const vtkm::cont::ArrayHandle<char>&,
const vtkm::filter::FieldMetadata&,
vtkm::filter::PolicyBase<vtkm::filter::PolicyDefault>);
#ifndef VTKM_NO_DEPRECATED_VIRTUAL
VTKM_DEPRECATED_SUPPRESS_BEGIN