Skip to content

Build VTK with TBB #11

@akaszynski

Description

@akaszynski

This is mostly how to build TBB compatible wheels on manylinux2024:

#!/usr/bin/env bash
set -e

mkdir -p build
cd build

yum install -y ninja-build cmake wget

# could also try https://github.com/uxlfoundation/oneTBB/releases/v2021.1.1
wget https://github.com/uxlfoundation/oneTBB/releases/download/v2020.3/tbb-2020.3-lin.tgz
tar xf tbb-2020.3-lin.tgz -C /opt

# fairly sure that LD_LIBRARY_PATH lets auditwheel find tbb, but you might be able to get away without it
export TBB_ROOT=/opt/tbb
export LD_LIBRARY_PATH=/opt/tbb/lib/intel64/gcc4.8:$LD_LIBRARY_PATH

get_python_bin() {
  local version="$1"
  echo "/opt/python/cp${version//.}-cp${version//.}/bin/python"
}

PYBIN=$(get_python_bin "3.12")

cmake -GNinja \
      -DVTK_SMP_IMPLEMENTATION_TYPE=TBB \
      -DCMAKE_PREFIX_PATH=/opt/tbb \
      -DCMAKE_BUILD_TYPE=Release \
      -DVTK_BUILD_TESTING=OFF \
      -DVTK_BUILD_DOCUMENTATION=OFF \
      -DVTK_BUILD_EXAMPLES=OFF \
      -DVTK_MODULE_ENABLE_VTK_PythonInterpreter:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_WebCore:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_WebGLExporter:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_WebPython:STRING=NO \
      -DVTK_WHEEL_BUILD=ON \
      -DVTK_MODULE_ENABLE_VTK_CommonArchive:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_DomainsMicroscopy:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_FiltersONNX:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_FiltersOpenTURNS:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_FiltersReebGraph:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOADIOS2:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOAlembic:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOFFMPEG:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOGDAL:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOLAS:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOMySQL:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOODBC:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOOpenVDB:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOPDAL:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOPostgreSQL:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_InfovisBoost:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_InfovisBoostGraphAlgorithms:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_RenderingFreeTypeFontConfig:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_RenderingOpenVR:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_RenderingOpenXR:STRING=NO \
      -DVTK_USE_PCH:BOOL=OFF \
      -DVTK_ENABLE_REMOTE_MODULES:BOOL=OFF \
      -DVTK_USE_PCH:BOOL=OFF \
      -DVTK_MODULE_ENABLE_VTK_RenderingRayTracing:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_RenderingZSpace:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_RenderingMatplotlib:STRING=YES \
      -DVTK_MODULE_ENABLE_VTK_fides:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_xdmf3:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOOCCT:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOUSD:STRING=NO \
      -DVTK_MODULE_ENABLE_VTK_IOEnSight:STRING=NO \
      -DVTK_ENABLE_CATALYST:BOOL=OFF \
      -DPython3_EXECUTABLE=$PYBIN ../

ninja-build


# build wheel in dist
$PYBIN -m pip install wheel setuptools

auditwheel repair dist/*.whl

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions