Files
test2/build_files/build_environment/cmake/fftw.cmake
Thomas Dinges 66224d69b0 Deps: Library changes for Blender 5.0
This commit includes the changes to the build system, updated hashes to the actual new libraries as well as a required test update.

* DPC++ 6.2.0 RC
* freetype 2.13.3
* HIP 6.4.5010
* IGC 2.16.0
* ISPC 1.28.0
* libharu  2.4.5
* libpng 1.6.50
* libvpx 1.15.2
* libxml2 2.14.5
* LLVM 20.1.8
* Manifold 3.2.1
* MaterialX 1.39.3
* OpenColorIO 2.4.2
* openexr 3.3.5
* OpenImageIO 3.0.9.1
* openjpeg 2.5.3
* OpenShadingLanguage 1.14.7.0
* openssl 3.5.2
* Python 3.11.13
* Rubber Band 4.0.0
* ShaderC 2025.3
* sqlite 3.50.4
* USD 25.08
* Wayland 1.24.0

Ref #138940

Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Co-authored-by: Jesse Yurkovich <jesse.y@gmail.com>
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com>
Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Co-authored-by: Kace <lakacey03@gmail.com>
Co-authored-by: Sebastian Parborg <sebastian@blender.org>
Co-authored-by: Anthony Roberts <anthony.roberts@linaro.org>
Co-authored-by: Jonas Holzman <jonas@holzman.fr>

Pull Request: https://projects.blender.org/blender/blender/pulls/144479
2025-10-02 18:34:11 +02:00

94 lines
2.7 KiB
CMake

# SPDX-FileCopyrightText: 2017-2023 Blender Authors
#
# SPDX-License-Identifier: GPL-2.0-or-later
set(FFTW_EXTRA_ARGS)
macro(fftw_build FFTW_POSTFIX)
if(WIN32)
if("${FFTW_POSTFIX}" STREQUAL "float")
set(FFTW_EXTRA_ARGS -DENABLE_FLOAT=ON)
endif()
ExternalProject_Add(external_fftw3_${FFTW_POSTFIX}
URL file://${PACKAGE_DIR}/${FFTW_FILE}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${FFTW_HASH_TYPE}=${FFTW_HASH}
PREFIX ${BUILD_DIR}/fftw3
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/fftw3
-DENABLE_THREADS=ON
-DWITH_COMBINED_THREADS=OFF
-DBUILD_SHARED_LIBS=OFF
-DBUILD_TESTS=OFF
${FFTW_EXTRA_ARGS}
INSTALL_DIR ${LIBDIR}/fftw3
)
else()
set(FFTW_EXTRA_ARGS --enable-static --enable-threads)
set(FFTW_INSTALL install)
ExternalProject_Add(external_fftw3_${FFTW_POSTFIX}
URL file://${PACKAGE_DIR}/${FFTW_FILE}
DOWNLOAD_DIR ${DOWNLOAD_DIR}
URL_HASH ${FFTW_HASH_TYPE}=${FFTW_HASH}
PREFIX ${BUILD_DIR}/fftw3
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
cd ${BUILD_DIR}/fftw3/src/external_fftw3_${FFTW_POSTFIX}/ &&
${CONFIGURE_COMMAND} ${FFTW_EXTRA_ARGS} ${ARGN} --prefix=${mingw_LIBDIR}/fftw3
BUILD_COMMAND ${CONFIGURE_ENV} &&
cd ${BUILD_DIR}/fftw3/src/external_fftw3_${FFTW_POSTFIX}/ &&
make -j${MAKE_THREADS}
INSTALL_COMMAND ${CONFIGURE_ENV} &&
cd ${BUILD_DIR}/fftw3/src/external_fftw3_${FFTW_POSTFIX}/ &&
make ${FFTW_INSTALL}
INSTALL_DIR ${LIBDIR}/fftw3
)
endif()
endmacro()
fftw_build(double)
fftw_build(float --enable-float)
if(WIN32)
if(BUILD_MODE STREQUAL Release)
ExternalProject_Add_Step(external_fftw3_double after_install
COMMAND ${CMAKE_COMMAND} -E copy
${LIBDIR}/fftw3/lib/fftw3.lib
${HARVEST_TARGET}/fftw3/lib/fftw3.lib
COMMAND ${CMAKE_COMMAND} -E copy
${LIBDIR}/fftw3/include/fftw3.h
${HARVEST_TARGET}/fftw3/include/fftw3.h
COMMAND ${CMAKE_COMMAND} -E copy
${LIBDIR}/fftw3/lib/fftw3_threads.lib
${HARVEST_TARGET}/fftw3/lib/fftw3_threads.lib
DEPENDEES install
)
ExternalProject_Add_Step(external_fftw3_float after_install
COMMAND ${CMAKE_COMMAND} -E copy
${LIBDIR}/fftw3/lib/fftw3f.lib
${HARVEST_TARGET}/fftw3/lib/fftw3f.lib
COMMAND ${CMAKE_COMMAND} -E copy
${LIBDIR}/fftw3/lib/fftw3f_threads.lib
${HARVEST_TARGET}/fftw3/lib/fftw3f_threads.lib
DEPENDEES install
)
endif()
endif()
add_custom_target(external_fftw)
add_dependencies(
external_fftw
external_fftw3_double
external_fftw3_float)
if(NOT WIN32)
harvest(external_fftw3 fftw3/include fftw3/include "*.h")
harvest(external_fftw3 fftw3/lib fftw3/lib "*.a")
endif()