PKGNAME=blender
PKGSEC=graphics
PKGDES="Integrated 3D graphics creation suite"
PKGDEP="alembic ceres ffmpeg fftw fmt freetype gcc-runtime gflags glibc \
        glog gmp hicolor-icon-theme imath jemalloc jack libepoxy libharu \
        libjpeg-turbo libpng libsndfile libspnav libwebp libxkbcommon \
        manifold materialx numpy openal-soft opencolorio openexr openimageio \
        openjpeg openshadinglanguage opensubdiv openvdb pipewire potrace \
        pugixml pulseaudio python-3 requests shaderc tbb vulkan-loader \
        x11-lib zlib zstd zstandard"
BUILDDEP="bullet draco eigen git-lfs"

# Special architecture configuration
#
# openpgl:                  amd64
# sse2neon:                 arm64
# openimagedenoise:         amd64, arm64
# cuda:                     amd64, arm64
# embree:                   amd64, arm64, loongarch64
# intel-compute-runtime:    amd64, arm64, loongarch64
# rocm-clr:                 amd64, arm64, loongarch64, riscv64
# hiprt:                    amd64, arm64, loongarch64, riscv64

# FIXME: Blender does not support HIPRT 3 yet, and HIPRT 2 is incompatible with HIP 7.
# https://projects.blender.org/blender/blender/pulls/144889#issuecomment-1753388
PKGDEP__AMD64="${PKGDEP} openpgl openimagedenoise embree"
PKGDEP__ARM64="${PKGDEP} openimagedenoise embree"
PKGDEP__LOONGARCH64="${PKGDEP} embree"

PKGSUG__AMD64="${PKGDEP} cuda intel-compute-runtime rocm-clr"
PKGSUG__ARM64="${PKGDEP} cuda intel-compute-runtime rocm-clr"
PKGSUG__LOONGARCH64="${PKGDEP} intel-compute-runtime rocm-clr"
PKGSUG__RISCV64="${PKGDEP} rocm-clr"

BUILDDEP__AMD64="${BUILDDEP} cuda intel-compute-runtime rocm-clr"
BUILDDEP__ARM64="${BUILDDEP} sse2neon cuda intel-compute-runtime rocm-clr"
BUILDDEP__LOONGARCH64="${BUILDDEP} intel-compute-runtime rocm-clr"
BUILDDEP__RISCV64="${BUILDDEP} rocm-clr"

# Note: View build_files/cmake/config/blender_full.cmake to adjust the options.
CMAKE_AFTER=(
    "-C$SRCDIR/build_files/cmake/config/blender_full.cmake"
    "-DPYTHON_VERSION=${ABPY3VER}"
    '-DWITH_CYCLES_EMBREE=OFF'
    '-DWITH_INSTALL_PORTABLE=OFF'
    '-DWITH_LIBS_PRECOMPILED=OFF'
    '-DWITH_LINKER_LLD=OFF'
    '-DWITH_PYTHON_INSTALL=OFF'
    '-DWITH_USD=OFF'
    '-DWITH_HYDRA=OFF'
    '-DWITH_XR_OPENXR=OFF'
    '-DWITH_UI_TESTS=OFF'
    '-DWITH_UI_TESTS_HEADLESS=OFF'
    '-DWITH_SYSTEM_GFLAGS=ON'
    '-DWITH_SYSTEM_GLOG=ON'
)
CMAKE_AFTER__EMBREE=(
    '-DWITH_CYCLES_EMBREE=ON'
)
CMAKE_AFTER__CUDA=(
    '-DWITH_CYCLES_DEVICE_CUDA=ON'
    '-DWITH_CYCLES_CUDA_BINARIES=ON'
    '-DCYCLES_CUDA_BINARIES_ARCH=sm_80;sm_86;sm_87;sm_89;sm_120;compute_75'
)
CMAKE_AFTER__ONEAPI=(
    '-DWITH_CYCLES_DEVICE_ONEAPI=ON'
    '-DWITH_CYCLES_ONEAPI_BINARIES=ON'
)
CMAKE_AFTER__HIP=(
    '-DHIP_ROOT_DIR=/usr/lib/rocm'
    '-DWITH_CYCLES_DEVICE_HIP=ON'
    '-DWITH_CYCLES_HIP_BINARIES=ON'
    '-DWITH_CYCLES_DEVICE_HIPRT=OFF'
)
CMAKE_AFTER__AMD64=(
    "${CMAKE_AFTER[@]}"
    "${CMAKE_AFTER__EMBREE[@]}"
    "${CMAKE_AFTER__CUDA[@]}"
    "${CMAKE_AFTER__ONEAPI[@]}"
    "${CMAKE_AFTER__HIP[@]}"
)
CMAKE_AFTER__ARM64=(
    "${CMAKE_AFTER[@]}"
    "${CMAKE_AFTER__EMBREE[@]}"
    "${CMAKE_AFTER__CUDA[@]}"
    "${CMAKE_AFTER__ONEAPI[@]}"
    "${CMAKE_AFTER__HIP[@]}"
)
CMAKE_AFTER__LOONGARCH64=(
    "${CMAKE_AFTER[@]}"
    "${CMAKE_AFTER__EMBREE[@]}"
    "${CMAKE_AFTER__ONEAPI[@]}"
    "${CMAKE_AFTER__HIP[@]}"
)
CMAKE_AFTER__RISCV64=(
    "${CMAKE_AFTER[@]}"
    "${CMAKE_AFTER__HIP[@]}"
)

ABTYPE=cmakeninja
AB_FLAGS_O3=1

# FIXME: Not enough RAM on any of our MIPS builders.
NOLTO__LOONGSON3=1
