Skip to content

Building vtk DICOM as VTK module with USE_ITK_GDCM clashes with zlib #226

@stanLec

Description

@stanLec

Good morning,
I tried to build VtkDicom as a VTK 9.0.1 remote module using the option USE_ITK_GDCM activated to avoid rebuilding GDCM since I use it also for ITK 5.3.

This is how i build ITK as an external project of my project

      ExternalProject_Add( ${proj}
	URL "https://github.com/InsightSoftwareConsortium/ITK/archive/refs/tags/v5.3.0.zip"
	URL_MD5 06d4b2365f799c28c9361a063e0f2e5f

	CMAKE_ARGS
		-DBUILD_TESTING:BOOL=OFF
		-DBUILD_EXAMPLES:BOOL=OFF
		-DBUILD_DOCUMENTATION:BOOL=OFF
		# This is needed otherwise ITK selects Release configuration by default
		-DCMAKE_BUILD_TYPE:STRING=$<CONFIG>

		-DModule_ITKOpenJPEG:BOOL=ON
		-DModule_ITKReview:BOOL=ON
		-DITK_SKIP_PATH_LENGTH_CHECKS:BOOL=ON
		-DITK_LEGACY_SILENT:BOOL=ON
)

and VTK

        ExternalProject_Add( ${proj} 
        URL "https://gitlab.kitware.com/vtk/vtk/-/archive/v9.0.1/vtk-v9.0.1.zip"
        URL_MD5 1dc648623c71420a195e77afe3ccd833

        DEPENDS ITK

        CMAKE_ARGS
            -DBUILD_EXAMPLES:BOOL=OFF
            -DBUILD_TESTING:BOOL=OFF
            -DCMAKE_DEBUG_POSTFIX:STRING=d
            -DVTK_WRAP_TCL:BOOL=OFF
	    -DVTK_WRAP_PYTHON:BOOL=OFF
            -DVTK_WRAP_JAVA:BOOL=OFF

            -DVTK_Group_Qt:BOOL=OFF
            -DVTK_Group_Imaging:BOOL=ON
            -DVTK_LEGACY_SILENT:BOOL=ON
            -DVTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS:BOOL=ON
            -DVTK_BUILD_QT_DESIGNER_PLUGIN:BOOL=OFF
            -DVTK_ENABLE_KITS:BOOL=ON
            -DVTK_RENDERING_BACKEND=OpenGL2
            -DDirectX_FOUND:BOOL=OFF
            
            # VtkDICOM build
            -DVTK_MODULE_ENABLE_VTK_vtkDICOM=YES
	    -DVTK_MODULE_ENABLE_VTK_DICOM=YES
	    -DUSE_ITK_GDCM:BOOL=ON
            -DBUILD_DICOM_PROGRAMS:BOOL=OFF

    )

I get a CMake error when building vtk Dicom when the find_package(ITK) is done, Zlib seems to be clashing between ITK and VTKDicom. We also build ZLib as an external library in the project. If I use the argument ITK_USE_SYSTEM_ZLIB for ITK I don't have the issue but the ZLib path in the CMake exported target of ITK is absolute and not relative to ITK project.

  -- vtkDICOM: Building vtkDICOM as a Remote VTK Module

  CMake Error at XXX/lib/cmake/ITK-5.3/ITKTargets.cmake:42 (message):

    Some (but not all) targets in this export set were already defined.


    Targets Defined: zlib

    Targets not yet defined: itkdouble-conversion, itksys, itkvcl,

    itkv3p_netlib, itkvnl, itkvnl_algo, itktestlib, ITKVNLInstantiation,

    ITKCommon, itkNetlibSlatec, ITKStatistics, ITKTransform, ITKMesh,

    ITKMetaIO, ITKSpatialObjects, ITKPath, ITKImageIntensity, ITKLabelMap,

    ITKMathematicalMorphology, ITKQuadEdgeMesh, ITKFastMarching,

    ITKIOImageBase, ITKFFT, ITKConvolution, ITKSmoothing, ITKImageFeature,

    ITKOptimizers, ITKPolynomials, ITKBiasCorrection, ITKColormap,

    ITKDICOMParser, ITKDeformableMesh, ITKDenoising, ITKDiffusionTensorImage,

    ITKEXPAT, gdcmjpeg8, gdcmjpeg12, gdcmjpeg16, gdcmopenjp2, gdcmcharls,

    gdcmsocketxx, gdcmCommon, gdcmDICT, gdcmDSED, gdcmIOD, gdcmMSFF, gdcmMEXD,

    ITKznz, ITKniftiio, ITKgiftiio, ITKPDEDeformableRegistration, hdf5-shared,

    hdf5_hl-shared, hdf5_cpp-shared, hdf5_hl_cpp-shared, ITKIOBMP, ITKIOBioRad,

    ITKIOBruker, ITKIOCSV, ITKIOGDCM, ITKIOIPL, ITKIOGE, ITKIOGIPL, ITKIOHDF5,

    itkjpeg, ITKIOJPEG, itkopenjpeg, ITKIOJPEG2000, itktiff, ITKIOTIFF,

    ITKIOLSM, itkminc2, ITKIOMINC, ITKIOMRC, ITKIOMeshBase, ITKIOMeshBYU,

    ITKIOMeshFreeSurfer, ITKIOMeshGifti, ITKIOMeshOBJ, ITKIOMeshOFF,

    ITKIOMeshVTK, ITKIOMeta, ITKIONIFTI, ITKNrrdIO, ITKIONRRD, itkpng,

    ITKIOPNG, ITKIOSiemens, ITKIOXML, ITKIOSpatialObjects, ITKIOStimulate,

    ITKTransformFactory, ITKIOTransformBase, ITKIOTransformHDF5,

    ITKIOTransformInsightLegacy, ITKIOTransformMatlab, ITKIOVTK,

    ITKKLMRegionGrowing, itklbfgs, ITKMarkovRandomFieldsClassifiers,

    ITKOptimizersv4, ITKQuadEdgeMeshFiltering, ITKRegionGrowing,

    ITKRegistrationMethodsv4, ITKVTK, ITKWatersheds, ITKReview, itkTestDriver,

    ITKTestKernel, ITKVideoCore, ITKVideoIO

Do you have any leads about this error ? Thank you

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions