Paraview 5.11.2 can't find external libharu

Hello.

I’m trying to build paraview locally, preferrably using external libs rather than bundled. I got as far as:

-- Could NOT find LibHaru (missing: LibHaru_LIBRARY) (found suitable version "2.4.0-dev", minimum required is "2.4.0")
CMake Error at VTK/CMake/vtkModule.cmake:4579 (message):
  Could not find the LibHaru external dependency.
Call Stack (most recent call first):
  VTK/CMake/vtkModule.cmake:5173 (vtk_module_find_package)
  VTK/CMake/vtkModule.cmake:5044 (vtk_module_third_party_external)
  VTK/ThirdParty/libharu/CMakeLists.txt:1 (vtk_module_third_party)

with the cmake command:

cmake -GNinja -DPARAVIEW_USE_PYTHON=ON -DPARAVIEW_USE_MPI=ON \
    -DVTK_SMP_IMPLEMENTATION_TYPE=TBB -DPARAVIEW_BUILD_WITH_EXTERNAL=ON \
    -Dutf8cpp_INCLUDE_DIR=/usr/include/vtk-9.2/vtkutf8 \
    -DExprTk_INCLUDE_DIR=/usr/include/vtk-9.2/vtkexprtk \
    -DLibHaru_INCLUDE_DIR=/usr/include/vtk-9.2/vtklibharu/include \
    -DCMAKE_BUILD_TYPE=Release ..

At this point, I’m not sure how to proceed. The libharu include directory looks like this:

%zsh> ls /usr/include/vtk-9.2/vtklibharu/include
hpdf.h             hpdf_config.h       hpdf_encrypt.h      hpdf_font.h     hpdf_list.h        hpdf_pages.h    hpdf_utils.h
hpdf_3dmeasure.h   hpdf_consts.h       hpdf_encryptdict.h  hpdf_fontdef.h  hpdf_mmgr.h        hpdf_pdfa.h     hpdf_version.h
hpdf_annotation.h  hpdf_destination.h  hpdf_error.h        hpdf_gstate.h   hpdf_objects.h     hpdf_streams.h  vtk_haru_mangle.h
hpdf_catalog.h     hpdf_doc.h          hpdf_exdata.h       hpdf_image.h    hpdf_outline.h     hpdf_types.h
hpdf_conf.h        hpdf_encoder.h      hpdf_ext_gstate.h   hpdf_info.h     hpdf_page_label.h  hpdf_u3d.h

There is nothing else in /usr/include/vtk-9.2/vtklibharu/ and the .so file is called /usr/lib/libvtklibharu-9.2.so.

My questions are:

  • Is the libharu dependency strictly necessary? Can this be disabled?
  • Can I get a more verbose error out of cmake somehow?
  • Is it possible to use the ThirdParty libharu only, while still using external dependencies for the rest?

Thanks

What is happening here is that your libharu is not new enough. 2.4.0 has not been released and we require patches that have been sent to upstream but not released (or even merged in some cases).

Probably not; VTK_MODULE_ENABLE_VTK_libharu=NO would tell the module system to turn anything that requires it off (with a message if this ends up trying to turn off something otherwise requested).

Yes, VTK_MODULE_USE_EXTERNAL_VTK_libharu=OFF.

1 Like

Thank you, those flags were very helpful. I now got as far as SEACASIoss
and am failing because, even using either one of

VTK_MODULE_ENABLE_VTK_SEACASIoss=OFF

or

VTK_MODULE_USE_EXTERNAL_VTK_SEACASIoss=OFF

or their case variations (seacasioss? SEACASIOSS?) I’m not able to tell
cmake to stop looking for an external SEACAS lib. I don’t have one
installed and believe it is only needed for exodus2 file I/O (probably
mainly reading their meshes?) which I don’t require. I guess “Ioss” is
“input-output subsystem”? Either way, I wonder if there is a way to turn
this off as well.

Cheers.

Please disregard the previous message, I found that the module is known
to cmake as simply ioss without the seacas prefix.