Description
VtkGlue fails to build in ITK v5.3.0 because it cannot find the headers of VTK:
[ 35%] Generating ../../castxml_inputs/itkVTKImageToImageFilter.xml
cd /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/Modules/ITKVtkGlue && /user/brussel/101/vsc10122/easybuild/install/skylake/software/CastXML/0.6.2-GCCcore-12.3.0/bin/castxml -o /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/castxml_inputs/itkVTKImageToImageFilter.xml --castxml-gccxml --castxml-start _wrapping_ --castxml-cc-gnu "(" /apps/brussel/RL8/skylake/software/GCCcore/12.3.0/bin/g++ -O2 -ftree-vectorize -fno-math-errno -fPIC -std=c++11 -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 -fno-sized-deallocation -fno-sized-deallocation -std=c++14 ")" -w -c @/rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/castxml_inputs/.castxml.inc /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/castxml_inputs/itkVTKImageToImageFilter.cxx
make[2]: Leaving directory '/rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj'
[ 35%] Generating ../../castxml_inputs/itkFastApproximateRankImageFilter.xml
cd /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/Modules/ITKReview && /user/brussel/101/vsc10122/easybuild/install/skylake/software/CastXML/0.6.2-GCCcore-12.3.0/bin/castxml -o /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/castxml_inputs/itkFastApproximateRankImageFilter.xml --castxml-gccxml --castxml-start _wrapping_ --castxml-cc-gnu "(" /apps/brussel/RL8/skylake/software/GCCcore/12.3.0/bin/g++ -O2 -ftree-vectorize -fno-math-errno -fPIC -std=c++11 -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 -fno-sized-deallocation -fno-sized-deallocation -std=c++14 ")" -w -c @/rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/castxml_inputs/.castxml.inc /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/castxml_inputs/itkFastApproximateRankImageFilter.cxx
In file included from /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/easybuild_obj/Wrapping/castxml_inputs/itkImageToVTKImageFilter.cxx:16:
/rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/ITK-5.3.0/Modules/Bridge/VtkGlue/include/itkImageToVTKImageFilter.h:22:10: fatal error: 'vtkImageImport.h' file not found
#include "vtkImageImport.h"
^~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [Wrapping/Modules/ITKVtkGlue/CMakeFiles/ITKVtkGlueCastXML.dir/build.make:80: Wrapping/castxml_inputs/itkImageToVTKImageFilter.xml] Error 1
make[2]: *** Waiting for unfinished jobs....
The issues stems from
|
include_directories(${_vtk_lib_include_dirs}) |
VtkGlue correctly adds the paths to the include directories from VTK through this include_directories, but those are not inherited outside the VtkGlue subdirectory. Therefore, the paths from VTK are missing in the final Wrapping/castxml_inputs/.castxml.inc file.
Steps to Reproduce
Build ITK v5.3.0 setting Module_ITKVtkGlue=ON in cmake:
cmake -DCMAKE_INSTALL_PREFIX=/user/brussel/101/vsc10122/easybuild/install/skylake/software/ITK/5.3.0-foss-2023a -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DBUILD_SHARED_LIBS=ON -DBUIL_TESTING=OFF -DModule_SimpleITKFilters=ON -DModule_ITKReview=ON -DModule_ITKVtkGlue=ON -DITK_WRAP_PYTHON:BOOL=ON -DPython3_EXECUTABLE=$EBROOTPYTHON/bin/python -DSWIG_EXECUTABLE=$EBROOTSWIG/bin/swig -DSWIG_DIR=$EBROOTSWIG -DITK_USE_SYSTEM_CASTXML=ON -DITK_USE_SYSTEM_DOUBLECONVERSION=ON -DITK_USE_SYSTEM_EIGEN=ON -DITK_USE_SYSTEM_EXPAT=ON -DITK_USE_SYSTEM_FFTW=ON -DITK_USE_SYSTEM_HDF5=ON -DITK_USE_SYSTEM_JPEG=ON -DITK_USE_SYSTEM_PNG=ON -DITK_USE_SYSTEM_SWIG=ON -DITK_USE_SYSTEM_TIFF=ON -DITK_USE_SYSTEM_ZLIB=ON /rhea/scratch/brussel/vo/000/bvo00005/vsc10122/easybuild/install/skylake/build/ITK/5.3.0/foss-2023a/ITK-5.3.0/
Expected behavior
ITK v5.3.0 builds with VtkGlue
Actual behavior
Compilation fails with aforementioned error
Reproducibility
100%
Versions
ITK v5.3.0
Environment
CMake v3.26.3
VTK v9.3.0
Description
VtkGlue fails to build in ITK v5.3.0 because it cannot find the headers of VTK:
The issues stems from
ITK/Modules/Bridge/VtkGlue/wrapping/CMakeLists.txt
Line 9 in 4543ba6
VtkGlue correctly adds the paths to the include directories from VTK through this
include_directories, but those are not inherited outside the VtkGlue subdirectory. Therefore, the paths from VTK are missing in the finalWrapping/castxml_inputs/.castxml.incfile.Steps to Reproduce
Build ITK v5.3.0 setting
Module_ITKVtkGlue=ONin cmake:Expected behavior
ITK v5.3.0 builds with VtkGlue
Actual behavior
Compilation fails with aforementioned error
Reproducibility
100%
Versions
ITK v5.3.0
Environment
CMake v3.26.3
VTK v9.3.0