Skip to content

VtkGlue fails to build because it cannot find the headers of VTK #4375

@lexming

Description

@lexming

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:BugInconsistencies or issues which will cause an incorrect result under some or all circumstances

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions