[med-svn] [insighttoolkit] 02/07: New upstream version 4.12.2-dfsg1
Gert Wollny
gewo at moszumanska.debian.org
Thu Oct 5 10:10:34 UTC 2017
This is an automated email from the git hooks/post-receive script.
gewo pushed a commit to branch master
in repository insighttoolkit.
commit d48db90daf97b10bc5f4fb53c85dcfd858a21101
Author: Gert Wollny <gewo at debian.org>
Date: Thu Oct 5 09:18:58 2017 +0000
New upstream version 4.12.2-dfsg1
---
CMakeLists.txt | 2 +-
Modules/Core/GPUCommon/include/itkGPUImage.h | 3 +-
Modules/Core/GPUCommon/include/itkGPUImage.hxx | 25 +-----
.../include/itkEllipseSpatialObject.hxx | 6 --
.../src/itkCylinderSpatialObject.cxx | 96 ++++++++--------------
.../test/itkCylinderSpatialObjectTest.cxx | 35 ++++++--
.../GPUSmoothing/include/itkGPUMeanImageFilter.h | 10 +--
.../GPUSmoothing/include/itkGPUMeanImageFilter.hxx | 3 -
Modules/IO/NIFTI/include/itkNiftiImageIO.h | 25 +++++-
Modules/IO/NIFTI/itk-module.cmake | 3 +-
Modules/IO/NIFTI/src/itkNiftiImageIO.cxx | 44 +++++++++-
.../include/itkGPUDemonsRegistrationFunction.hxx | 4 +-
.../Remote/AnisotropicDiffusionLBR.remote.cmake | 2 +-
Modules/ThirdParty/KWSys/src/CMakeLists.txt | 6 +-
14 files changed, 150 insertions(+), 114 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2b2bd80..5b0a67e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,7 +74,7 @@ set(main_project_name ${_ITKModuleMacros_DEFAULT_LABEL})
# ITK version number.
set(ITK_VERSION_MAJOR "4")
set(ITK_VERSION_MINOR "12")
-set(ITK_VERSION_PATCH "1")
+set(ITK_VERSION_PATCH "2")
if(NOT ITK_INSTALL_RUNTIME_DIR)
set(ITK_INSTALL_RUNTIME_DIR bin)
diff --git a/Modules/Core/GPUCommon/include/itkGPUImage.h b/Modules/Core/GPUCommon/include/itkGPUImage.h
index d238875..117fc31 100644
--- a/Modules/Core/GPUCommon/include/itkGPUImage.h
+++ b/Modules/Core/GPUCommon/include/itkGPUImage.h
@@ -156,8 +156,7 @@ public:
}
itkGetModifiableObjectMacro(DataManager, GPUImageDataManager< GPUImage >);
-
- GPUDataManager::Pointer GetGPUDataManager() const;
+ GPUDataManager * GetGPUDataManager();
/* Override DataHasBeenGenerated() in DataObject class.
* We need this because CPU time stamp is always bigger
diff --git a/Modules/Core/GPUCommon/include/itkGPUImage.hxx b/Modules/Core/GPUCommon/include/itkGPUImage.hxx
index 83bd4d7..ac75957 100644
--- a/Modules/Core/GPUCommon/include/itkGPUImage.hxx
+++ b/Modules/Core/GPUCommon/include/itkGPUImage.hxx
@@ -161,15 +161,10 @@ const TPixel * GPUImage< TPixel, VImageDimension >::GetBufferPointer() const
}
template <typename TPixel, unsigned int VImageDimension>
-GPUDataManager::Pointer
-GPUImage< TPixel, VImageDimension >::GetGPUDataManager() const
+GPUDataManager *
+GPUImage< TPixel, VImageDimension >::GetGPUDataManager()
{
- typedef typename GPUImageDataManager< GPUImage >::Superclass GPUImageDataSuperclass;
- typedef typename GPUImageDataSuperclass::Pointer GPUImageDataSuperclassPointer;
-
- return static_cast< GPUImageDataSuperclassPointer >( m_DataManager.GetPointer() );
-
- //return m_DataManager.GetPointer();
+ return m_DataManager.GetPointer();
}
template <typename TPixel, unsigned int VImageDimension>
@@ -178,29 +173,17 @@ GPUImage< TPixel, VImageDimension >::Graft(const Self *data)
{
typedef GPUImageDataManager< GPUImage > GPUImageDataManagerType;
- // Pass regular pointer to Graft() instead of smart pointer due to type
- // casting problem
- GPUImageDataManagerType* ptr = static_cast<GPUImageDataManagerType*>(
- ( data->GetGPUDataManager() ).GetPointer() );
+ GPUImageDataManagerType* ptr = const_cast<GPUImageDataManagerType*>( data->GetDataManager() );
// call the superclass' implementation
Superclass::Graft(ptr->GetImagePointer());
- // Debug
- //std::cout << "GPU timestamp : " << m_DataManager->GetMTime() << ", CPU
- // timestamp : " << this->GetMTime() << std::endl;
-
// call GPU data graft function
m_DataManager->SetImagePointer( this );
m_DataManager->Graft( ptr );
// Synchronize timestamp of GPUImage and GPUDataManager
m_DataManager->SetTimeStamp( this->GetTimeStamp() );
-
- // Debug
- //std::cout << "GPU timestamp : " << m_DataManager->GetMTime() << ", CPU
- // timestamp : " << this->GetMTime() << std::endl;
-
}
template <typename TPixel, unsigned int VImageDimension>
diff --git a/Modules/Core/SpatialObjects/include/itkEllipseSpatialObject.hxx b/Modules/Core/SpatialObjects/include/itkEllipseSpatialObject.hxx
index a8cd96b..def4e54 100644
--- a/Modules/Core/SpatialObjects/include/itkEllipseSpatialObject.hxx
+++ b/Modules/Core/SpatialObjects/include/itkEllipseSpatialObject.hxx
@@ -59,12 +59,6 @@ bool
EllipseSpatialObject< TDimension >
::IsInside(const PointType & point) const
{
- this->ComputeLocalBoundingBox();
- if ( !this->GetBounds()->IsInside(point) )
- {
- return false;
- }
-
if ( !this->SetInternalInverseTransformToWorldToIndexTransform() )
{
return false;
diff --git a/Modules/Core/SpatialObjects/src/itkCylinderSpatialObject.cxx b/Modules/Core/SpatialObjects/src/itkCylinderSpatialObject.cxx
index 97ae629..99f750c 100644
--- a/Modules/Core/SpatialObjects/src/itkCylinderSpatialObject.cxx
+++ b/Modules/Core/SpatialObjects/src/itkCylinderSpatialObject.cxx
@@ -46,55 +46,20 @@ bool CylinderSpatialObject
PointType transformedPoint =
this->GetInternalInverseTransform()->TransformPoint(point);
- this->ComputeLocalBoundingBox();
-
- if ( this->GetBounds()->IsInside(point) )
+ // Does the point lie above or below the cylinder (y-axis)?
+ if ( transformedPoint[1] < -0.5 * m_Height ||
+ transformedPoint[1] > 0.5 * m_Height )
{
- // Check if the point is on the normal plane
- PointType a, b;
- a[0] = 0;
- a[1] = -m_Height / 2;
- a[2] = 0;
-
- b[0] = 0;
- b[1] = m_Height / 2;
- b[2] = 0;
-
- double A = 0;
- double B = 0;
-
- for ( unsigned int i = 0; i < 3; i++ )
- {
- A += ( b[i] - a[i] ) * ( transformedPoint[i] - a[i] );
- B += ( b[i] - a[i] ) * ( b[i] - a[i] );
- }
-
- double lambda = A / B;
-
- if ( (
- ( lambda > -( m_Radius / ( 2 * std::sqrt(B) ) ) )
- && ( lambda < 0 ) )
- || ( ( lambda <= 1.0 ) && ( lambda >= 0.0 ) )
- )
- {
- PointType p;
-
- for ( unsigned int i = 0; i < 3; i++ )
- {
- p[i] = a[i] + lambda * ( b[i] - a[i] );
- }
-
- double tempSquareDist = transformedPoint.EuclideanDistanceTo(p);
-
- double R = m_Radius;
+ return false;
+ }
- if ( tempSquareDist <= R )
- {
- return true;
- }
- }
+ // Does the point lie outside the radius of the cylinder?
+ if ( Math::sqr(transformedPoint[0]) + Math::sqr(transformedPoint[2]) > Math::sqr(m_Radius) )
+ {
+ return false;
}
- return false;
+
+ return true;
}
/** Test if the given point is inside the Cylinder */
@@ -130,28 +95,37 @@ bool CylinderSpatialObject
if ( this->GetBoundingBoxChildrenName().empty()
|| strstr( typeid( Self ).name(), this->GetBoundingBoxChildrenName().c_str() ) )
{
- // First point
+ // First we compute the bounding box in the index space
+ BoundingBoxType::Pointer bb = BoundingBoxType::New();
PointType ptMin, ptMax;
ptMin[0] = -m_Radius;
ptMin[1] = -m_Height / 2;
ptMin[2] = -m_Radius;
+ ptMax[0] = m_Radius;
+ ptMax[1] = m_Height / 2;
+ ptMax[2] = m_Radius;
+ bb->SetMinimum(ptMin);
+ bb->SetMaximum(ptMax);
+
+ // Initialize the final bounding box by setting the min and max to the
+ // transformed ptMin and ptMax.
ptMin = this->GetIndexToWorldTransform()->TransformPoint(ptMin);
- ptMax[0] = +m_Radius;
- ptMax[1] = -m_Height / 2;
- ptMax[2] = +m_Radius;
- ptMax = this->GetIndexToWorldTransform()->TransformPoint(ptMax);
const_cast< BoundingBoxType * >( this->GetBounds() )->SetMinimum(ptMin);
- const_cast< BoundingBoxType * >( this->GetBounds() )->SetMaximum(ptMax);
- ptMin[0] = -m_Radius;
- ptMin[1] = +m_Height / 2;
- ptMin[2] = -m_Radius;
- ptMin = this->GetIndexToWorldTransform()->TransformPoint(ptMin);
- ptMax[0] = +m_Radius;
- ptMax[1] = +m_Height / 2;
- ptMax[2] = +m_Radius;
ptMax = this->GetIndexToWorldTransform()->TransformPoint(ptMax);
- const_cast< BoundingBoxType * >( this->GetBounds() )->ConsiderPoint(ptMin);
- const_cast< BoundingBoxType * >( this->GetBounds() )->ConsiderPoint(ptMax);
+ const_cast< BoundingBoxType * >( this->GetBounds() )->SetMaximum(ptMax);
+
+ // Transform all corners of the bounding box in index space to world space,
+ // and make sure that the final bounding box includes these.
+ const BoundingBoxType::PointsContainer *corners = bb->GetCorners();
+ BoundingBoxType::PointsContainer::const_iterator
+ itBB = corners->begin();
+ while ( itBB != corners->end() )
+ {
+ PointType pnt =
+ this->GetIndexToWorldTransform()->TransformPoint(*itBB);
+ const_cast< BoundingBoxType * >( this->GetBounds() )->ConsiderPoint(pnt);
+ ++itBB;
+ }
}
return true;
}
diff --git a/Modules/Core/SpatialObjects/test/itkCylinderSpatialObjectTest.cxx b/Modules/Core/SpatialObjects/test/itkCylinderSpatialObjectTest.cxx
index 70028b5..d5694da 100644
--- a/Modules/Core/SpatialObjects/test/itkCylinderSpatialObjectTest.cxx
+++ b/Modules/Core/SpatialObjects/test/itkCylinderSpatialObjectTest.cxx
@@ -29,6 +29,7 @@ int itkCylinderSpatialObjectTest(int, char* [])
CylinderType::Pointer myCylinder = CylinderType::New();
double radius = 3.0;
double height = 12.0;
+ itk::Vector<double, 3> axis;
std::cout << "Testing Print after construction " << std::endl;
myCylinder->Print( std::cout );
@@ -79,15 +80,39 @@ int itkCylinderSpatialObjectTest(int, char* [])
|| itk::Math::NotAlmostEquals(boundingBox->GetBounds()[4], -3.0 )
|| itk::Math::NotAlmostEquals(boundingBox->GetBounds()[5], 3.0 )
)
- {
- std::cout<<"[FAILED]"<<std::endl;
- return EXIT_FAILURE;
- }
+ {
+ std::cout<<"[FAILED]"<<std::endl;
+ return EXIT_FAILURE;
+ }
+ std::cout << "[PASSED]" << std::endl;
+
+ // ComputeBoundingBox after 45 degree rotation.
+ std::cout << "ComputeBoundingBox after 45 degree rotation: ";
+ axis.Fill(0);
+ axis[0] = 1;
+ double angle = itk::Math::pi_over_4;
+ myCylinder->GetObjectToParentTransform()->Rotate3D(axis, angle);
+ myCylinder->ComputeObjectToWorldTransform();
+ myCylinder->ComputeBoundingBox();
+ boundingBox = myCylinder->GetBoundingBox();
+
+ if( itk::Math::NotAlmostEquals(boundingBox->GetBounds()[0], -3.0 )
+ || itk::Math::NotAlmostEquals(boundingBox->GetBounds()[1], 3.0 )
+ || itk::Math::NotAlmostEquals(boundingBox->GetBounds()[2], -9.0 * itk::Math::sqrt1_2 )
+ || itk::Math::NotAlmostEquals(boundingBox->GetBounds()[3], 9.0 * itk::Math::sqrt1_2 )
+ || itk::Math::NotAlmostEquals(boundingBox->GetBounds()[4], -9.0 * itk::Math::sqrt1_2 )
+ || itk::Math::NotAlmostEquals(boundingBox->GetBounds()[5], 9.0 * itk::Math::sqrt1_2 )
+ )
+ {
+ std::cout<<"[FAILED]"<<std::endl;
+ return EXIT_FAILURE;
+ }
+ std::cout << "[PASSED]" << std::endl;
std::cout << "Testing Print after all modifications " << std::endl;
myCylinder->Print( std::cout );
- std::cout<<"[PASSED]"<<std::endl;
+ std::cout<<"[DONE]"<<std::endl;
return EXIT_SUCCESS;
}
diff --git a/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.h b/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.h
index 0e82167..a6729a2 100644
--- a/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.h
+++ b/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.h
@@ -47,15 +47,15 @@ class ITK_TEMPLATE_EXPORT GPUMeanImageFilter : //public GPUImageToImageFilter<
{
public:
/** Standard class typedefs. */
- typedef GPUMeanImageFilter Self;
- typedef GPUImageToImageFilter< TInputImage, TOutputImage, MeanImageFilter< TInputImage, TOutputImage > > Superclass;
- typedef SmartPointer< Self > Pointer;
- typedef SmartPointer< const Self > ConstPointer;
+ typedef GPUMeanImageFilter Self;
+ typedef GPUBoxImageFilter< TInputImage, TOutputImage, MeanImageFilter< TInputImage, TOutputImage > > Superclass;
+ typedef SmartPointer< Self > Pointer;
+ typedef SmartPointer< const Self > ConstPointer;
itkNewMacro(Self);
/** Run-time type information (and related methods). */
- itkTypeMacro(GPUMeanImageFilter, Superclass);
+ itkTypeMacro(GPUMeanImageFilter, GPUBoxImageFilter);
/** Superclass typedefs. */
typedef typename Superclass::OutputImageRegionType OutputImageRegionType;
diff --git a/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.hxx b/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.hxx
index 1607d4a..dca35c4 100644
--- a/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.hxx
+++ b/Modules/Filtering/GPUSmoothing/include/itkGPUMeanImageFilter.hxx
@@ -36,7 +36,6 @@ GPUMeanImageFilter< TInputImage, TOutputImage >::GPUMeanImageFilter()
defines << "#define DIM_" << TInputImage::ImageDimension << "\n";
defines << "#define PIXELTYPE ";
GetTypenameInString( typeid ( typename TInputImage::PixelType ), defines );
- std::cout << "Defines: " << defines.str() << std::endl;
const char* GPUSource = GPUMeanImageFilter::GetOpenCLSource();
@@ -58,8 +57,6 @@ void
GPUMeanImageFilter< TInputImage, TOutputImage >::PrintSelf(std::ostream & os, Indent indent) const
{
Superclass::PrintSelf(os, indent);
- //os << indent << "GPU: " << ( m_GPUEnabled ? "Enabled" : "Disabled" ) <<
- // std::endl;
}
template< typename TInputImage, typename TOutputImage >
diff --git a/Modules/IO/NIFTI/include/itkNiftiImageIO.h b/Modules/IO/NIFTI/include/itkNiftiImageIO.h
index 2a7f949..002b874 100644
--- a/Modules/IO/NIFTI/include/itkNiftiImageIO.h
+++ b/Modules/IO/NIFTI/include/itkNiftiImageIO.h
@@ -23,7 +23,6 @@
#include <fstream>
#include "itkImageIOBase.h"
-#include <nifti1_io.h>
namespace itk
{
@@ -128,7 +127,29 @@ private:
void SetImageIOMetadataFromNIfTI();
- nifti_image *m_NiftiImage;
+ //This proxy class provides a nifti_image pointer interface to the internal implementation
+ //of itk::NiftiImageIO, while hiding the niftilib interface from the external ITK interface.
+ class NiftiImageProxy;
+
+ //This class has ownership of the proxy and is thereby holder of the nifti_image pointer.
+ class NiftiImageHolder
+ {
+ private:
+ NiftiImageProxy* const m_NiftiImageProxy;
+ public:
+ NiftiImageHolder();
+ ~NiftiImageHolder();
+ NiftiImageProxy& GetNiftiImageProxy();
+
+ private:
+ NiftiImageHolder(const NiftiImageHolder&) ITK_DELETED_FUNCTION;
+ NiftiImageHolder& operator=(const NiftiImageHolder &) ITK_DELETED_FUNCTION;
+ };
+
+ //Note that it is essential that m_NiftiImageHolder is defined before m_NiftiImage, to ensure that
+ //m_NiftiImage can directly get a proxy from m_NiftiImageHolder during NiftiImageIO construction.
+ NiftiImageHolder m_NiftiImageHolder;
+ NiftiImageProxy& m_NiftiImage;
double m_RescaleSlope;
double m_RescaleIntercept;
diff --git a/Modules/IO/NIFTI/itk-module.cmake b/Modules/IO/NIFTI/itk-module.cmake
index 09a752f..114cb91 100644
--- a/Modules/IO/NIFTI/itk-module.cmake
+++ b/Modules/IO/NIFTI/itk-module.cmake
@@ -3,11 +3,10 @@ set(DOCUMENTATION "This modules contains an ImageIO class to read or write the
itk_module(ITKIONIFTI
ENABLE_SHARED
- DEPENDS
- ITKNIFTI
PRIVATE_DEPENDS
ITKIOImageBase
ITKTransform
+ ITKNIFTI
TEST_DEPENDS
ITKTestKernel
ITKNIFTI
diff --git a/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx b/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx
index 85b98de..f6c9682 100644
--- a/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx
+++ b/Modules/IO/NIFTI/src/itkNiftiImageIO.cxx
@@ -19,6 +19,7 @@
#include "itkIOCommon.h"
#include "itkMetaDataObject.h"
#include "itkSpatialOrientationAdapter.h"
+#include <nifti1_io.h>
namespace itk
{
@@ -389,8 +390,47 @@ NiftiImageIO
return requestedRegion;
}
-NiftiImageIO::NiftiImageIO():
- m_NiftiImage(ITK_NULLPTR),
+
+//This internal proxy class provides a pointer-like interface to a nifti_image*, by supporting
+//conversions between proxy and nifti_image pointer and arrow syntax (e.g., m_NiftiImage->data).
+class NiftiImageIO::NiftiImageProxy
+{
+ nifti_image* m_ptr;
+public:
+ NiftiImageProxy(nifti_image* ptr) :
+ m_ptr(ptr)
+ {
+ }
+
+ operator nifti_image*()
+ {
+ return m_ptr;
+ }
+
+ nifti_image* operator->()
+ {
+ return m_ptr;
+ }
+};
+
+NiftiImageIO::NiftiImageHolder::NiftiImageHolder() :
+m_NiftiImageProxy(new NiftiImageProxy(ITK_NULLPTR))
+{
+}
+
+NiftiImageIO::NiftiImageHolder::~NiftiImageHolder()
+{
+ delete m_NiftiImageProxy;
+}
+
+NiftiImageIO::NiftiImageProxy& NiftiImageIO::NiftiImageHolder::GetNiftiImageProxy()
+{
+ return *m_NiftiImageProxy;
+}
+
+
+NiftiImageIO::NiftiImageIO() :
+ m_NiftiImage(m_NiftiImageHolder.GetNiftiImageProxy()),
m_RescaleSlope(1.0),
m_RescaleIntercept(0.0),
m_OnDiskComponentType(UNKNOWNCOMPONENTTYPE),
diff --git a/Modules/Registration/GPUPDEDeformable/include/itkGPUDemonsRegistrationFunction.hxx b/Modules/Registration/GPUPDEDeformable/include/itkGPUDemonsRegistrationFunction.hxx
index 61707fb..9af727c 100644
--- a/Modules/Registration/GPUPDEDeformable/include/itkGPUDemonsRegistrationFunction.hxx
+++ b/Modules/Registration/GPUPDEDeformable/include/itkGPUDemonsRegistrationFunction.hxx
@@ -241,8 +241,8 @@ GPUDemonsRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >
void *itkNotUsed(gd)
)
{
- typename TFixedImage::ConstPointer fixedImage = dynamic_cast< const TFixedImage * >( this->GetFixedImage() );
- typename TMovingImage::ConstPointer movingImage = dynamic_cast< const TMovingImage * >( this->GetMovingImage() );
+ TFixedImage * fixedImage = const_cast< TFixedImage * >( this->GetFixedImage() );
+ TMovingImage * movingImage = const_cast< TMovingImage * >( this->GetMovingImage() );
typename DisplacementFieldType::SizeType outSize = output->GetLargestPossibleRegion().GetSize();
int imgSize[3];
diff --git a/Modules/Remote/AnisotropicDiffusionLBR.remote.cmake b/Modules/Remote/AnisotropicDiffusionLBR.remote.cmake
index 7faccff..ebb228d 100644
--- a/Modules/Remote/AnisotropicDiffusionLBR.remote.cmake
+++ b/Modules/Remote/AnisotropicDiffusionLBR.remote.cmake
@@ -20,5 +20,5 @@ itk_fetch_module(AnisotropicDiffusionLBR
http://insight-journal.org/browse/publication/953
"
GIT_REPOSITORY ${git_protocol}://github.com/InsightSoftwareConsortium/ITKAnisotropicDiffusionLBR.git
- GIT_TAG 5bd898cb781685d26686b153d33ee484107163c8
+ GIT_TAG 50acf46da9fa1480eb502a0bb550c36d518893eb
)
diff --git a/Modules/ThirdParty/KWSys/src/CMakeLists.txt b/Modules/ThirdParty/KWSys/src/CMakeLists.txt
index 026ad4f..3c806d8 100644
--- a/Modules/ThirdParty/KWSys/src/CMakeLists.txt
+++ b/Modules/ThirdParty/KWSys/src/CMakeLists.txt
@@ -22,7 +22,11 @@ set(KWSYS_INSTALL_EXPORT_NAME ${ITKKWSys-targets})
set(KWSYS_INSTALL_COMPONENT_NAME_RUNTIME RuntimeLibraries)
set(KWSYS_INSTALL_COMPONENT_NAME_DEVELOPMENT Development)
set(KWSYS_PROPERTIES_C WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
-set(KWSYS_PROPERTIES_CXX MACOSX_RPATH 1 WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
+set( _macosx_rpath 1)
+if(DEFINED CMAKE_MACOSX_RPATH AND NOT "${CMAKE_MACOSX_RPATH}" STREQUAL "")
+ set(_macosx_rpath ${CMAKE_MACOSX_RPATH})
+endif()
+set(KWSYS_PROPERTIES_CXX MACOSX_RPATH ${_macosx_rpath} WINDOWS_EXPORT_ALL_SYMBOLS FALSE)
add_subdirectory(KWSys)
itk_module_target(${KWSYS_NAMESPACE} NO_INSTALL)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/insighttoolkit.git
More information about the debian-med-commit
mailing list