Code Monkey home page Code Monkey logo

insightsoftwareconsortium / itk Goto Github PK

View Code? Open in Web Editor NEW
1.3K 1.3K 650.0 200.22 MB

Insight Toolkit (ITK) -- Official Repository. ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions.

Home Page: https://itk.org

License: Apache License 2.0

Shell 0.47% CMake 4.39% C++ 91.90% Objective-C++ 0.01% Python 1.78% C 1.20% Tcl 0.02% XSLT 0.02% CSS 0.05% Perl 0.02% JavaScript 0.01% SWIG 0.14%
cpp hacktoberfest image-analysis insight-toolkit itk medical-imaging numfocus open-science open-source python reproducible-research scientific-computing

itk's People

Contributors

agouaillard avatar andinet avatar arnaudgelas avatar aylward avatar billhoffman avatar blezek avatar blowekamp avatar bradking avatar brianhelba avatar daviddoria avatar dzenanz avatar gabehart avatar glehmann avatar hjmjohnson avatar imichka avatar jhlegarreta avatar karthikkrishnan avatar kwrobot avatar lorensen avatar malaterre avatar n-dekker avatar ntustison avatar phcerdan avatar seanm avatar stnava avatar tbirdso avatar thewtex avatar tvercaut avatar wschroed avatar xiaoxiaoliu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

itk's Issues

ITK 4.13.0 build from source fails to download castxml-linux.tar.gz

Description

When building ITK 4.13.0 (gcc 6.4.0, CentOS 7, using the Easybuild frame work https://easybuilders.github.io/easybuild/) I got a file not found error (404) on https://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=84c2851a4df419b5834114bbfafa8d3e&name=castxml-linux.tar.gz, which the build procedure wants to download. If I tell EasyBuild to build version 4.13.1 it builds an ITK installation, without any issue.

I tried this for a couple of days - the issue appears persistent.

Questions

We like to ask a few questions:

  • Has the file indeed "vanished" or is it a temporary issue.
  • If it has vanished, is it normal that these download failures happen once a new ITK version is released? We are speaking about one subversion down from the current release.
  • Is it possible to do an "offline" installation of ITK, where all required source tarballs are downloaded up front and "cached" somewhere that the ITK installation procedure can pick them up?

Let us know if you need more info. Thanks for reading.


Edited for spelling

Tag VXL release, and match with ITK

Update VXL tag to 2.0.1 for requirement in ITK, and create a 2.0.1 release of VXL so that we can capture the requirements.

VXL should have a tag generated once all the ITK builds verify that the feature set is complete without compiler warnings for VNL.

Re-enable the `PythonGetNameOfClass` test

This test currently crashes unreliably with

itkTestDriver: Process exception: Illegal instruction

on macOS

or

itkTestDriver: Process exception: Segmentation fault

on Linux.

Building ITK on Windows

Building ITK on Windows (through R)

I'm trying to build ITK on Windows, through R in the ITKR package (https://github.com/muschellij2/ITKR). I'm testing this through appveyor (https://ci.appveyor.com/project/muschellij2/itkr). I'm getting the following error:

[ 73%] Building C object Modules/ThirdParty/HDF5/src/itkhdf5/src/CMakeFiles/hdf5-static.dir/H5Defl.c.obj
In file included from C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5private.h:615:0,
                 from C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5Defl.c:29:
C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5Defl.c: In function 'H5D__efl_read':
C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5win32defs.h:57:66: error: expected expression before ')' token
 #define HDopen(S,F,...)       _open(S, F | _O_BINARY, __VA_ARGS__)
                                                                  ^
C:\run\ITKR.Rcheck\00_pkg_src\ITKR\src\itks\Modules\ThirdParty\HDF5\src\itkhdf5\src\H5Defl.c:291:18: note: in expansion of macro 'HDopen'
         if((fd = HDopen(full_name, O_RDONLY)) < 0)
                  ^
Modules\ThirdParty\HDF5\src\itkhdf5\src\CMakeFiles\hdf5-static.dir\build.make:770: recipe for target 'Modules/ThirdParty/HDF5/src/itkhdf5/src/CMakeFiles/hdf5-static.dir/H5Defl.c.obj' failed

This worked using commit 4f89edd, but not the latest or anything with respect to v5.0.

Steps to Reproduce

The steps can be seen here: https://ci.appveyor.com/project/muschellij2/itkr

  1. The main configure script is https://github.com/muschellij2/ITKR/blob/master/configure.win
  2. The make version is mingw32-make, and the Makevars necessary to reproduce are: https://github.com/muschellij2/ITKR/blob/master/src/Makevars.win
  3. See the attached 00install.txt file below.

Expected behavior

Successful build such as https://ci.appveyor.com/project/muschellij2/itkr/build/1.0.278

Actual behavior

Build failure such as https://ci.appveyor.com/project/muschellij2/itkr/build/1.0.282

Reproducibility

100% of the builds with

Versions

ITK_VERSION_MAJOR = 5
ITK_VERSION_MINOR = 0
ITK_VERSION_PATCH = 0

Environment

Windows on Appveyor (I believe Windows Server 2012 R2 )

Additional Information

I've uploaded the CMakeLists and the installation output
CMakeLists.txt
00install.txt

itk::ImageRegionIterator<TImage>::Value() does not build with itk::VectorImage

[Before submitting an issue, please check that your issue hasn't been already
filed]

Description

It seems that itk::ImageRegionIterator::Value() can not be used with itk::VectorImage. Same goes for itk::ImageScanLineIterator.

Steps to Reproduce

The following sample code does not compile:

#include "itkVectorImage.h"
#include "itkImageRegionIterator.h"

void test()
{
  using ImageType = VectorImage<double>;
  using RegionType      = typename ImageType::RegionType;
  using SizeType        = typename RegionType::SizeType;
  
  auto vimage = ImageType::New();
    
  SizeType size = {{200,200}};
  
  vimage->SetRegions(size);
  vimage->SetNumberOfComponentsPerPixel(2);
  vimage->Allocate();
  itk::VariableLengthVector<double> v(2);
  v.Fill(0);
  vimage->FillBuffer(v);

  itk::ImageRegionIterator<ImageType> it(vimage,vimage->GetLargestPossibleRegion());

  it.GoToBegin();

  // This does not compile
  auto a = it.Value();
}

Error from compiler (gcc 6.3):

/home/michelj/dev/local/itk/include/ITK-4.13/itkImageRegionIterator.h:123:12: error: non-const lvalue reference to type 'PixelType' (aka 'VariableLengthVector<double>') cannot bind to a value of unrelated type 'InternalPixelType'
      (aka 'double')
  { return *( const_cast< InternalPixelType * >( this->m_Buffer + this->m_Offset ) ); }
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: in instantiation of member function 'itk::ImageRegionIterator<otb::VectorImage<double, 2> >::Value' requested here
  auto a = it.Value();
              ^
1 error generated.

itkPyBufferTest

Description

263: Test command: /localscratch/Users/johnsonhj/ITK-bld/bin/itkTestDriver "--add-before-env" "PYTHONPATH" "/localscratch/Users/johnsonhj/ITK-bld/Wrapping/Generators/Python/Release" "--add-before-env" "PYTHONPATH" "/localscratch/Users/johnsonhj/ITK-bld/Wrapping/Generators/Python" "--add-before-env" "PYTHONPATH" "/localscratch/Users/johnsonhj/ITK-bld/lib/Release" "--add-before-env" "PYTHONPATH" "/localscratch/Users/johnsonhj/ITK-bld/lib" "--add-before-libpath" "/localscratch/Users/johnsonhj/ITK-bld/lib/Release" "--add-before-libpath" "/localscratch/Users/johnsonhj/ITK-bld/lib" "--add-before-libpath" "/localscratch/Users/johnsonhj/ITK-bld/bin/Release" "--add-before-libpath" "/localscratch/Users/johnsonhj/ITK-bld/bin" "/Users/johnsonhj/intel/intelpython3/bin/python" "/localscratch/Users/johnsonhj/ITK/Modules/Bridge/NumPy/test/itkPyBufferTest.py"
263: Test timeout computed to be: 600
263: test_NumPyBridge_FortranOrder (main.TestNumpyITKMemoryviewInterface)
263: Try to convert an ITK image to / from a NumPy array with Fortran order ... ok
263: test_NumPyBridge_itkRGBAImage (main.TestNumpyITKMemoryviewInterface)
263: Try to convert an RGBA ITK image to NumPy array view ... ok
263: test_NumPyBridge_itkRGBImage (main.TestNumpyITKMemoryviewInterface)
263: Try to convert an RGB ITK image to NumPy array view ... ok
263: test_NumPyBridge_itkScalarImage (main.TestNumpyITKMemoryviewInterface)
263: Try to convert all pixel types to NumPy array view ... ok
263: test_NumPyBridge_itkScalarImageDeepCopy (main.TestNumpyITKMemoryviewInterface)
263: Try to convert all pixel types to NumPy array view with a deep copy ... ok
263: test_NumPyBridge_itkVectorImage (main.TestNumpyITKMemoryviewInterface)
263: Try to convert all pixel types to NumPy array view ... ERROR
263: test_NumPyBridge_itkVectorPixelImage (main.TestNumpyITKMemoryviewInterface)
263: Try to convert an ITK image with vector pixels to NumPy array view ... ok
263:
263: ======================================================================
263: ERROR: test_NumPyBridge_itkVectorImage (main.TestNumpyITKMemoryviewInterface)
263: Try to convert all pixel types to NumPy array view
263: ----------------------------------------------------------------------
263: RuntimeError: Mismatch between the number of components in the image and the fastest running dimension of the Numpy array .
263:
263: During handling of the above exception, another exception occurred:
263:
263: Traceback (most recent call last):
263: File "/localscratch/Users/johnsonhj/ITK/Modules/Bridge/NumPy/test/itkPyBufferTest.py", line 105, in test_NumPyBridge_itkVectorImage
263: convertedvectorImage = itk.PyBuffer[VectorImageType].GetImageViewFromArray(vectorndarr, is_vector=True)
263: File "/localscratch/Users/johnsonhj/ITK-bld/lib/itkPyBufferPython.py", line 12140, in GetImageViewFromArray
263: imgview = itkPyBufferVIUC3._GetImageViewFromArray( ndarr, ndarr.shape[-2::-1], ndarr.shape[-1] )
263: File "/localscratch/Users/johnsonhj/ITK-bld/lib/itkPyBufferPython.py", line 12020, in _GetImageViewFromArray
263: return _itkPyBufferPython.itkPyBufferVIUC3__GetImageViewFromArray(arr, shape, numOfComponent)
263: SystemError: returned a result with an error set
263:
263: ----------------------------------------------------------------------
263: Ran 7 tests in 3.916s
263:
263: FAILED (errors=1)
263: swig/python detected a memory leak of type 'itk::SmartPointer< itk::Image< itk::VariableLengthVector< unsigned char >,3 > > *', no destructor found.
263: itkTestDriver: Process exited with return value: 1
1/1 Test #263: itkPyBufferTest ..................***Failed 5.57 sec

0% tests passed, 1 tests failed out of 1

Label Time Summary:
ITKBridgeNumPy = 5.57 sec*proc (1 test)

Steps to Reproduce

  1. Build wiht all python datatypes
  2. Run ctest -R itkPyBufferTest$

Expected behavior

No test failure

Actual behavior

test failure

Reproducibility

100% reproducable on linux

Versions

latest master branch

Environment

linux

macOS Python GetNameOfClass test illegal instruction

Fix the PythonGetNameOfClass test on macOS. Currently fails with:

WARNING: In /Users/vsts/agent/2.141.1/work/1/s/Modules/Core/Common/src/itkProcessObject.cxx, line 903
BlockMatchingImageFilter (0x7f9a94af0170): Input already "FeaturePoints" already required!

WARNING: In /Users/vsts/agent/2.141.1/work/1/s/Modules/Segmentation/LevelSets/include/itkNarrowBandLevelSetImageFilter.h, line 350
NarrowBandLevelSetImageFilter (0x7f9a949d8500): The current implmentation of this solver does not compute maximum RMS change. The maximum RMS error value will not be set or used.

WARNING: In /Users/vsts/agent/2.141.1/work/1/s/Modules/Segmentation/LevelSets/include/itkNarrowBandLevelSetImageFilter.h, line 350
NarrowBandLevelSetImageFilter (0x7f9a94f762f0): The current implmentation of this solver does not compute maximum RMS change. The maximum RMS error value will not be set or used.

itkTestDriver: Process exception: Illegal instruction

Building with SCIFIO module enabled fails with 'file DOWNLOAD HASH mismatch'

Description

Since a few days, a build with the SCIFIO module enabled fails with:

CMake Error at /workspace/itk/bin-rel-4.13.1/Modules/Remote/SCIFIO/src/DownloadJRE.cmake:13 (file):
  file DOWNLOAD HASH mismatch

    for file: [/workspace/itk/bin-rel-4.13.1/Modules/Remote/SCIFIO/src/jre.tar.bz2]
      expected hash: [4c75412942f7d36c5e8b8fb38ba975bc]
        actual hash: [d41d8cd98f00b204e9800998ecf8427e]
             status: [22;"HTTP response code said error"]

Steps to Reproduce

  1. Configure itk with Module_SCIFIO enabled in CMake
  2. Build

Expected behavior

The build should run through.

Actual behavior

The build will fail with above error message when downloading the jre.tar.bz2, said file will be empty (0 bytes).

Reproducibility

Always.

Versions

Release version 4.13.1.
The jre.tar.bz2 is the same in 4.13.0 as far as I can tell (see workaround note below) - MD5 hash 4c75412942f7d36c5e8b8fb38ba975bc

Environment

Happens on:

  • Ubuntu 18.04 with CMake 3.10.2, clang 6.0
  • Debian 7 with CMake 3.8.1, g++ 4.7.2

Additional Information

The actual URL that is used in the download is https://midas3.kitware.com/midas/api/rest?method=midas.bitstream.download&checksum=4c75412942f7d36c5e8b8fb38ba975bc&name=[build-path]/jre.tar.bz2&algorithm=MD5

That URL returns 404 when opened in a browser. For fixing this issue, the jre.tar.bz2 file with the mentioned MD5 hash needs to be be made reachable under that URL again.

As a workaround, a file from a previous build can be copied over into the Modules/Remote/SCIFIO/src directory, then the build will run through. (I had it from a 4.13.0 build, the file has not changed since then apparently).

Side note - information leakage

Is it intentional by the way that this URL includes the full build path in the name parameter? There is no need for the server to know in what folder the user has built ITK; indeed, information about the person building ITK might leak that way. Whatever the intentions behind this name parameter are exactly, I don't think the way this is implemented at the moment is a good idea...

Lesion Sizing Toolkit doesn't compile in ITK 5.0 beta 1

[Before submitting an issue, please check that your issue hasn't been already
filed]

Description

Lesion Sizing Toolkit doesn't compile in ITK 5.0 beta 1
Build on VS 2015 (version 14) with VTK 8.1.1 and Python 3.7 Wrapping

Logs :

Severity Code Description Project File Line Suppression State
Error (active) cannot open source file "itkImageFileReader.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 26
Error (active) cannot open source file "itkImageFileWriter.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 27
Error (active) cannot open source file "itkCastImageFilter.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 28
Error (active) cannot open source file "itkRescaleIntensityImageFilter.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 29
Error (active) cannot open source file "itkCannyEdgeDetectionImageFilter.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 30
Error (active) namespace "std" has no member "cerr" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 40
Error (active) namespace "std" has no member "endl" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 40
Error (active) namespace "std" has no member "cerr" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 41
Error (active) namespace "std" has no member "endl" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 41
Error (active) identifier "EXIT_FAILURE" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 42
Error (active) identifier "atof" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 54
Error (active) identifier "atof" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 59
Error (active) identifier "atof" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 64
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 72
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 72
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 73
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 73
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 74
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 74
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 76
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 76
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 77
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 77
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 79
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 79
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 80
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 80
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 82
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 82
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 83
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 83
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 85
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 85
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 87
Error (active) expected a ';' LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 87
Error (active) identifier "reader" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 89
Error (active) identifier "writer" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 90
Error (active) identifier "toReal" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 92
Error (active) identifier "cannyFilter" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 94
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 107
Error (active) namespace "std" has no member "cout" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 109
Error (active) namespace "std" has no member "endl" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 109
Error (active) namespace "std" has no member "cout" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 110
Error (active) namespace "std" has no member "endl" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 110
Error (active) identifier "EXIT_FAILURE" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 111
Error (active) name followed by '::' must be a class or namespace name LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 123
Error (active) namespace "std" has no member "cout" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 125
Error (active) namespace "std" has no member "endl" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 125
Error (active) namespace "std" has no member "cout" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 126
Error (active) namespace "std" has no member "endl" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 126
Error (active) identifier "EXIT_FAILURE" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 127
Error (active) identifier "EXIT_SUCCESS" is undefined LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkCannyEdgeDetectionImageFilter1.cxx 132
Error (active) cannot open source file "itkGDCMImageIOFactory.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkIncludeRequiredIOFactories.h 20
Error (active) cannot open source file "itkMetaImageIOFactory.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkIncludeRequiredIOFactories.h 21
Error (active) cannot open source file "itkPNGImageIOFactory.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkIncludeRequiredIOFactories.h 22
Error (active) cannot open source file "itkObjectFactoryBase.h" LesionSizingToolkit-all f:\TDS\TDSLibs\ITK-5.0b01\Modules\Remote\LesionSizingToolkit\src\itkIncludeRequiredIOFactories.h 23

Steps to Reproduce

  1. Use of CMake to generate sln project with generation of LSTK
  2. Compile on VS 2015 (version 14)

Expected behavior

Compilation succeed

Actual behavior

Compilation failed

Reproducibility

100%

Versions

ITK 5.0 beta 1

Environment

Build on VS 2015 (version 14) with VTK 8.1.1 and Python 3.7 Wrapping

Additional Information

[Any additional information, configuration or data that might be necessary to reproduce the issue.]

Note: Use issues for their purpose; issues are not for code help. Need help? Ask
your question at https://discourse.itk.org/

ITKV4_COMPATIBILITY disables filter progress reporting

With ITKV4_COMPATIBILITY enabled during CMake configuration, the filters not longer report any progress or handle the abort flag. This is causing several test failure in SimpleITK related to testing for command, call backs, and progress with ITKv5.

https://open.cdash.org/testDetails.php?test=684541299&build=5643448
https://open.cdash.org/testDetails.php?test=709738030&build=5643448

This appears to be caused by setting m_DynamicMultiThreading to false in the ImageSource base class. The ClassicMultiThread method does not appear to report progress.

itkFrequencyBandImageFilterEvenTest Uninitialized Memory Conditional

See:

https://open.cdash.org/viewDynamicAnalysis.php?buildid=5634485

<b>UMC</b> ==9889== Conditional jump or move depends on uninitialised value(s)
==9889==    at 0x43A68A: itk::Testing::ComparisonImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >::ThreadedGenerateData(itk::ImageRegion<3u> const&, unsigned int) (itkTestingComparisonImageFilter.hxx:177)
==9889==    by 0x440066: itk::ImageSource<itk::Image<float, 3u> >::ThreaderCallback(void*) (itkImageSource.hxx:303)
==9889==    by 0x6333DF2: itk::PoolMultiThreader::SingleMethodExecute() (itkPoolMultiThreader.cxx:101)
==9889==    by 0x4401E1: itk::ImageSource<itk::Image<float, 3u> >::ClassicMultiThread(void* (*)(void*)) (itkImageSource.hxx:218)
==9889==    by 0x439A26: itk::ImageSource<itk::Image<float, 3u> >::GenerateData() (itkImageSource.hxx:237)
==9889==    by 0x631F48F: itk::ProcessObject::UpdateOutputData(itk::DataObject*) (itkProcessObject.cxx:1790)
==9889==    by 0x634DE66: itk::DataObject::UpdateOutputData() (itkDataObject.cxx:404)
==9889==    by 0x41F5AF: itk::ImageBase<3u>::UpdateOutputData() (itkImageBase.hxx:296)
==9889==    by 0x634DB3A: itk::DataObject::Update() (itkDataObject.cxx:329)
==9889==    by 0x631E267: itk::ProcessObject::Update() (itkProcessObject.cxx:1357)
==9889==    by 0x429106: bool (anonymous namespace)::compareImages<itk::Image<float, 3u> >(itk::Image<float, 3u>*, itk::Image<float, 3u>*) (itkFrequencyBandImageFilterTest.cxx:43)
==9889==    by 0x426C8D: itkFrequencyBandImageFilterTest(int, char**) (itkFrequencyBandImageFilterTest.cxx:188)
==9889==    by 0x4162D1: main (ITKImageFrequencyTestDriver.cxx:136)
==9889== 
<b>UMC</b> ==9889== Conditional jump or move depends on uninitialised value(s)
==9889==    at 0x43A6CD: itk::Testing::ComparisonImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >::ThreadedGenerateData(itk::ImageRegion<3u> const&, unsigned int) (itkTestingComparisonImageFilter.hxx:184)
==9889==    by 0x440066: itk::ImageSource<itk::Image<float, 3u> >::ThreaderCallback(void*) (itkImageSource.hxx:303)
==9889==    by 0x6333DF2: itk::PoolMultiThreader::SingleMethodExecute() (itkPoolMultiThreader.cxx:101)
==9889==    by 0x4401E1: itk::ImageSource<itk::Image<float, 3u> >::ClassicMultiThread(void* (*)(void*)) (itkImageSource.hxx:218)
==9889==    by 0x439A26: itk::ImageSource<itk::Image<float, 3u> >::GenerateData() (itkImageSource.hxx:237)
==9889==    by 0x631F48F: itk::ProcessObject::UpdateOutputData(itk::DataObject*) (itkProcessObject.cxx:1790)
==9889==    by 0x634DE66: itk::DataObject::UpdateOutputData() (itkDataObject.cxx:404)
==9889==    by 0x41F5AF: itk::ImageBase<3u>::UpdateOutputData() (itkImageBase.hxx:296)
==9889==    by 0x634DB3A: itk::DataObject::Update() (itkDataObject.cxx:329)
==9889==    by 0x631E267: itk::ProcessObject::Update() (itkProcessObject.cxx:1357)
==9889==    by 0x429106: bool (anonymous namespace)::compareImages<itk::Image<float, 3u> >(itk::Image<float, 3u>*, itk::Image<float, 3u>*) (itkFrequencyBandImageFilterTest.cxx:43)
==9889==    by 0x426C8D: itkFrequencyBandImageFilterTest(int, char**) (itkFrequencyBandImageFilterTest.cxx:188)
==9889==    by 0x4162D1: main (ITKImageFrequencyTestDriver.cxx:136)
==9889== 
<b>UMC</b> ==9889== Conditional jump or move depends on uninitialised value(s)
==9889==    at 0x43A7D0: itk::Testing::ComparisonImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >::ThreadedGenerateData(itk::ImageRegion<3u> const&, unsigned int) (itkTestingComparisonImageFilter.hxx:211)
==9889==    by 0x440066: itk::ImageSource<itk::Image<float, 3u> >::ThreaderCallback(void*) (itkImageSource.hxx:303)
==9889==    by 0x6333DF2: itk::PoolMultiThreader::SingleMethodExecute() (itkPoolMultiThreader.cxx:101)
==9889==    by 0x4401E1: itk::ImageSource<itk::Image<float, 3u> >::ClassicMultiThread(void* (*)(void*)) (itkImageSource.hxx:218)
==9889==    by 0x439A26: itk::ImageSource<itk::Image<float, 3u> >::GenerateData() (itkImageSource.hxx:237)
==9889==    by 0x631F48F: itk::ProcessObject::UpdateOutputData(itk::DataObject*) (itkProcessObject.cxx:1790)
==9889==    by 0x634DE66: itk::DataObject::UpdateOutputData() (itkDataObject.cxx:404)
==9889==    by 0x41F5AF: itk::ImageBase<3u>::UpdateOutputData() (itkImageBase.hxx:296)
==9889==    by 0x634DB3A: itk::DataObject::Update() (itkDataObject.cxx:329)
==9889==    by 0x631E267: itk::ProcessObject::Update() (itkProcessObject.cxx:1357)
==9889==    by 0x429106: bool (anonymous namespace)::compareImages<itk::Image<float, 3u> >(itk::Image<float, 3u>*, itk::Image<float, 3u>*) (itkFrequencyBandImageFilterTest.cxx:43)
==9889==    by 0x426C8D: itkFrequencyBandImageFilterTest(int, char**) (itkFrequencyBandImageFilterTest.cxx:188)
==9889==    by 0x4162D1: main (ITKImageFrequencyTestDriver.cxx:136)
==9889== 
==9889== Thread 2:
<b>UMC</b> ==9889== Conditional jump or move depends on uninitialised value(s)
==9889==    at 0x43A68A: itk::Testing::ComparisonImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >::ThreadedGenerateData(itk::ImageRegion<3u> const&, unsigned int) (itkTestingComparisonImageFilter.hxx:177)
==9889==    by 0x440066: itk::ImageSource<itk::Image<float, 3u> >::ThreaderCallback(void*) (itkImageSource.hxx:303)
==9889==    by 0x63407B1: _ZNSt5_BindIFPFPvS0_EPN3itk17PoolMultiThreader20ThreadPoolInfoStructEEE6__callIS0_IEILm0EEEET_OSt5tupleIIDpT0_EESt12_Index_tupleIIXspT1_EEE (functional:1296)
==9889==    by 0x63406C1: void* std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::operator()<, void*>() (functional:1355)
==9889==    by 0x6340696: std::enable_if<((!std::is_member_pointer<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::value)&&(!std::is_function<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::value))&&(!std::is_function<std::remove_pointer<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::type>::value), std::result_of<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>& ()>::type>::type std::__invoke<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>>(std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>&) (functional:234)
==9889==    by 0x634066B: std::result_of<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>& ()>::type std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::operator()<>() const (functional:467)
==9889==    by 0x63405CD: void* std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1732)
==9889==    by 0x6340426: std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()>::operator()() (functional:1720)
==9889==    by 0x634015D: std::_Function_handler<void* (), std::reference_wrapper<std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()> > >::_M_invoke(std::_Any_data const&) (functional:2087)
==9889==    by 0x6340285: std::function<void* ()>::operator()() const (functional:2471)
==9889==    by 0x633FF1B: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void*>, std::__future_base::_Result_base::_Deleter>, void*>::operator()() (future:1216)
==9889==    by 0x633FA56: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void*>, std::__future_base::_Result_base::_Deleter>, void*> >::_M_invoke(std::_Any_data const&) (functional:2057)
==9889==    by 0x633A9C8: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2471)
==9889==    by 0x633A145: std::__future_base::_State_base::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&) (future:471)
==9889==    by 0x633CB76: void std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)>::operator()<std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>, void>(std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >&&, std::reference_wrapper<bool>&&) const (functional:601)
==9889==    by 0x633C6CC: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1732)
==9889==    by 0x633BBA4: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)>::operator()() (functional:1720)
==9889==    by 0x633B258: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)> >() (mutex:754)
==9889==    by 0x8229E3F: pthread_once (in /usr/lib64/libpthread-2.17.so)
==9889==    by 0x63336BE: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==9889==    by 0x633A86E: void std::call_once<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool> >(std::once_flag&, void (std::__future_base::_State_base::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const&&, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >&&, std::reference_wrapper<bool>&&) (mutex:786)
==9889==    by 0x6339F07: std::__future_base::_State_base::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:358)
==9889==    by 0x633F3A0: std::__future_base::_Task_state<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>, std::allocator<int>, void* ()>::_M_run() (future:1286)
==9889==    by 0x633B67E: std::packaged_task<void* ()>::operator()() (future:1421)
==9889==    by 0x633AC23: std::future<std::result_of<void* (*&(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::{lambda()#1}::operator()() const (itkThreadPool.h:92)
==9889==    by 0x633CD47: std::_Function_handler<void (), std::future<std::result_of<void* (*&(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (functional:2071)
==9889==    by 0x6396E1B: std::function<void ()>::operator()() const (functional:2471)
==9889==    by 0x6396581: itk::ThreadPool::ThreadExecute() (itkThreadPool.cxx:360)
==9889==    by 0x639912A: void std::_Bind_simple<void (*())()>::_M_invoke<>(std::_Index_tuple<>) (functional:1732)
==9889==    by 0x6399084: std::_Bind_simple<void (*())()>::operator()() (functional:1720)
==9889==    by 0x639901D: std::thread::_Impl<std::_Bind_simple<void (*())()> >::_M_run() (thread:115)
==9889==    by 0x89F406F: ??? (in /usr/lib64/libstdc++.so.6.0.19)
==9889==    by 0x8224DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==9889==    by 0x8F59EAC: clone (in /usr/lib64/libc-2.17.so)
==9889== 
<b>UMC</b> ==9889== Conditional jump or move depends on uninitialised value(s)
==9889==    at 0x43A6CD: itk::Testing::ComparisonImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >::ThreadedGenerateData(itk::ImageRegion<3u> const&, unsigned int) (itkTestingComparisonImageFilter.hxx:184)
==9889==    by 0x440066: itk::ImageSource<itk::Image<float, 3u> >::ThreaderCallback(void*) (itkImageSource.hxx:303)
==9889==    by 0x63407B1: _ZNSt5_BindIFPFPvS0_EPN3itk17PoolMultiThreader20ThreadPoolInfoStructEEE6__callIS0_IEILm0EEEET_OSt5tupleIIDpT0_EESt12_Index_tupleIIXspT1_EEE (functional:1296)
==9889==    by 0x63406C1: void* std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::operator()<, void*>() (functional:1355)
==9889==    by 0x6340696: std::enable_if<((!std::is_member_pointer<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::value)&&(!std::is_function<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::value))&&(!std::is_function<std::remove_pointer<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::type>::value), std::result_of<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>& ()>::type>::type std::__invoke<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>>(std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>&) (functional:234)
==9889==    by 0x634066B: std::result_of<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>& ()>::type std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::operator()<>() const (functional:467)
==9889==    by 0x63405CD: void* std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1732)
==9889==    by 0x6340426: std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()>::operator()() (functional:1720)
==9889==    by 0x634015D: std::_Function_handler<void* (), std::reference_wrapper<std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()> > >::_M_invoke(std::_Any_data const&) (functional:2087)
==9889==    by 0x6340285: std::function<void* ()>::operator()() const (functional:2471)
==9889==    by 0x633FF1B: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void*>, std::__future_base::_Result_base::_Deleter>, void*>::operator()() (future:1216)
==9889==    by 0x633FA56: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void*>, std::__future_base::_Result_base::_Deleter>, void*> >::_M_invoke(std::_Any_data const&) (functional:2057)
==9889==    by 0x633A9C8: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2471)
==9889==    by 0x633A145: std::__future_base::_State_base::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&) (future:471)
==9889==    by 0x633CB76: void std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)>::operator()<std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>, void>(std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >&&, std::reference_wrapper<bool>&&) const (functional:601)
==9889==    by 0x633C6CC: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1732)
==9889==    by 0x633BBA4: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)>::operator()() (functional:1720)
==9889==    by 0x633B258: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)> >() (mutex:754)
==9889==    by 0x8229E3F: pthread_once (in /usr/lib64/libpthread-2.17.so)
==9889==    by 0x63336BE: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==9889==    by 0x633A86E: void std::call_once<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool> >(std::once_flag&, void (std::__future_base::_State_base::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const&&, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >&&, std::reference_wrapper<bool>&&) (mutex:786)
==9889==    by 0x6339F07: std::__future_base::_State_base::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:358)
==9889==    by 0x633F3A0: std::__future_base::_Task_state<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>, std::allocator<int>, void* ()>::_M_run() (future:1286)
==9889==    by 0x633B67E: std::packaged_task<void* ()>::operator()() (future:1421)
==9889==    by 0x633AC23: std::future<std::result_of<void* (*&(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::{lambda()#1}::operator()() const (itkThreadPool.h:92)
==9889==    by 0x633CD47: std::_Function_handler<void (), std::future<std::result_of<void* (*&(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (functional:2071)
==9889==    by 0x6396E1B: std::function<void ()>::operator()() const (functional:2471)
==9889==    by 0x6396581: itk::ThreadPool::ThreadExecute() (itkThreadPool.cxx:360)
==9889==    by 0x639912A: void std::_Bind_simple<void (*())()>::_M_invoke<>(std::_Index_tuple<>) (functional:1732)
==9889==    by 0x6399084: std::_Bind_simple<void (*())()>::operator()() (functional:1720)
==9889==    by 0x639901D: std::thread::_Impl<std::_Bind_simple<void (*())()> >::_M_run() (thread:115)
==9889==    by 0x89F406F: ??? (in /usr/lib64/libstdc++.so.6.0.19)
==9889==    by 0x8224DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==9889==    by 0x8F59EAC: clone (in /usr/lib64/libc-2.17.so)
==9889== 
<b>UMC</b> ==9889== Conditional jump or move depends on uninitialised value(s)
==9889==    at 0x43A7D0: itk::Testing::ComparisonImageFilter<itk::Image<float, 3u>, itk::Image<float, 3u> >::ThreadedGenerateData(itk::ImageRegion<3u> const&, unsigned int) (itkTestingComparisonImageFilter.hxx:211)
==9889==    by 0x440066: itk::ImageSource<itk::Image<float, 3u> >::ThreaderCallback(void*) (itkImageSource.hxx:303)
==9889==    by 0x63407B1: _ZNSt5_BindIFPFPvS0_EPN3itk17PoolMultiThreader20ThreadPoolInfoStructEEE6__callIS0_IEILm0EEEET_OSt5tupleIIDpT0_EESt12_Index_tupleIIXspT1_EEE (functional:1296)
==9889==    by 0x63406C1: void* std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::operator()<, void*>() (functional:1355)
==9889==    by 0x6340696: std::enable_if<((!std::is_member_pointer<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::value)&&(!std::is_function<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::value))&&(!std::is_function<std::remove_pointer<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::type>::value), std::result_of<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>& ()>::type>::type std::__invoke<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>>(std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>&) (functional:234)
==9889==    by 0x634066B: std::result_of<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>& ()>::type std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> >::operator()<>() const (functional:467)
==9889==    by 0x63405CD: void* std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()>::_M_invoke<>(std::_Index_tuple<>) (functional:1732)
==9889==    by 0x6340426: std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()>::operator()() (functional:1720)
==9889==    by 0x634015D: std::_Function_handler<void* (), std::reference_wrapper<std::_Bind_simple<std::reference_wrapper<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)> > ()> > >::_M_invoke(std::_Any_data const&) (functional:2087)
==9889==    by 0x6340285: std::function<void* ()>::operator()() const (functional:2471)
==9889==    by 0x633FF1B: std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void*>, std::__future_base::_Result_base::_Deleter>, void*>::operator()() (future:1216)
==9889==    by 0x633FA56: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void*>, std::__future_base::_Result_base::_Deleter>, void*> >::_M_invoke(std::_Any_data const&) (functional:2057)
==9889==    by 0x633A9C8: std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>::operator()() const (functional:2471)
==9889==    by 0x633A145: std::__future_base::_State_base::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&) (future:471)
==9889==    by 0x633CB76: void std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)>::operator()<std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>, void>(std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >&&, std::reference_wrapper<bool>&&) const (functional:601)
==9889==    by 0x633C6CC: void std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)>::_M_invoke<0ul, 1ul, 2ul>(std::_Index_tuple<0ul, 1ul, 2ul>) (functional:1732)
==9889==    by 0x633BBA4: std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)>::operator()() (functional:1720)
==9889==    by 0x633B258: void std::__once_call_impl<std::_Bind_simple<std::_Mem_fn<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&)> (std::__future_base::_State_base*, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool>)> >() (mutex:754)
==9889==    by 0x8229E3F: pthread_once (in /usr/lib64/libpthread-2.17.so)
==9889==    by 0x63336BE: __gthread_once(int*, void (*)()) (gthr-default.h:699)
==9889==    by 0x633A86E: void std::call_once<void (std::__future_base::_State_base::*)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >, std::reference_wrapper<bool> >(std::once_flag&, void (std::__future_base::_State_base::*&&)(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>&, bool&), std::__future_base::_State_base* const&&, std::reference_wrapper<std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()> >&&, std::reference_wrapper<bool>&&) (mutex:786)
==9889==    by 0x6339F07: std::__future_base::_State_base::_M_set_result(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>, bool) (future:358)
==9889==    by 0x633F3A0: std::__future_base::_Task_state<std::_Bind<void* (*(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>, std::allocator<int>, void* ()>::_M_run() (future:1286)
==9889==    by 0x633B67E: std::packaged_task<void* ()>::operator()() (future:1421)
==9889==    by 0x633AC23: std::future<std::result_of<void* (*&(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::{lambda()#1}::operator()() const (itkThreadPool.h:92)
==9889==    by 0x633CD47: std::_Function_handler<void (), std::future<std::result_of<void* (*&(itk::PoolMultiThreader::ThreadPoolInfoStruct*))(void*)>::type> itk::ThreadPool::AddWork<void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*>(void* (*&)(void*), itk::PoolMultiThreader::ThreadPoolInfoStruct*&&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (functional:2071)
==9889==    by 0x6396E1B: std::function<void ()>::operator()() const (functional:2471)
==9889==    by 0x6396581: itk::ThreadPool::ThreadExecute() (itkThreadPool.cxx:360)
==9889==    by 0x639912A: void std::_Bind_simple<void (*())()>::_M_invoke<>(std::_Index_tuple<>) (functional:1732)
==9889==    by 0x6399084: std::_Bind_simple<void (*())()>::operator()() (functional:1720)
==9889==    by 0x639901D: std::thread::_Impl<std::_Bind_simple<void (*())()> >::_M_run() (thread:115)
==9889==    by 0x89F406F: ??? (in /usr/lib64/libstdc++.so.6.0.19)
==9889==    by 0x8224DD4: start_thread (in /usr/lib64/libpthread-2.17.so)
==9889==    by 0x8F59EAC: clone (in /usr/lib64/libc-2.17.so)

Target "ITKReview" requests linking to directory "/opt/cuda/lib64".

#209 [Before submitting an issue, please check that your issue hasn't been already
filed]

Description

Hello,
I tried to build the ITKREVIEW in Ubuntu 16.04,When I set Module_ITKREVIEW ON and use ccmake to generante the files.WARNING ERRORS AS FOLLOWS:

WARNING: Target "ITKReview" requests linking to directory "/opt/cuda/lib64". Targets may link only to libraries. CMake is dropping the
item.

WARNING: Target "ITKReview" requests linking to directory "/opt/cuda/lib64". Targets may link only to libraries. CMake is dropping the
item.

WARNING: Target "ITKReview" requests linking to directory "/opt/cuda/lib64". Targets may link only to libraries. CMake is dropping the
item.

WARNING: Target "ITKReview" requests linking to directory "/opt/cuda/lib64". Targets may link only to libraries. CMake is dropping the
item.
I 'VE tried to add the link_directories(“/opt/cuda/lib64”) in the top of the CMakeList.txt,error still

Steps to Reproduce

  1. [First Step]
  2. [Second Step]
  3. [and so on...]

[Provide a minimal, complete, compilable, and verifiable example (commonly
abbreviated as MWE, minimal working example) or code snippet, either through a
GitHub gist or providing your own files (including
your source code, CMakeLists.txt file and your data) reproducing the issue or
clearly showing where your concern lies.

Expected behavior

[What you expect to happen]

Actual behavior

[What actually happens]

Reproducibility

[What percentage of the time does it reproduce?]

Versions

[If a tagged version, you can get this information by inspecting the
ITK_VERSION_MAJOR ITK_VERSION_MINOR and ITK_VERSION_PATCH variable
values in the ITKConfig.cmake file]

[If the commit number is required, run $ git rev-parse --short HEAD]

Environment

[Which your OS and compiler are]

Additional Information

[Any additional information, configuration or data that might be necessary to reproduce the issue.]

Note: Use issues for their purpose; issues are not for code help. Need help? Ask
your question at https://discourse.itk.org/

vnl_matrix multiple definitions

Description

Build fails with shared libraries, tests and CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.

Steps to Reproduce

Start CMake from Visual Studio command prompt with following options
cmake -G Ninja -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTING:BOOL=ON /path/to/ITK/source

Expected behavior

Build completes successfully

Actual behavior

Link error is generated: itkvnl-5.0.lib(itkvnl-5.0.dll) : error LNK2005: "public: __cdecl vnl_matrix<double>::vnl_matrix<double>(void)" (??0?$vnl_matrix@N@@QEAA@XZ) already defined in itkCoxDeBoorBSplineKernelFunctionTest.cxx.obj

Reproducibility

Always. Here is a link to a dashboard build: https://open.cdash.org/viewBuildError.php?buildid=5660838

Environment

Windows 10 and VS2015 or VS2017.

Building VNL tests fails on Linux

This started happening several days ago on my Linux machine:

dzenan@corista:~/ITK-git-rel$ uname -a
Linux corista 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 10:58:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
dzenan@corista:~/ITK-git-rel$ cmake --version
cmake version 3.12.3
dzenan@corista:~/ITK-git-rel$ cc --version
cc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609

The relevant part of the build log:

[123/3024] Building CXX object Modules/ThirdParty/VNL/src/vxl/core/vnl/algo/CMakeFiles/itkvnl_algo.dir/vnl_rnpoly_solve.cxx.o
FAILED: bin/vnl_test_all 
: && /usr/bin/c++  -fPIC -Wall -Wshadow -Wno-uninitialized -Wextra -Wattributes  -Wall -Wcast-align -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time -Wno-strict-overflow -Wno-deprecated -Wno-invalid-offsetof -Woverloaded-virtual -Wstrict-null-sentinel  -msse2 -w  -O2 -g -DNDEBUG  -fuse-ld=gold Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_driver.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_bignum.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_decnum.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_complex.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_complexify.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_inverse.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_diag_matrix.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_diag_matrix_fixed.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_file_matrix.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_finite.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_math.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_na.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_matrix.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_container_interface.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_matrix_exp.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_matrix_fixed.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_vector_fixed_ref.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_matrix_fixed_ref.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_numeric_traits.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_power.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_quaternion.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_rational.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_polynomial.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_real_polynomial.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_real_npolynomial.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_resize.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_rotation_matrix.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_sym_matrix.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_transpose.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_fastops.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_vector.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_gamma.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_random.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_alignment.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_arithmetic.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_hungarian_algorithm.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_integrant.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_bessel.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_crs_index.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_sparse_lst_sqr_function.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_sparse_matrix.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_pow_log.cxx.o Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/CMakeFiles/vnl_test_all.dir/test_vnl_index_sort.cxx.o  -o bin/vnl_test_all  -Wl,-rpath,/home/dzenan/ITK-git-rel/lib lib/libitkvnl-5.0.so.1 lib/libitktestlib-5.0.so.1 -lpthread lib/libitkvcl-5.0.so.1 -lm && :
/home/dzenan/ITK-git/Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/test_matrix_exp.cxx:26: error: undefined reference to 'vnl_rotation_matrix(vnl_vector_fixed<double, 3u> const&)'
/home/dzenan/ITK-git/Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/test_quaternion.cxx:132: error: undefined reference to 'vnl_rotation_matrix(vnl_vector_fixed<double, 3u> const&)'
/home/dzenan/ITK-git/Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/test_quaternion.cxx:154: error: undefined reference to 'vnl_rotation_matrix(vnl_vector<double> const&)'
/home/dzenan/ITK-git/Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/test_quaternion.cxx:155: error: undefined reference to 'vnl_rotation_matrix(vnl_vector<double> const&)'
/home/dzenan/ITK-git/Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/test_quaternion.cxx:156: error: undefined reference to 'vnl_rotation_matrix(vnl_vector<double> const&)'
/home/dzenan/ITK-git/Modules/ThirdParty/VNL/src/vxl/core/vnl/tests/test_rotation_matrix.cxx:87: error: undefined reference to 'vnl_rotation_matrix(vnl_vector<double> const&)'
collect2: error: ld returned 1 exit status

HDF5ImageIO tries to read images it can't

The HD5ImageIO is overly optimistic in it's CanReadFile method. It reports it can read any file which passes H5::H5File::isHdf5, or any file with data. It does not consider if the file contains an ITK HDF5 image. There is already special code to ensure it does not try to read MINC files [1].

I have encountered problems trying to read IMS or Imaris files, which SCIFIO can read, but HDF5ImageIO tries to read and fails. I am currently explicitly setting the ImageIO to SCIFIOImageIO, but it is cumbersome.

Perhaps HDF5 should restrict what is "can read" to having the same file extensions it "can write" or the IO should verify that the file has the ITK information and/or group name.

[1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/IO/HDF5/src/itkHDF5ImageIO.cxx#L690-L743

Export all symbols causes linking errors

Build errors here, e.g. ITKAnisotropicSmoothingTestDriver.obj : error LNK2019: unresolved external symbol "struct RegressionTestParameters regressionTestParameters" (?regressionTestParameters@@3URegressionTestParameters@@A) referenced in function main [C:\Jenkins\workspace\ITKWinVS17\ITK-bin\Modules\Filtering\AnisotropicSmoothing\test\ITKAnisotropicSmoothingTestDriver.vcxproj]

ITK build failed on MSVC + permissive- on windows

ITK failed when build with /permissive- by msvc on Windows, I use latset version b95b4c4 on master branch. Could you please help look at this?

You can repro this issue as the steps below:

  1. git clone http://itk.org/ITK.git D:\ITK\src
  2. open VS2017 x86 command prompt as admin and browse to D:\ITK
  3. set CL=/D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING /permissive- /Zc:twoPhase-
  4. mkdir build_x86 && pushd build_x86
  5. cmake -G "Visual Studio 15 2017" -DCMAKE_SYSTEM_VERSION=10.0.17134.0 -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=ON -DBUILD_EXAMPLES=OFF ..\src\
  6. msbuild /m /p:Configuration=Release;Platform=Win32 All_BUILD.vcxproj /t:Rebuild

Failures:
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(369,1): error C2362: initialization of 'nrOfRecipientsLen' is skipped by 'goto err'
err:
^
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(247): note: see declaration of 'nrOfRecipientsLen'
DWORD nrOfRecipeints, nrOfRecipientsLen = sizeof(DWORD);
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(369): note: see declaration of 'err'
err:
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(369,1): error C2362: initialization of 'kekAlgLen' is skipped by 'goto err'
err:
^
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(235): note: see declaration of 'kekAlgLen'
DWORD kekAlgLen = sizeof(ALG_ID);
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(369): note: see declaration of 'err'
err:
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(369,1): error C2362: initialization of 'cbMessageTypeLen' is skipped by 'goto err'
err:
^
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(221): note: see declaration of 'cbMessageTypeLen'
DWORD dwMessageType, cbMessageTypeLen = sizeof(DWORD);
D:\ITK\src\Modules\ThirdParty\GDCM\src\gdcm\Source\Common\gdcmCAPICryptographicMessageSyntax.cxx(369): note: see declaration of 'err'
err:

Name job pieces consistently when calling numberOfWorkUnits()

Description

Since the new multi-threading mechanism has been put in place, the notion of job pieces has transitioned from number of threads to number of work units (commit ce15429 and the related work). At many points in the code, the variable holding this number has not been renamed: e.g.

ThreadIdType numberOfThreads = this->GetNumberOfWorkUnits();

such as in

ThreadIdType numberOfThreads = this->GetNumberOfWorkUnits();

In fact no consistent naming is used for the variable holding such information (e.g. the name nbthreads can also be found).

This naming issue also applies to the remote modules.

Steps to Reproduce

Style change: no impact on the code.

Expected behavior

Increase consistency throughout the code.

Actual behavior

No impact in compilation/tests.

Reproducibility

Does not apply.

Versions

Current head in master branch.

Environment

Does not apply.

Additional Information

The issue was first discussed in PR 10 of the LabelErodeDilate remote module. Some proposals were also discussed.

Document and provide infrastructure for submitting patches to a branch other than master

Document the process for getting a branch merged into release or release-4.13 in addition to master.

  • Add instructions to CONTRIBUTING.md for branching from a different branch.
  • Document submitting and merging to master first so it can be tested on the Nightly dashboard builds.
  • Add support to the git review-push for creating a PR to a different branch. This should also check that the topic was branched from the target branch.

Ubuntu ccmake issue: "ITK should not be configured & built in the ITK source directory"

Unable to run ccmake .., c configure and g generate

I'm using Ubuntu 18.04 and am trying to build ITK. I'm following the steps here (are these still up to date?): https://itk.org/Wiki/ITK/Getting_Started/Build/Linux. After creating a /bin directory and trying ccmake ..,and c to configure I get:
screenshot from 2018-10-12 13-10-52
i.e. it says: "ITK should not be configured & built in the ITK source directory". So I am unable to proceed. Am I doing something wrong?

Steps to Reproduce

I attempted the steps described here: https://itk.org/Wiki/ITK/Getting_Started/Build/Linux

Expected behavior

The software should be compiled

Actual behavior

Unable to start with ccmake

Reproducibility

100%

Versions

ITK 4.13.1

Environment

Ubuntu 18.04

Dashboard with USE_SYSTEM_VXL need to be updated

CMake Error at Modules/ThirdParty/VNL/CMakeLists.txt:8 (find_package):
Could not find a configuration file for package "VXL" that is compatible
with requested version "2.0.0".

The following configuration files were considered but not accepted:

/usr/share/vxl/cmake/VXLConfig.cmake, version: unknown

faraway.kitware | Linux-Ubuntu-GCC-Doxygen |
eldorado.kitware | Ubuntu-g++-4.8.2-Release-System-VXL |
dash4win7.kitware.com | Win-VS14-Ninja-Release-Shared |

CircleCI ccache cache

The CircleCI build use ccache to cache compile results to expedite rebuilds of ITK as most CI is just rebuilding the same ITK files with little change. The ccache is saved via the CircleCI cache mechanism. The cache is then retrieved via a best matching file name which include the the arch and branch name. This is correctly being restored when the branch matches. For example the master branch always retrieves the master branch cached ccache, which results is build and testing taking about 5-10 min. However for pull request what are designated with the branch name "pull/###" the cache can be retrieved if the branch is rebuild but is does not fall back to the master cached ccache as intended.

Some VNL solvers are not thread-safe

Description

Contrary to v3p's README, some VNL netlib optimizers still have static variables declared in functions. The differences are especially easy to spot when comparing the ITK repository with the VXL repository.

https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ThirdParty/VNL/src/vxl/v3p/netlib/README.md

The v3p_netlib library contains updated netlib code converted with f2c in a thread-safe manner. Sources have been modified to use the v3p_*.h headers in this directory. Types and function names have been mangled to start with a v3p_netlib_ prefix. This distinguishes them from other netlib libraries and keeps the code grouped and isolated.

Example non-thread-safe netlib code in ITK:
https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/ThirdParty/VNL/src/vxl/v3p/netlib/opt/lbfgsb.c

Example thread-safe netlib code in VXL
https://sourceforge.net/p/vxl/svn/HEAD/tree/trunk/v3p/netlib/opt/lbfgsb.c

Here's a thread-safe VNL netlib library fix announcement on the VXL mailing list:
https://sourceforge.net/p/vxl/mailman/vxl-maintainers/thread/44CF9607.6090804%40kitware.com/

Maybe someone re-ran f2c and clobbered those changes in ITK?

Steps to Reproduce

  1. In several threads, instantiate one thread-local vnl_lbfgsb solver (vnl_lbfgs is actually thread-safe!).
  2. Run the solver in each thread and hope it crashes by chance.
  3. Or... check that deterministic code is not giving the same output for the same inputs when running multiple threads (example attached).

See attached.
LetsCrashVNL.zip

Try the following:
vnl_lfbgs and observe that it works (line 39)
vnl_lfbgsb and observe that it's not working (lots of different answers).
uncomment num_threads(1) (line 32) directive and observe vnl_lfbgsb works now.

When it works, there should be no "Different answer" messages as this is deterministic code being fed the same input over and over again.

Expected behavior

When presenting the user with a class as the interface to a solver, I would expect isolation between multiple instantiations of the solver.

Actual behavior

Using one instantiation of a solver may have side effects on a different instantiation of the solver.

Reproducibility

Random. May even appear to work!

Versions

ITK 4.13, but I've seen mysterious crashes when using OpenMP with VNL solvers (one per thread) as far back as ITK 4.7.

Environment

Windows 7, 10, Ubuntu 14.04, FreeBSD 11.2

Additional Information

https://sourceforge.net/p/vxl/mailman/vxl-maintainers/thread/44CF9607.6090804%40kitware.com/
https://sourceforge.net/p/vxl/svn/HEAD/tree/trunk/v3p/netlib/opt/lbfgsb.c

This problem may not be unique to vnl_lbfgsb. This problem will obviously affect users of std::thread, pthreads, etc... L-BFGS-B is especially nice as it performs constrained optimization while L-BFGS does not.

Mismatch documentation and code SyNImageRegistrationMethod GaussianSmoothingVarianceForTheUpdateField default value

There appears a mismatch between documentation and the actual implementation of the default value for the SyNImageRegistrationMethod parameter GaussianSmoothingVarianceForTheUpdateField.

https://github.com/InsightSoftwareConsortium/ITK/blob/v5.0b01/Modules/Registration/RegistrationMethodsv4/include/itkSyNImageRegistrationMethod.h#L178 says:

  /**
   * Get/Set the Gaussian smoothing variance for the update field.
   * Default = 1.75.
   */
  itkSetMacro( GaussianSmoothingVarianceForTheUpdateField, RealType );
  itkGetConstReferenceMacro( GaussianSmoothingVarianceForTheUpdateField, RealType );

However, https://github.com/InsightSoftwareConsortium/ITK/blob/v5.0b01/Modules/Registration/RegistrationMethodsv4/include/itkSyNImageRegistrationMethod.hxx#L44 does, in the default-constructor of SyNImageRegistrationMethod:

  m_GaussianSmoothingVarianceForTheUpdateField( 3.0 ),

Do you think the documentation is incorrect, or should the code be fixed?

@ntustison Nick, what do you think?

Note that this mismatch was there already with the initial version (Jan 10, 2012): ec36185

Update to newest version of NIFTI code.

NIFTI is in the process of moving from CVS on sourceforge to git on github:

https://github.com/NIFTI-Imaging/nifti_clib

-- This also includes 5 years of updates/bug fixes from the afni development tree that were never contributed back to CVS (because CVS was disabled on sourceforge).

-- This also includes updates to cmake to modernize it for supporting newer versions of cmake without warnings.

A new Upstream merge script similar to vxl should be created to make this process easier in the future.

Update migration guide with Hough transform changes

typedef itk::HoughTransform2DCirclesImageFilter<ImageProcessingConstants::DefaultPixelType, ImageProcessingConstants::FloatPixelType> HoughTransformFilterType; now fails to compile:

47>c:\misc\bluequartz\dream3d_plugins\imageprocessing\imageprocessingfilters\itkhoughcircles.cpp(193): error C2976: 'itk::HoughTransform2DCirclesImageFilter': too few template arguments

A sentence or two about reasoning, and a suggested solution should be added to Class changes section of the migration guide.

Warning in itkPNGImageIO: passing argument aliases -Wrestrict

Description

Warning -Wrestrict in itkPNGImageIO compiling with gcc 8.2

Steps to Reproduce

build master with tests enabled

Actual behavior

/home/user/Software/ITK/src-ITK-master/Modules/IO/PNG/src/itkPNGImageIO.cxx: In member function ‘void itk::PNGImageIO::WriteSlice(const string&, const void*)’:
/home/user/Software/ITK/src-ITK-master/Modules/IO/PNG/src/itkPNGImageIO.cxx:592:20: warning: passing argument 1 to restrict-qualified parameter aliases with argument 2 [-Wrestrict]
   png_set_error_fn(png_ptr, png_ptr,

Reproducibility

Every time

Versions

master

Environment

Linux, gcc 8.2.1

Document how to start Python CI builds

Add a note to CONTRIBUTING.md that a pull request against the python-builds branch can be used to start Python builds.

Add content to the Git client hooks to present the URL required to open the pull request when pushed to GitHub.

Update to newest version of GDCM

GDCM has been updated recently to address forward compatibility issues with cmake.

The ITKv5Migration scripts were applied and accepted to the GDCM build tree, so cleaner ITK compatible codebase is available.

Performance improvements were added to GDCM.

LTO build now succeeds cleanly with newest GDCM.

Not all tests are run in Azure's Python builds

Description

Not all Python tests are run on Azure's Python Build (42 instead of 81).

Steps to Reproduce

To check what Python tests are run in Azure's Python's builds, one can connect to dev.azure.com from the check result links on Github. If the PR has been closed, one can still access the check result links by clicking on the green check mark or red cross to expand the list of checks. For example, for PR #268 , the results of the Linux Python Builds are available here.

On the Build and test line, one can click on the blue icon download the log to download a zip file containing the build and test log.

After that, the following command can be run to count the number of Python tests that were run:
more 7.txt|grep Python |grep Test |grep '#' |wc -l

Expected behavior

In theory, there should be around 80 tests run for Python builds, based on what happens on my machine.

Actual behavior

Only 42 Python tests are run.

Reproducibility

Unknown as the PR used to reproduce this step was the first re-activating about 40 tests that had been accidently deactivated.

Versions

At least for PR #268

Environment

I haven't checked the logs on Max and Windows, but I expect the same behavior since all the tests were reporting as passing even though there should have been some tests failing. This demonstrates that the tests that should have failed were not run.

Make it easier to execute commands in the release notes

In the release documentation, ITK/Documentation/Release.md make it easier to copy and execute commands.

  • Remove $ from shell commands
  • For long, multi-line commands, create short scripts inline, e.g.
cat << REMOTE_SCRIPT_EOF > /tmp/itk_linux_release.sh
set -ex

cd ~/Packaging/ITKPythonPackage
git reset --hard HEAD
git fetch origin
git checkout v$version
git clean -fdx
/home/kitware/Support/skbuild-venv/bin/python setup.py sdist --formats=gztar,zip
./scripts/dockcross-manylinux-build-wheels.sh
tar cvzf /tmp/dist-linux.tar.gz ./dist
rm dist/*
cd ..
./ITKPythonPackage/scripts/dockcross-manylinux-build-tarball.sh

REMOTE_SCRIPT_EOF

ssh $metroplex 'bash -s' < /tmp/itk_linux_release.sh

Suggested by @jcfr

See also the discussion here:

http://review.source.kitware.com/#/c/23699/

IO warning: passing argument 1 to restrict-qualified parameter aliases with argument

Compiling ITK (no tests) with gcc 8.2.1

[173/242] Building CXX object Modules/IO/MeshVTK/src/CMakeFiles/ITKIOMeshVTK.dir/itkVTKPolyDataMeshIO.cxx.o
Modules/IO/PNG/src/itkPNGImageIO.cxx: In member function ‘void itk::PNGImageIO::WriteSlice(const string&, const void*)’:
Modules/IO/PNG/src/itkPNGImageIO.cxx:591:20: warning: passing argument 1 to restrict-qualified parameter aliases with argument 2 [-Wrestrict]
   png_set_error_fn(png_ptr, png_ptr,

CMake policy deprecation warning in itkhdf5

Description

CMake policy deprecation warning in itkhdf5

Steps to Reproduce

Configure current master with cmake 3.12.1

Expected behavior

No deprecation warnings

Actual behavior

 CMake Warning (dev) at /usr/share/cmake-3.12/Modules/CheckIncludeFileCXX.cmake:69 (message):
   Policy CMP0075 is not set: Include file check macros honor
   CMAKE_REQUIRED_LIBRARIES.  Run "cmake --help-policy CMP0075" for policy
   details.  Use the cmake_policy command to set the policy and suppress this
   warning.

   CMAKE_REQUIRED_LIBRARIES is set to:

     m;dl

   For compatibility with CMake 3.11 and below this check is ignoring it.
 Call Stack (most recent call first):
   Modules/ThirdParty/HDF5/src/itkhdf5/config/cmake_ext_mod/HDFUseCXX.cmake:39 (CHECK_INCLUDE_FILE_CXX)
   Modules/ThirdParty/HDF5/src/itkhdf5/CMakeLists.txt:862 (include)
 This warning is for project developers.  Use -Wno-dev to suppress it.

This is the help policy: cmake --help-policy CMP0075

CMP0075
-------

Include file check macros honor ``CMAKE_REQUIRED_LIBRARIES``.

In CMake 3.12 and above, the

* ``check_include_file`` macro in the ``CheckIncludeFile`` module, the
* ``check_include_file_cxx`` macro in the
  ``CheckIncludeFileCXX`` module, and the
* ``check_include_files`` macro in the ``CheckIncludeFiles`` module

now prefer to link the check executable to the libraries listed in the
``CMAKE_REQUIRED_LIBRARIES`` variable.  This policy provides compatibility
with projects that have not been updated to expect this behavior.

The ``OLD`` behavior for this policy is to ignore ``CMAKE_REQUIRED_LIBRARIES``
in the include file check macros.  The ``NEW`` behavior of this policy is to
honor ``CMAKE_REQUIRED_LIBRARIES`` in the include file check macros.

This policy was introduced in CMake version 3.12.  CMake version
3.12.1 warns when the policy is not set and uses ``OLD`` behavior.
Use the ``cmake_policy()`` command to set it to ``OLD`` or ``NEW``
explicitly.

.. note::
  The ``OLD`` behavior of a policy is
  ``deprecated by definition``
  and may be removed in a future version of CMake.

Reproducibility

Everytime building with cmake 3.12.1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.