From 643d275c3c80bf0a7f276250f78fc668d3da3162 Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Thu, 7 Feb 2019 15:57:54 +0100
Subject: [PATCH] BUG: fix export macros in ImageBase

---
 Modules/Core/ImageBase/include/otbConvertPixelBuffer.h        | 3 ++-
 Modules/Core/ImageBase/include/otbDefaultConvertPixelTraits.h | 3 ++-
 Modules/Core/ImageBase/include/otbExtractROI.h                | 3 ++-
 Modules/Core/ImageBase/include/otbExtractROIBase.h            | 2 +-
 Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h      | 4 ++--
 .../include/otbImageOfVectorsToMonoChannelExtractROI.h        | 3 ++-
 Modules/Core/ImageBase/include/otbMetaImageFunction.h         | 3 ++-
 Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h    | 3 ++-
 .../Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h  | 3 ++-
 Modules/Core/ImageBase/include/otbRemoteSensingRegion.h       | 4 ++--
 10 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/Modules/Core/ImageBase/include/otbConvertPixelBuffer.h b/Modules/Core/ImageBase/include/otbConvertPixelBuffer.h
index dbca823f39..950c557413 100644
--- a/Modules/Core/ImageBase/include/otbConvertPixelBuffer.h
+++ b/Modules/Core/ImageBase/include/otbConvertPixelBuffer.h
@@ -24,6 +24,7 @@
 
 #include <complex>
 #include "itkObject.h"
+#include "OTBImageBaseExport.h"
 
 namespace otb
 {
@@ -46,7 +47,7 @@ template <
   typename OutputPixelType,
   class OutputConvertTraits
   >
-class ConvertPixelBuffer
+class OTBImageBase_EXPORT_TEMPLATE ConvertPixelBuffer
 {
 public:
   /** Determine the output data type. */
diff --git a/Modules/Core/ImageBase/include/otbDefaultConvertPixelTraits.h b/Modules/Core/ImageBase/include/otbDefaultConvertPixelTraits.h
index cf46584008..0f9067223c 100644
--- a/Modules/Core/ImageBase/include/otbDefaultConvertPixelTraits.h
+++ b/Modules/Core/ImageBase/include/otbDefaultConvertPixelTraits.h
@@ -22,13 +22,14 @@
 #define otbDefaultConvertPixelTraits_h
 
 #include "itkDefaultConvertPixelTraits.h"
+#include "OTBImageBaseExport.h"
 
 namespace otb 
 {
 
 
 template < typename PixelType>
-class DefaultConvertPixelTraits 
+class OTBImageBase_EXPORT_TEMPLATE DefaultConvertPixelTraits 
 : public itk::DefaultConvertPixelTraits < PixelType >
 {
 public:
diff --git a/Modules/Core/ImageBase/include/otbExtractROI.h b/Modules/Core/ImageBase/include/otbExtractROI.h
index a2a294268f..e6346381ed 100644
--- a/Modules/Core/ImageBase/include/otbExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbExtractROI.h
@@ -24,6 +24,7 @@
 #include "otbExtractROIBase.h"
 #include "otbImage.h"
 #include "itkMacro.h"
+#include "OTBImageBaseExport.h"
 
 namespace otb
 {
@@ -39,7 +40,7 @@ namespace otb
  * \ingroup OTBImageBase
  */
 template <class TInputPixel, class TOutputPixel>
-class ITK_EXPORT ExtractROI :
+class OTBImageBase_EXPORT_TEMPLATE ExtractROI :
   public ExtractROIBase<Image<TInputPixel, 2>, Image<TOutputPixel, 2> >
 {
 public:
diff --git a/Modules/Core/ImageBase/include/otbExtractROIBase.h b/Modules/Core/ImageBase/include/otbExtractROIBase.h
index 0fa39bff46..913cbc5cd0 100644
--- a/Modules/Core/ImageBase/include/otbExtractROIBase.h
+++ b/Modules/Core/ImageBase/include/otbExtractROIBase.h
@@ -45,7 +45,7 @@ namespace otb
  * \ingroup OTBImageBase
  */
 template <class TInputImage, class TOutputImage>
-class ITK_EXPORT ExtractROIBase :
+class ExtractROIBase :
   public itk::ImageToImageFilter<TInputImage, TOutputImage>
 {
 public:
diff --git a/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h b/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h
index 4beb338e77..65ab555a26 100644
--- a/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h
+++ b/Modules/Core/ImageBase/include/otbImageFunctionAdaptor.h
@@ -24,7 +24,7 @@
 #include "itkImageFunction.h"
 
 #include "otbVariableLengthVectorConverter.h"
-
+#include "OTBImageBaseExport.h"
 
 #include <complex>
 
@@ -46,7 +46,7 @@ namespace otb
  */
 
 template< class TInternalImageFunctionType, class TOutputPrecision = double >
-class ITK_EXPORT ImageFunctionAdaptor :
+class OTBImageBase_EXPORT_TEMPLATE ImageFunctionAdaptor :
     public itk::ImageFunction< typename TInternalImageFunctionType::InputImageType,
                                itk::VariableLengthVector<TOutputPrecision>,
                                typename TInternalImageFunctionType::CoordRepType >
diff --git a/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h b/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h
index b8436d79c4..80f0903358 100644
--- a/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbImageOfVectorsToMonoChannelExtractROI.h
@@ -24,6 +24,7 @@
 #include "otbExtractROIBase.h"
 #include "otbImage.h"
 #include "otbVectorImage.h"
+#include "OTBImageBaseExport.h"
 
 #include "itkMacro.h"
 
@@ -37,7 +38,7 @@ namespace otb
  * \ingroup OTBImageBase
  */
 template <class TInputImage, class TOutputImage>
-class ITK_EXPORT ImageOfVectorsToMonoChannelExtractROI :
+class OTBImageBase_EXPORT_TEMPLATE ImageOfVectorsToMonoChannelExtractROI :
   public ExtractROIBase<TInputImage, TOutputImage>
 {
 public:
diff --git a/Modules/Core/ImageBase/include/otbMetaImageFunction.h b/Modules/Core/ImageBase/include/otbMetaImageFunction.h
index 0706709486..a7b0970435 100644
--- a/Modules/Core/ImageBase/include/otbMetaImageFunction.h
+++ b/Modules/Core/ImageBase/include/otbMetaImageFunction.h
@@ -24,6 +24,7 @@
 #include "itkFunctionBase.h"
 #include "itkPoint.h"
 #include "itkVariableLengthVector.h"
+#include "OTBImageBaseExport.h"
 
 #include <vector>
 
@@ -44,7 +45,7 @@ namespace otb
  * \ingroup OTBImageBase
  */
 template <class TOutputPrecision = double, class TCoordRep = double>
-class ITK_EXPORT MetaImageFunction
+class OTBImageBase_EXPORT_TEMPLATE MetaImageFunction
 : public itk::FunctionBase<itk::Point<TCoordRep, 2>,
   itk::VariableLengthVector<TOutputPrecision> >
 {
diff --git a/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h b/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
index 76bc3f1898..6a621a2f91 100644
--- a/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbMultiChannelExtractROI.h
@@ -23,6 +23,7 @@
 
 #include "otbExtractROIBase.h"
 #include "otbVectorImage.h"
+#include "OTBImageBaseExport.h"
 
 #include "itkMacro.h"
 #include <vector>
@@ -43,7 +44,7 @@ namespace otb
  * \ingroup OTBImageBase
  */
 template <class TInputPixelType, class TOutputPixelType>
-class ITK_EXPORT MultiChannelExtractROI :
+class OTBImageBase_EXPORT_TEMPLATE MultiChannelExtractROI :
   public ExtractROIBase<VectorImage<TInputPixelType, 2>, VectorImage<TOutputPixelType, 2> >
 {
 public:
diff --git a/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h b/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
index 8c3647fed3..f30ca55b4b 100644
--- a/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
+++ b/Modules/Core/ImageBase/include/otbMultiToMonoChannelExtractROI.h
@@ -24,6 +24,7 @@
 #include "otbExtractROIBase.h"
 #include "otbImage.h"
 #include "otbVectorImage.h"
+#include "OTBImageBaseExport.h"
 
 #include "itkMacro.h"
 
@@ -42,7 +43,7 @@ namespace otb
  * \ingroup OTBImageBase
  */
 template <class TInputPixelType, class TOutputPixelType>
-class ITK_EXPORT MultiToMonoChannelExtractROI :
+class OTBImageBase_EXPORT_TEMPLATE MultiToMonoChannelExtractROI :
 //    public ExtractROIBase< itk::VectorImage<TInputPixelType, 2> , itk::Image<TOutputPixelType, 2> >
   public ExtractROIBase<VectorImage<TInputPixelType, 2>, Image<TOutputPixelType, 2> >
 {
diff --git a/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h b/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h
index 1c5f411086..756404c1df 100644
--- a/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h
+++ b/Modules/Core/ImageBase/include/otbRemoteSensingRegion.h
@@ -24,7 +24,7 @@
 #include <algorithm>
 #include <iomanip>
 
-
+#include "OTBImageBaseExport.h"
 #include "otbImageKeywordlist.h"
 #include "itkImageRegion.h"
 #include <string>
@@ -56,7 +56,7 @@ namespace otb
  */
 
 template <class TType>
-class ITK_EXPORT RemoteSensingRegion : public itk::Region
+class OTBImageBase_EXPORT_TEMPLATE RemoteSensingRegion : public itk::Region
 {
 public:
   /** Standard class typedefs. */
-- 
GitLab