cmake complains about incorrect boost version

Description:

Using "find_package(ParaView REQUIRED)" in cmake fails:

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:227 (message):
  Could NOT find Boost: Found unsuitable version "1.88.0", but required is
  exact version "1.87.0" (found /usr/include, )
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:589 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindBoost.cmake:2422 (find_package_handle_standard_args)
  /opt/paraview/lib/cmake/paraview/vtk/VTK-vtk-module-find-packages.cmake:403 (find_package)
  /opt/paraview/lib/cmake/paraview/vtk/vtk-config.cmake:172 (include)
  /opt/paraview/lib/cmake/paraview/paraview-config.cmake:201 (find_package)
  CMakeLists.txt:5 (find_package)

Additional info:

Current Boost upstream is 1.88 - I think this may just need a rebuild

  • package version(s):

paraview-5.13.3-4 is up to date

boost-1.88.0-2 is up to date

  • config and/or log files:

/opt/paraview/lib/cmake/paraview/vtk/VTK-vtk-module-find-packages.cmake:404

  find_package(Boost
    1.87.0
    EXACT
    
    ${_vtk_module_find_package_quiet}
    ${_vtk_module_find_package_required}
    COMPONENTS          
    OPTIONAL_COMPONENTS )
  • link to upstream bug report, if any:

Steps to reproduce:

main.cpp

#include <iostream>

#ifdef PARAVIEW_USE_VTKM
#include <vtkm/cont/Initialize.h>
#endif

#include <vtkNew.h>
#include <vtkVersion.h>

int main(int argc, char *argv[])
{
    std::cout << "ParaView test application started." << std::endl;
    
    // Display VTK version information
    std::cout << "Using VTK version: " 
              << vtkVersion::GetVTKMajorVersion() << "."
              << vtkVersion::GetVTKMinorVersion() << "."
              << vtkVersion::GetVTKBuildVersion() << std::endl;
    
#ifdef PARAVIEW_USE_VTKM
    // Initialize VTK-m if ParaView was built with VTK-m support
    vtkm::cont::Initialize(argc, argv);
    std::cout << "ParaView has VTK-m support enabled" << std::endl;
#else
    std::cout << "ParaView does not have VTK-m support enabled" << std::endl;
#endif

    std::cout << "ParaView test completed successfully!" << std::endl;
    return 0;
}

CMakeLists.txt:

cmake_minimum_required(VERSION 3.51)
project(ParaViewTest)

# Find ParaView package
find_package(ParaView REQUIRED)

# Print ParaView information
message(STATUS "ParaView found: ${ParaView_FOUND}")
message(STATUS "ParaView version: ${ParaView_VERSION}")
message(STATUS "ParaView include dirs: ${ParaView_INCLUDE_DIRS}")
message(STATUS "ParaView libraries: ${ParaView_LIBRARIES}")

# Create a simple executable
add_executable(paraview_test main.cpp)
target_link_libraries(paraview_test PRIVATE ${ParaView_LIBRARIES})
target_include_directories(paraview_test PRIVATE ${ParaView_INCLUDE_DIRS})

build.sh:

#!/bin/bash

# Create build directory
mkdir -p build
cd build

# Run CMake
cmake ..

# If CMake succeeded, try to build
if [ $? -eq 0 ]; then
    echo "CMake configuration successful, attempting to build..."
    cmake --build .
    
    if [ $? -eq 0 ]; then
        echo "Build successful!"
    else
        echo "Build failed."
    fi
else
    echo "CMake configuration failed. Check if ParaView is properly installed."
fi