Commit fc398d36 authored by Robert Maynard's avatar Robert Maynard

Make sure vtkm::Vec types are always exported.

parent bd1ff7a5
...@@ -348,13 +348,13 @@ struct Negate ...@@ -348,13 +348,13 @@ struct Negate
// Pre declaration // Pre declaration
template <typename T, vtkm::IdComponent Size> template <typename T, vtkm::IdComponent Size>
class Vec; class VTKM_ALWAYS_EXPORT Vec;
template<typename T> template<typename T>
class VecC; class VTKM_ALWAYS_EXPORTVecC;
template<typename T> template<typename T>
class VecCConst; class VTKM_ALWAYS_EXPORT VecCConst;
namespace detail { namespace detail {
...@@ -377,7 +377,7 @@ namespace detail { ...@@ -377,7 +377,7 @@ namespace detail {
#endif // gcc || clang #endif // gcc || clang
#endif // use cuda < 8 #endif // use cuda < 8
template <typename T, typename DerivedClass> template <typename T, typename DerivedClass>
class VecBaseCommon class VTKM_ALWAYS_EXPORT VecBaseCommon
{ {
public: public:
typedef T ComponentType; typedef T ComponentType;
...@@ -653,7 +653,7 @@ public: ...@@ -653,7 +653,7 @@ public:
/// Base implementation of all Vec classes. /// Base implementation of all Vec classes.
/// ///
template <typename T, vtkm::IdComponent Size, typename DerivedClass> template <typename T, vtkm::IdComponent Size, typename DerivedClass>
class VecBase : public vtkm::detail::VecBaseCommon<T, DerivedClass> class VTKM_ALWAYS_EXPORT VecBase : public vtkm::detail::VecBaseCommon<T, DerivedClass>
{ {
public: public:
typedef T ComponentType; typedef T ComponentType;
...@@ -798,7 +798,7 @@ protected: ...@@ -798,7 +798,7 @@ protected:
/// Base of all VecC and VecCConst classes. /// Base of all VecC and VecCConst classes.
/// ///
template <typename T, typename DerivedClass> template <typename T, typename DerivedClass>
class VecCBase : public vtkm::detail::VecBaseCommon<T, DerivedClass> class VTKM_ALWAYS_EXPORT VecCBase : public vtkm::detail::VecBaseCommon<T, DerivedClass>
{ {
protected: protected:
VTKM_EXEC_CONT VTKM_EXEC_CONT
...@@ -827,7 +827,7 @@ protected: ...@@ -827,7 +827,7 @@ protected:
/// designed for small sequences (seldom more than 10). /// designed for small sequences (seldom more than 10).
/// ///
template<typename T, vtkm::IdComponent Size> template<typename T, vtkm::IdComponent Size>
class Vec : public detail::VecBase<T, Size, Vec<T,Size> > class VTKM_ALWAYS_EXPORT Vec : public detail::VecBase<T, Size, Vec<T,Size> >
{ {
typedef detail::VecBase<T, Size, Vec<T,Size> > Superclass; typedef detail::VecBase<T, Size, Vec<T,Size> > Superclass;
public: public:
...@@ -852,7 +852,7 @@ public: ...@@ -852,7 +852,7 @@ public:
// zero length array which troubles compilers. Vecs of size 0 are a bit // zero length array which troubles compilers. Vecs of size 0 are a bit
// pointless but might occur in some generic functions or classes. // pointless but might occur in some generic functions or classes.
template<typename T> template<typename T>
class Vec<T, 0> class VTKM_ALWAYS_EXPORT Vec<T, 0>
{ {
public: public:
typedef T ComponentType; typedef T ComponentType;
...@@ -892,7 +892,7 @@ public: ...@@ -892,7 +892,7 @@ public:
// Vectors of size 1 should implicitly convert between the scalar and the // Vectors of size 1 should implicitly convert between the scalar and the
// vector. Otherwise, it should behave the same. // vector. Otherwise, it should behave the same.
template<typename T> template<typename T>
class Vec<T,1> : public detail::VecBase<T, 1, Vec<T,1> > class VTKM_ALWAYS_EXPORT Vec<T,1> : public detail::VecBase<T, 1, Vec<T,1> >
{ {
typedef detail::VecBase<T, 1, Vec<T,1> > Superclass; typedef detail::VecBase<T, 1, Vec<T,1> > Superclass;
...@@ -916,7 +916,7 @@ public: ...@@ -916,7 +916,7 @@ public:
// Specializations for common tuple sizes (with special names). // Specializations for common tuple sizes (with special names).
template<typename T> template<typename T>
class Vec<T,2> : public detail::VecBase<T, 2, Vec<T,2> > class VTKM_ALWAYS_EXPORT Vec<T,2> : public detail::VecBase<T, 2, Vec<T,2> >
{ {
typedef detail::VecBase<T, 2, Vec<T,2> > Superclass; typedef detail::VecBase<T, 2, Vec<T,2> > Superclass;
...@@ -940,7 +940,7 @@ typedef vtkm::Vec<vtkm::Id,2> Id2; ...@@ -940,7 +940,7 @@ typedef vtkm::Vec<vtkm::Id,2> Id2;
template<typename T> template<typename T>
class Vec<T,3> : public detail::VecBase<T, 3, Vec<T,3> > class VTKM_ALWAYS_EXPORT Vec<T,3> : public detail::VecBase<T, 3, Vec<T,3> >
{ {
typedef detail::VecBase<T, 3, Vec<T,3> > Superclass; typedef detail::VecBase<T, 3, Vec<T,3> > Superclass;
public: public:
...@@ -965,7 +965,7 @@ typedef vtkm::Vec<vtkm::Id,3> Id3; ...@@ -965,7 +965,7 @@ typedef vtkm::Vec<vtkm::Id,3> Id3;
template<typename T> template<typename T>
class Vec<T,4> : public detail::VecBase<T, 4, Vec<T,4> > class VTKM_ALWAYS_EXPORT Vec<T,4> : public detail::VecBase<T, 4, Vec<T,4> >
{ {
typedef detail::VecBase<T, 4, Vec<T,4> > Superclass; typedef detail::VecBase<T, 4, Vec<T,4> > Superclass;
public: public:
...@@ -1046,7 +1046,7 @@ vtkm::Vec<T,4> make_Vec(const T &x, const T &y, const T &z, const T &w) ...@@ -1046,7 +1046,7 @@ vtkm::Vec<T,4> make_Vec(const T &x, const T &y, const T &z, const T &w)
/// <tt>VecCConst<vtkm::Id></tt>). /// <tt>VecCConst<vtkm::Id></tt>).
/// ///
template<typename T> template<typename T>
class VecC : public detail::VecCBase<T, VecC<T> > class VTKM_ALWAYS_EXPORT VecC : public detail::VecCBase<T, VecC<T> >
{ {
using Superclass = detail::VecCBase<T, VecC<T> >; using Superclass = detail::VecCBase<T, VecC<T> >;
...@@ -1135,7 +1135,7 @@ private: ...@@ -1135,7 +1135,7 @@ private:
/// need to be changed. /// need to be changed.
/// ///
template<typename T> template<typename T>
class VecCConst : public detail::VecCBase<T, VecCConst<T> > class VTKM_ALWAYS_EXPORT VecCConst : public detail::VecCBase<T, VecCConst<T> >
{ {
using Superclass = detail::VecCBase<T, VecCConst<T> >; using Superclass = detail::VecCBase<T, VecCConst<T> >;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment