SyneRBI / SIRF-SuperBuild

SIRF CMake SuperBuild
http://www.ccpsynerbi.ac.uk
Apache License 2.0
15 stars 17 forks source link

conflict in Nifti library when building with installed ITK #892

Open KrisThielemans opened 3 months ago

KrisThielemans commented 3 months ago

Building with system ITK (installed via conda, currently ITK 5.3), NiftyReg and ITK both use the nifti library and are not careful about conflicts, leading to

In file included from /home/kris/devel/install/include/nifti1_io.h:18,
                 from /home/kris/devel/install/include/_reg_maths.h:22,
                 from /home/kris/devel/install/include/_reg_tools.h:20,
                 from /home/kris/devel/buildConda/sources/SIRF/src/Registration/cReg/include/sirf/Reg/NiftiImageData.h:40,
                 from /home/kris/devel/buildConda/sources/SIRF/src/Registration/cReg/include/sirf/Reg/NiftiImageData3D.h:32,
                 from /home/kris/devel/buildConda/sources/SIRF/src/Synergistic/cSyn/utilities.cpp:34:
/home/kris/devel/install/include/nifti1.h:144:11: error: redefinition of 'struct nifti_1_header'
  144 |    struct nifti_1_header
      |           ^~~~~~~~~~~~~~
In file included from /home/kris/miniconda3/envs/cilsirfbuild/include/ITK-5.3/nifti1_io.h:18,
                 from /home/kris/devel/buildConda/sources/SIRF/src/Registration/cReg/include/sirf/Reg/NiftiImageData.h:32:
/home/kris/miniconda3/envs/cilsirfbuild/include/ITK-5.3/nifti1.h:148:8: note: previous definition of 'struct nifti_1_header'
  148 | struct nifti_1_header { /* NIFTI-1 usage         */  /* ANALYZE 7.5 field(s) */
      |        ^~~~~~~~~~~~~~

I'm not sure though why ITK is in the include path here.