Add Chromium-only Blender WebEngine parity work
This commit is contained in:
196
blender-5.2.0/build_files/build_environment/CMakeLists.txt
Normal file
196
blender-5.2.0/build_files/build_environment/CMakeLists.txt
Normal file
@@ -0,0 +1,196 @@
|
||||
# SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
##################################################################################################
|
||||
#
|
||||
# This is a build system used by platform maintainers to build library dependencies.
|
||||
# For users building Blender, we recommend using the pre-compiled libraries from `lib/`
|
||||
# on all platforms.
|
||||
#
|
||||
# This CMake project is usually built through wrappers:
|
||||
# * Windows: `build_files/build_environment/windows/build_deps.cmd`.
|
||||
# * macOS and Linux: `make deps` from the blender directory.
|
||||
#
|
||||
##################################################################################################
|
||||
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project("BlenderDependencies")
|
||||
if(POLICY CMP0135)
|
||||
cmake_policy(SET CMP0135 NEW) # CMake 3.24+ Set the date/time for extracted files to time of extraction
|
||||
endif()
|
||||
include(ExternalProject)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake/Modules")
|
||||
|
||||
include(cmake/check_software.cmake)
|
||||
include(cmake/options.cmake)
|
||||
# `versions.cmake` needs to be included after `options.cmake`
|
||||
# due to the `BLENDER_PLATFORM_ARM` variable being needed.
|
||||
include(cmake/versions.cmake)
|
||||
include(cmake/download.cmake)
|
||||
include(cmake/macros.cmake)
|
||||
# `setup_msys2.cmake` to install `perl`,
|
||||
# which HIP needs to function for the compiler detection to work properly,
|
||||
# hence needs to be included before `check_compilers.cmake`.
|
||||
if(ENABLE_MSYS2)
|
||||
include(cmake/setup_msys2.cmake)
|
||||
else()
|
||||
set(mingw_LIBDIR ${LIBDIR})
|
||||
endif()
|
||||
include(cmake/check_compilers.cmake)
|
||||
include(cmake/harvest.cmake)
|
||||
|
||||
include(cmake/ssl.cmake)
|
||||
include(cmake/zlib.cmake)
|
||||
include(cmake/zstd.cmake)
|
||||
include(cmake/openal.cmake)
|
||||
include(cmake/png.cmake)
|
||||
include(cmake/jpeg.cmake)
|
||||
include(cmake/blosc.cmake)
|
||||
include(cmake/pthreads.cmake)
|
||||
include(cmake/deflate.cmake)
|
||||
include(cmake/imath.cmake)
|
||||
include(cmake/openexr.cmake)
|
||||
include(cmake/brotli.cmake)
|
||||
include(cmake/freetype.cmake)
|
||||
include(cmake/epoxy.cmake)
|
||||
include(cmake/alembic.cmake)
|
||||
include(cmake/opensubdiv.cmake)
|
||||
include(cmake/sdl.cmake)
|
||||
if(UNIX)
|
||||
include(cmake/nasm.cmake)
|
||||
endif()
|
||||
include(cmake/tiff.cmake)
|
||||
if(WIN32)
|
||||
include(cmake/flexbison.cmake)
|
||||
elseif(UNIX AND NOT APPLE)
|
||||
include(cmake/flex.cmake)
|
||||
endif()
|
||||
include(cmake/tbb.cmake)
|
||||
include(cmake/python.cmake)
|
||||
include(cmake/llvm.cmake)
|
||||
include(cmake/osl.cmake)
|
||||
include(cmake/cython.cmake)
|
||||
include(cmake/numpy.cmake)
|
||||
include(cmake/zstandard.cmake)
|
||||
include(cmake/python_site_packages.cmake)
|
||||
include(cmake/package_python.cmake)
|
||||
include(cmake/openimageio.cmake)
|
||||
include(cmake/usd.cmake)
|
||||
include(cmake/materialx.cmake)
|
||||
include(cmake/openvdb.cmake)
|
||||
include(cmake/potrace.cmake)
|
||||
include(cmake/haru.cmake)
|
||||
include(cmake/pugixml.cmake)
|
||||
include(cmake/fribidi.cmake)
|
||||
include(cmake/harfbuzz.cmake)
|
||||
include(cmake/xr_openxr.cmake)
|
||||
if(NOT APPLE)
|
||||
if(NOT BLENDER_PLATFORM_ARM)
|
||||
include(cmake/hiprt.cmake)
|
||||
include(cmake/dpcpp.cmake)
|
||||
include(cmake/dpcpp_deps.cmake)
|
||||
include(cmake/emhash.cmake)
|
||||
include(cmake/parallelhashmap.cmake)
|
||||
if(NOT WIN32)
|
||||
include(cmake/igc.cmake)
|
||||
include(cmake/gmmlib.cmake)
|
||||
include(cmake/ocloc.cmake)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
include(cmake/ispc.cmake)
|
||||
include(cmake/openpgl.cmake)
|
||||
# EMBREE needs to be included after `dpcpp` as it uses it for compiling with GPU support
|
||||
if(BLENDER_PLATFORM_WINDOWS_ARM)
|
||||
# WoA needs EMBREE to be built with the VS Generator + LLVM,
|
||||
# put it in its own file to avoid clutter.
|
||||
include(cmake/embree_windows_arm.cmake)
|
||||
else()
|
||||
include(cmake/embree.cmake)
|
||||
endif()
|
||||
include(cmake/fmt.cmake)
|
||||
include(cmake/robinmap.cmake)
|
||||
include(cmake/xml2.cmake)
|
||||
# OpenColorIO and dependencies.
|
||||
include(cmake/expat.cmake)
|
||||
include(cmake/pystring.cmake)
|
||||
include(cmake/yamlcpp.cmake)
|
||||
include(cmake/minizipng.cmake)
|
||||
include(cmake/opencolorio.cmake)
|
||||
include(cmake/openjph.cmake)
|
||||
include(cmake/thorvg.cmake)
|
||||
include(cmake/libheif.cmake)
|
||||
include(cmake/ffi.cmake)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
include(cmake/sse2neon.cmake)
|
||||
endif()
|
||||
|
||||
include(cmake/webp.cmake)
|
||||
if(NOT APPLE)
|
||||
include(cmake/level-zero.cmake)
|
||||
endif()
|
||||
|
||||
if(NOT WIN32 OR ENABLE_MSYS2)
|
||||
include(cmake/gmp.cmake)
|
||||
include(cmake/openjpeg.cmake)
|
||||
include(cmake/sqlite.cmake)
|
||||
include(cmake/fftw.cmake)
|
||||
include(cmake/aom.cmake)
|
||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||
include(cmake/openimagedenoise.cmake)
|
||||
include(cmake/lame.cmake)
|
||||
include(cmake/ogg.cmake)
|
||||
include(cmake/vorbis.cmake)
|
||||
include(cmake/theora.cmake)
|
||||
include(cmake/opus.cmake)
|
||||
include(cmake/vpx.cmake)
|
||||
include(cmake/x264.cmake)
|
||||
include(cmake/x265.cmake)
|
||||
include(cmake/ffmpeg.cmake)
|
||||
include(cmake/flac.cmake)
|
||||
include(cmake/sndfile.cmake)
|
||||
if(UNIX)
|
||||
if(NOT APPLE)
|
||||
include(cmake/spnav.cmake)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
include(cmake/bzip2.cmake)
|
||||
include(cmake/lzma.cmake)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
include(cmake/wayland_protocols.cmake)
|
||||
# Can be removed when the build-bot upgrades to v1.20.x or newer.
|
||||
include(cmake/wayland.cmake)
|
||||
include(cmake/wayland_weston.cmake)
|
||||
endif()
|
||||
include(cmake/shaderc_deps.cmake)
|
||||
include(cmake/shaderc.cmake)
|
||||
include(cmake/vulkan.cmake)
|
||||
include(cmake/vulkan-memory-allocator.cmake)
|
||||
include(cmake/spirv-reflect.cmake)
|
||||
include(cmake/pybind11.cmake)
|
||||
include(cmake/nanobind.cmake)
|
||||
include(cmake/manifold.cmake)
|
||||
include(cmake/rubberband.cmake)
|
||||
include(cmake/abseil.cmake)
|
||||
include(cmake/eigen.cmake)
|
||||
include(cmake/ceres.cmake)
|
||||
include(cmake/draco.cmake)
|
||||
include(cmake/meshoptimizer.cmake)
|
||||
include(cmake/tracy.cmake)
|
||||
# Keep these last.
|
||||
include(cmake/deps_md.cmake)
|
||||
include(cmake/cve_check.cmake)
|
||||
|
||||
if(UNIX)
|
||||
# Strip all installed libraries.
|
||||
harvest_strip_all_libraries()
|
||||
endif()
|
||||
478
blender-5.2.0/build_files/build_environment/Harvest/deps.md
Normal file
478
blender-5.2.0/build_files/build_environment/Harvest/deps.md
Normal file
@@ -0,0 +1,478 @@
|
||||
# Blender Library Dependencies
|
||||
|
||||
This file contains a table with all the libraries Blender uses to build its library dependencies.
|
||||
Some of the libraries might not be shipped in the library directory as some of them are only used at build time.
|
||||
|
||||
NOTE: Some libraries listed here might not be relevant for your platform.
|
||||
|
||||
## Library List
|
||||
|
||||
| Library Name | Version | Homepage |
|
||||
|--------------|---------|----------|
|
||||
| `ABSEIL` | `20250814.1` | <https://abseil.io/> |
|
||||
| `ALEMBIC` | `1.8.3` | <https://www.alembic.io/> |
|
||||
| `AOM` | `3.13.1` | <https://aomedia.googlesource.com/aom/> |
|
||||
| `BLOSC` | `1.21.1` | <https://www.blosc.org/> |
|
||||
| `BROTLI` | `1.0.9` | <https://github.com/google/brotli> |
|
||||
| `BZIP2` | `1.0.8` | <https://sourceware.org/bzip2/> |
|
||||
| `CERES` | `0c70ed3a1a2d6ba47c06c7e8b3b040880bc474db` | <http://ceres-solver.org/> |
|
||||
| `CYTHON` | `3.0.11` | <https://cython.org/> |
|
||||
| `DEFLATE` | `1.18` | <https://github.com/ebiggers/libdeflate> |
|
||||
| `DPCPP_SPIRV_HEADERS` | `c9aad99f9276817f18f72a4696239237c83cb775` | <https://github.com/KhronosGroup/SPIRV-Headers> |
|
||||
| `DPCPP` | `v6.3.0` | <https://github.com/intel/llvm#oneapi-dpc-compiler> |
|
||||
| `DRACO` | `1.5.7` | <https://google.github.io/draco/> |
|
||||
| `EIGEN` | `8a1083e9bf41b91fdea6546681f806154efdc25a` | <http://eigen.tuxfamily.org> |
|
||||
| `EMBREE` | `4.4.1` | <https://github.com/RenderKit/embree> |
|
||||
| `EMHASH` | `3ba9abdfdc2e0430fcc2fd8993cad31945b6a02b` | <https://github.com/ktprime/emhash> |
|
||||
| `EPOXY` | `1.5.10` | <https://github.com/anholt/libepoxy> |
|
||||
| `EXPAT` | `2_7_5` | <https://github.com/libexpat/libexpat/> |
|
||||
| `FFI` | `3.5.2` | <https://github.com/libffi/libffi/> |
|
||||
| `FFMPEG` | `8.1` | <https://ffmpeg.org/> |
|
||||
| `FFTW` | `3.3.10` | <https://www.fftw.org/> |
|
||||
| `FLAC` | `1.4.2` | <https://xiph.org/flac/> |
|
||||
| `FLEXBISON` | `2.5.24` | <https://github.com/lexxmark/winflexbison> |
|
||||
| `FLEX` | `2.6.4` | <https://www.github.com/westes/flex> |
|
||||
| `FMT` | `12.1.0` | <https://github.com/fmtlib/fmt> |
|
||||
| `FREETYPE` | `2.13.3` | <https://freetype.org/> |
|
||||
| `FRIBIDI` | `v1.0.12` | <https://github.com/fribidi/fribidi> |
|
||||
| `GMMLIB` | `intel-gmmlib-22.8.1` | <https://github.com/intel/gmmlib> |
|
||||
| `GMP` | `6.3.0` | <https://gmplib.org/> |
|
||||
| `HARFBUZZ` | `10.0.1` | <https://github.com/harfbuzz/harfbuzz> |
|
||||
| `HARU` | `2.4.5` | <http://libharu.org/> |
|
||||
| `HIPRT` | `606b4886efabce918dd0634ef71c06615a47c83b` | <https://github.com/GPUOpen-LibrariesAndSDKs/HIPRT> |
|
||||
| `ICDLOADER` | `ddf6c70230a79cdb8fcccfd3c775b09e6820f42e` | <https://github.com/KhronosGroup/OpenCL-ICD-Loader> |
|
||||
| `ICONV` | `1.16` | <https://www.gnu.org/software/libiconv/> |
|
||||
| `IGC_LLVM` | `llvmorg-16.0.6` | <https://github.com/llvm/llvm-project/> |
|
||||
| `IGC_OPENCL_CLANG` | `v16.0.10` | <https://github.com/intel/opencl-clang/> |
|
||||
| `IGC_SPIRV_HEADERS` | `9268f3057354a2cb65991ba5f38b16d81e803692` | <https://github.com/KhronosGroup/SPIRV-Headers> |
|
||||
| `IGC_SPIRV_TOOLS` | `28a883ba4c67f58a9540fb0651c647bb02883622` | <https://github.com/KhronosGroup/SPIRV-Tools/> |
|
||||
| `IGC_SPIRV_TRANSLATOR` | `v16.0.10` | <https://github.com/KhronosGroup/SPIRV-LLVM-Translator> |
|
||||
| `IGC` | `2.30.1` | <https://github.com/intel/intel-graphics-compiler> |
|
||||
| `IGC_VCINTRINSICS` | `0.25.0` | <https://github.com/intel/vc-intrinsics> |
|
||||
| `IMATH` | `3.2.2` | <https://github.com/AcademySoftwareFoundation/Imath> |
|
||||
| `ISPC` | `v1.30.0` | <https://www.github.com/ispc/ispc> |
|
||||
| `JPEG` | `2.1.3` | <https://github.com/libjpeg-turbo/libjpeg-turbo/> |
|
||||
| `LAME` | `3.100` | <https://lame.sourceforge.io/> |
|
||||
| `LEVEL_ZERO` | `35c037cdf4aa9a2e6df34b6f1ce1bdc86ac5422f` | <https://github.com/oneapi-src/level-zero> |
|
||||
| `LIBHEIF` | `1.20.2` | <https://github.com/strukturag/libheif> |
|
||||
| `LLVM` | `20.1.8` | <https://github.com/llvm/llvm-project/> |
|
||||
| `LZMA` | `5.2.5` | <https://tukaani.org/lzma/> |
|
||||
| `MANIFOLD` | `v3.5.2` | <https://github.com/elalish/manifold> |
|
||||
| `MATERIALX` | `1.39.4` | <https://github.com/AcademySoftwareFoundation/MaterialX> |
|
||||
| `MESHOPTIMIZER` | `1.1` | <https://meshoptimizer.org> |
|
||||
| `MINIZIPNG` | `4.0.10` | <https://github.com/zlib-ng/minizip-ng> |
|
||||
| `NANOBIND` | `v2.1.0` | <https://github.com/wjakob/nanobind> |
|
||||
| `NASM` | `2.15.02` | <https://www.github.com/netwide-assembler/nasm> |
|
||||
| `NUMPY` | `2.3.4` | <https://numpy.org/> |
|
||||
| `OCLOC` | `25.31.34666.3` | <https://github.com/intel/compute-runtime> |
|
||||
| `OGG` | `1.3.5` | <https://xiph.org/ogg/> |
|
||||
| `OIDN` | `2.5.0` | <https://www.openimagedenoise.org/> |
|
||||
| `OPENAL` | `1.23.1` | <https://openal-soft.org/> |
|
||||
| `OPENCLHEADERS` | `6eabe90aa7b6cff9c67800a2fe25a0cd88d8b749` | <https://github.com/KhronosGroup/OpenCL-Headers> |
|
||||
| `OPENCOLORIO` | `2.5.0` | <https://github.com/AcademySoftwareFoundation/OpenColorIO> |
|
||||
| `OPENEXR` | `3.4.10` | <https://github.com/AcademySoftwareFoundation/openexr> |
|
||||
| `OPENIMAGEIO` | `v3.1.13.1` | <https://github.com/AcademySoftwareFoundation/OpenImageIO> |
|
||||
| `OPENJPEG` | `2.5.3` | <https://github.com/uclouvain/openjpeg> |
|
||||
| `OPENJPH` | `0.25.2` | <https://github.com/aous72/OpenJPH> |
|
||||
| `OPENPGL` | `v0.7.1` | <http://www.openpgl.org/> |
|
||||
| `OPENSUBDIV` | `v3_7_0` | <https://graphics.pixar.com/opensubdiv/docs/intro.html> |
|
||||
| `OPENVDB` | `13.0.0` | <http://www.openvdb.org/> |
|
||||
| `OPUS` | `1.3.1` | <https://opus-codec.org/> |
|
||||
| `OSL` | `1.15.3.0` | <https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/> |
|
||||
| `PARALLEL_HASHMAP` | `8a889d3699b3c09ade435641fb034427f3fd12b6` | <https://github.com/greg7mdp/parallel-hashmap> |
|
||||
| `PNG` | `1.6.58` | <http://www.libpng.org/pub/png/libpng.html> |
|
||||
| `POTRACE` | `1.16` | <https://potrace.sourceforge.net/> |
|
||||
| `PTHREADS` | `3.0.0` | <https://github.com/fwbuilder/pthreads4w> |
|
||||
| `PUGIXML` | `1.10` | <https://pugixml.org/> |
|
||||
| `PYBIND11` | `3.0.1` | <https://github.com/pybind/pybind11> |
|
||||
| `PYSTRING` | `v1.1.3` | <https://github.com/imageworks/pystring> |
|
||||
| `PYTHON` | `3.13.13` | <https://www.python.org/> |
|
||||
| `ROBINMAP` | `v1.3.0` | <https://github.com/Tessil/robin-map> |
|
||||
| `RUBBERBAND` | `4.0.0` | <https://breakfastquay.com/rubberband/> |
|
||||
| `SDL` | `3.4.2` | <https://www.libsdl.org> |
|
||||
| `SHADERC_GLSLANG` | `d213562e35573012b6348b2d584457c3704ac09b` | <https://github.com/KhronosGroup/glslang> |
|
||||
| `SHADERC` | `v2025.4` | <https://github.com/google/shaderc> |
|
||||
| `SNDFILE` | `1.2.2` | <http://libsndfile.github.io/libsndfile/> |
|
||||
| `SPIRV_HEADERS` | `1.4.341` | <https://github.com/KhronosGroup/SPIRV-Headers/> |
|
||||
| `SPIRV_REFLECT` | `1.4.341` | <https://github.com/KhronosGroup/SPIRV-Reflect> |
|
||||
| `SPIRV_TOOLS` | `v2026.1` | <https://github.com/KhronosGroup/SPIRV-Tools/> |
|
||||
| `SPNAV` | `1.1` | <https://github.com/FreeSpacenav/libspnav> |
|
||||
| `SQLITE` | `3.51.3` | <https://www.sqlite.org> |
|
||||
| `SSE2NEON` | `227cc413fb2d50b2a10073087be96b59d5364aea` | <https://github.com/DLTcollab/sse2neon> |
|
||||
| `SSL` | `3.5.6` | <https://www.openssl.org> |
|
||||
| `TBB` | `v2022.3.0` | <https://software.intel.com/en-us/oneapi/onetbb> |
|
||||
| `THEORA` | `1.1.1` | <https://xiph.org/theora/> |
|
||||
| `THORVG` | `v1.0.3` | <https://www.thorvg.org/> |
|
||||
| `TIFF` | `4.7.1` | <http://www.simplesystems.org/libtiff/> |
|
||||
| `TRACY` | `a64b9a20294d59421a2f57aeca3c6383d8c48169` | <https://github.com/wolfpld/tracy> |
|
||||
| `UNIFIED_MEMORY_FRAMEWORK` | `v1.0.0-rc2` | <https://github.com/oneapi-src/unified-memory-framework> |
|
||||
| `USD` | `26.03` | <https://openusd.org/> |
|
||||
| `VCINTRINSICS` | `60cea7590bd022d95f5cf336ee765033bd114d69` | <https://github.com/intel/vc-intrinsics> |
|
||||
| `VORBIS` | `1.3.7` | <https://xiph.org/vorbis/> |
|
||||
| `VPX` | `1.15.2` | <https://github.com/webmproject/libvpx> |
|
||||
| `VULKAN_HEADERS` | `1.4.341` | <https://github.com/KhronosGroup/Vulkan-Headers> |
|
||||
| `VULKAN_LOADER` | `1.4.341` | <https://github.com/KhronosGroup/Vulkan-Loader> |
|
||||
| `VULKAN_MEMORY_ALLOCATOR` | `3.2.1` | <https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator> |
|
||||
| `VULKAN_UTILITY_LIBRARIES` | `1.4.341` | <https://github.com/KhronosGroup/Vulkan-Utility-Libraries> |
|
||||
| `WAYLAND` | `1.24.0` | <https://gitlab.freedesktop.org/wayland/wayland> |
|
||||
| `WAYLAND_WESTON` | `14.0.2` | <https://gitlab.freedesktop.org/wayland/weston> |
|
||||
| `WEBP` | `1.6.0` | <https://developers.google.com/speed/webp> |
|
||||
| `WL_PROTOCOLS` | `1.44` | <https://gitlab.freedesktop.org/wayland/wayland-protocols> |
|
||||
| `X264` | `35fe20d1ba49918ec739a5b068c208ca82f977f7` | <https://www.videolan.org/developers/x264.html> |
|
||||
| `X265` | `4.1` | <https://www.videolan.org/developers/x265.html> |
|
||||
| `XML2` | `2.14.6` | <https://gitlab.gnome.org/GNOME/libxml2> |
|
||||
| `XR_OPENXR_SDK` | `1.1.53` | <https://khronos.org/openxr/> |
|
||||
| `YAMLCPP` | `0.8.0` | <https://www.github.com/jbeder/yaml-cpp> |
|
||||
| `ZLIB` | `1.3.1` | <https://zlib.net> |
|
||||
| `ZSTANDARD` | `0.25.0` | <https://github.com/indygreg/python-zstandard/> |
|
||||
| `ZSTD` | `1.5.7` | <https://github.com/facebook/zstd> |
|
||||
|
||||
|
||||
## Basic Dependency Lists
|
||||
|
||||
These are auto generated basic dependency lists for each library.
|
||||
|
||||
```
|
||||
└── png
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── openexr
|
||||
├── deflate
|
||||
├── imath
|
||||
└── openjph
|
||||
```
|
||||
```
|
||||
└── freetype
|
||||
├── brotli
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── epoxy
|
||||
└── python_site_packages
|
||||
```
|
||||
```
|
||||
└── alembic
|
||||
└── imath
|
||||
```
|
||||
```
|
||||
└── opensubdiv
|
||||
└── tbb
|
||||
```
|
||||
```
|
||||
└── tiff
|
||||
├── jpeg
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── python
|
||||
├── bzip2
|
||||
├── ffi
|
||||
├── lzma
|
||||
├── sqlite
|
||||
├── ssl
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── llvm
|
||||
├── python
|
||||
└── xml2
|
||||
```
|
||||
```
|
||||
└── osl
|
||||
├── flex
|
||||
├── llvm
|
||||
├── openexr
|
||||
├── openimageio
|
||||
├── pugixml
|
||||
├── pybind11
|
||||
├── python
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── cython
|
||||
├── python
|
||||
└── python_site_packages
|
||||
```
|
||||
```
|
||||
└── numpy
|
||||
├── cython
|
||||
├── python
|
||||
└── python_site_packages
|
||||
```
|
||||
```
|
||||
└── zstandard
|
||||
├── python
|
||||
└── zstd
|
||||
```
|
||||
```
|
||||
└── python_site_packages
|
||||
└── python
|
||||
```
|
||||
```
|
||||
└── openimageio
|
||||
├── fmt
|
||||
├── imath
|
||||
├── jpeg
|
||||
├── libheif
|
||||
├── opencolorio
|
||||
├── openexr
|
||||
├── openjpeg
|
||||
├── png
|
||||
├── pugixml
|
||||
├── pybind11
|
||||
├── python
|
||||
├── robinmap
|
||||
├── tbb
|
||||
├── tiff
|
||||
├── webp
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── usd
|
||||
├── materialx
|
||||
├── openimageio
|
||||
├── opensubdiv
|
||||
├── openvdb
|
||||
├── python
|
||||
├── shaderc
|
||||
├── spirv_reflect
|
||||
├── tbb
|
||||
├── vulkan_headers
|
||||
├── vulkan_loader
|
||||
├── vulkan_memory_allocator
|
||||
└── vulkan_utility_libraries
|
||||
```
|
||||
```
|
||||
└── materialx
|
||||
├── pybind11
|
||||
└── python
|
||||
```
|
||||
```
|
||||
└── openvdb
|
||||
├── blosc
|
||||
├── tbb
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── fribidi
|
||||
├── python
|
||||
└── python_site_packages
|
||||
```
|
||||
```
|
||||
└── harfbuzz
|
||||
├── freetype
|
||||
├── python
|
||||
└── python_site_packages
|
||||
```
|
||||
```
|
||||
└── dpcpp
|
||||
├── dpcpp_spirvheaders
|
||||
├── emhash
|
||||
├── icdloader
|
||||
├── level-zero
|
||||
├── openclheaders
|
||||
├── parallelhashmap
|
||||
├── python
|
||||
├── python_site_packages
|
||||
├── unifiedmemoryframework
|
||||
├── vcintrinsics
|
||||
└── zstd
|
||||
```
|
||||
```
|
||||
└── igc_llvm
|
||||
└── igc_opencl_clang
|
||||
```
|
||||
```
|
||||
└── igc_spirv_translator
|
||||
└── igc_opencl_clang
|
||||
```
|
||||
```
|
||||
└── igc
|
||||
├── flex
|
||||
├── igc_llvm
|
||||
├── igc_opencl_clang
|
||||
├── igc_spirv_headers
|
||||
├── igc_spirv_tools
|
||||
├── igc_spirv_translator
|
||||
└── igc_vcintrinsics
|
||||
```
|
||||
```
|
||||
└── ocloc
|
||||
├── gmmlib
|
||||
└── igc
|
||||
```
|
||||
```
|
||||
└── ispc
|
||||
├── flex
|
||||
├── llvm
|
||||
└── python
|
||||
```
|
||||
```
|
||||
└── openpgl
|
||||
└── tbb
|
||||
```
|
||||
```
|
||||
└── embree
|
||||
├── dpcpp
|
||||
└── tbb
|
||||
```
|
||||
```
|
||||
└── minizipng
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── opencolorio
|
||||
├── expat
|
||||
├── imath
|
||||
├── minizipng
|
||||
├── pybind11
|
||||
├── pystring
|
||||
├── python
|
||||
├── yamlcpp
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── thorvg
|
||||
├── python
|
||||
└── python_site_packages
|
||||
```
|
||||
```
|
||||
└── libheif
|
||||
└── aom
|
||||
```
|
||||
```
|
||||
└── fftw
|
||||
├── fftw3_double
|
||||
└── fftw3_float
|
||||
```
|
||||
```
|
||||
└── openimagedenoise
|
||||
├── dpcpp
|
||||
├── ispc
|
||||
├── level-zero
|
||||
├── ocloc
|
||||
├── python
|
||||
└── tbb
|
||||
```
|
||||
```
|
||||
└── vorbis
|
||||
└── ogg
|
||||
```
|
||||
```
|
||||
└── theora
|
||||
├── ogg
|
||||
└── vorbis
|
||||
```
|
||||
```
|
||||
└── x264
|
||||
└── nasm
|
||||
```
|
||||
```
|
||||
└── x265
|
||||
├── x265_10
|
||||
└── x265_12
|
||||
```
|
||||
```
|
||||
└── ffmpeg
|
||||
├── aom
|
||||
├── flac
|
||||
├── lame
|
||||
├── nasm
|
||||
├── ogg
|
||||
├── openjpeg
|
||||
├── opus
|
||||
├── sndfile
|
||||
├── theora
|
||||
├── vorbis
|
||||
├── vpx
|
||||
├── x264
|
||||
├── x265
|
||||
└── zlib
|
||||
```
|
||||
```
|
||||
└── sndfile
|
||||
├── flac
|
||||
├── lame
|
||||
├── ogg
|
||||
├── opus
|
||||
└── vorbis
|
||||
```
|
||||
```
|
||||
└── wayland_protocols
|
||||
├── python_site_packages
|
||||
└── wayland
|
||||
```
|
||||
```
|
||||
└── wayland
|
||||
├── expat
|
||||
├── ffi
|
||||
├── python_site_packages
|
||||
└── xml2
|
||||
```
|
||||
```
|
||||
└── wayland_weston
|
||||
├── python_site_packages
|
||||
├── wayland
|
||||
└── wayland_protocols
|
||||
```
|
||||
```
|
||||
└── shaderc
|
||||
├── python
|
||||
├── shaderc_glslang
|
||||
├── spirv_headers
|
||||
└── spirv_tools
|
||||
```
|
||||
```
|
||||
└── vulkan_utility_libraries
|
||||
└── vulkan_headers
|
||||
```
|
||||
```
|
||||
└── spirv_tools
|
||||
└── spirv_headers
|
||||
```
|
||||
```
|
||||
└── vulkan_loader
|
||||
├── vulkan_headers
|
||||
└── wayland
|
||||
```
|
||||
```
|
||||
└── spirv_reflect
|
||||
└── spirv_headers
|
||||
```
|
||||
```
|
||||
└── pybind11
|
||||
└── python
|
||||
```
|
||||
```
|
||||
└── nanobind
|
||||
└── robinmap
|
||||
```
|
||||
```
|
||||
└── manifold
|
||||
└── tbb
|
||||
```
|
||||
```
|
||||
└── rubberband
|
||||
├── fftw
|
||||
└── python_site_packages
|
||||
```
|
||||
```
|
||||
└── ceres
|
||||
├── abseil
|
||||
└── eigen
|
||||
```
|
||||
Libraries without any dependencies and not used by any other library:
|
||||
```
|
||||
openal
|
||||
sdl
|
||||
potrace
|
||||
haru
|
||||
xr_openxr_sdk
|
||||
gmp
|
||||
spnav
|
||||
draco
|
||||
meshoptimizer
|
||||
tracy
|
||||
```
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(ABSEIL_EXTRA_ARGS
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(ABSEIL_EXTRA_ARGS
|
||||
${ABSEIL_EXTRA_ARGS}
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_abseil
|
||||
URL file://${PACKAGE_DIR}/${ABSEIL_FILE}
|
||||
URL_HASH ${ABSEIL_HASH_TYPE}=${ABSEIL_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/abseil
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/abseil
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${ABSEIL_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/abseil
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_abseil after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/abseil/
|
||||
${HARVEST_TARGET}/abseil
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory
|
||||
${HARVEST_TARGET}/abseil/lib/pkgconfig
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_abseil abseil/include abseil/include "*.h")
|
||||
harvest(external_abseil abseil/lib/cmake/absl abseil/lib/cmake/absl "*.cmake")
|
||||
harvest(external_abseil abseil/lib abseil/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,64 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(ALEMBIC_EXTRA_ARGS
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
-DUSE_PYALEMBIC=OFF
|
||||
-DUSE_ARNOLD=OFF
|
||||
-DUSE_MAYA=OFF
|
||||
-DUSE_PRMAN=OFF
|
||||
-DUSE_HDF5=OFF
|
||||
-DUSE_TESTS=OFF
|
||||
-DUSE_BINARIES=ON
|
||||
-DALEMBIC_ILMBASE_LINK_STATIC=OFF
|
||||
-DALEMBIC_SHARED_LIBS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_alembic
|
||||
URL file://${PACKAGE_DIR}/${ALEMBIC_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${ALEMBIC_HASH_TYPE}=${ALEMBIC_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/alembic
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/alembic
|
||||
-Wno-dev
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${ALEMBIC_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/alembic
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_alembic after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/alembic
|
||||
${HARVEST_TARGET}/alembic
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_alembic after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/alembic/lib/alembic.lib
|
||||
${HARVEST_TARGET}/alembic/lib/alembic_d.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_alembic alembic/include alembic/include "*.h")
|
||||
harvest(external_alembic alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
|
||||
harvest_rpath_bin(external_alembic alembic/bin alembic/bin "*")
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
add_dependencies(
|
||||
external_alembic
|
||||
external_imath
|
||||
)
|
||||
98
blender-5.2.0/build_files/build_environment/cmake/aom.cmake
Normal file
98
blender-5.2.0/build_files/build_environment/cmake/aom.cmake
Normal file
@@ -0,0 +1,98 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(BLENDER_PLATFORM_WINDOWS_ARM)
|
||||
set(AOM_EXTRA_ARGS_WIN32 ${DEFAULT_CMAKE_FLAGS} -DAOM_TARGET_CPU=generic)
|
||||
else()
|
||||
set(AOM_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
||||
endif()
|
||||
|
||||
set(AOM_EXTRA_ARGS
|
||||
-DENABLE_TESTDATA=OFF
|
||||
-DENABLE_TESTS=OFF
|
||||
-DENABLE_TOOLS=OFF
|
||||
-DENABLE_EXAMPLES=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
${AOM_EXTRA_ARGS_WIN32}
|
||||
)
|
||||
if(WIN32 AND NOT BLENDER_PLATFORM_WINDOWS_ARM)
|
||||
set(AOM_EXTRA_ARGS ${AOM_EXTRA_ARGS}-DCMAKE_ASM_NASM_COMPILER=)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
# This is slightly different from all other deps in the way that
|
||||
# aom uses cmake as a build system, but still needs the environment setup
|
||||
# to include perl so we manually setup the environment and call
|
||||
# cmake directly for the configure, build and install commands.
|
||||
|
||||
ExternalProject_Add(external_aom
|
||||
URL file://${PACKAGE_DIR}/${AOM_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${AOM_HASH_TYPE}=${AOM_HASH}
|
||||
PREFIX ${BUILD_DIR}/aom
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/aom/src/external_aom <
|
||||
${PATCH_DIR}/aom_6d2b7f71b98bfa28e372b1f2d85f137280bdb3de.diff
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/aom/src/external_aom-build/ &&
|
||||
${CMAKE_COMMAND}
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/aom
|
||||
-G "${PLATFORM_ALT_GENERATOR}"
|
||||
${AOM_CMAKE_FLAGS}
|
||||
${AOM_EXTRA_ARGS}
|
||||
${BUILD_DIR}/aom/src/external_aom/
|
||||
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build .
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install
|
||||
INSTALL_DIR ${LIBDIR}/aom
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add(external_aom
|
||||
URL file://${PACKAGE_DIR}/${AOM_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${AOM_HASH_TYPE}=${AOM_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/aom
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/aom/src/external_aom <
|
||||
${PATCH_DIR}/aom_6d2b7f71b98bfa28e372b1f2d85f137280bdb3de.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/aom
|
||||
${AOM_CMAKE_FLAGS}
|
||||
${AOM_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/aom
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT WIN32)
|
||||
harvest(external_aom aom/lib ffmpeg/lib "*.a")
|
||||
else()
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
# aom insists on building a static version even if you
|
||||
# do not want it, get rid of it by copying the import lib
|
||||
# on top of it, so other projects don't accidentally link
|
||||
# the static library.
|
||||
ExternalProject_Add_Step(external_aom after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/aom/lib/aom_dll.lib
|
||||
${LIBDIR}/aom/lib/aom.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/aom/
|
||||
${HARVEST_TARGET}/aom/
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add_Step(external_aom after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/aom/lib/aom_dll.lib
|
||||
${LIBDIR}/aom/lib/aom.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,45 @@
|
||||
# SPDX-FileCopyrightText: 2012-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(BLOSC_EXTRA_ARGS
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_BENCHMARKS=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-DThreads_FOUND=1
|
||||
-DPTHREAD_LIBS=${LIBDIR}/pthreads/lib/pthreadVC3.lib
|
||||
-DPTHREAD_INCLUDE_DIR=${LIBDIR}/pthreads/inc
|
||||
-DDEACTIVATE_SNAPPY=ON
|
||||
-DDEACTIVATE_ZLIB=ON
|
||||
-DDEACTIVATE_ZSTD=ON
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
# Fix for building with GCC 15, which defaults to C23. Fixed in main in the c-blosc repo, remove on upgrade.
|
||||
# See commit: https://github.com/Blosc/c-blosc/commit/774f6a0ebaa0c617f7f13ccf6bc89d17eba04654
|
||||
-DCMAKE_C_STANDARD=17
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_blosc
|
||||
URL file://${PACKAGE_DIR}/${BLOSC_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${BLOSC_HASH_TYPE}=${BLOSC_HASH}
|
||||
PREFIX ${BUILD_DIR}/blosc
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${BLOSC_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/blosc
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
add_dependencies(
|
||||
external_blosc
|
||||
external_pthreads
|
||||
)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
harvest(external_blosc blosc/lib openvdb/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,42 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(BROTLI_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_brotli
|
||||
URL file://${PACKAGE_DIR}/${BROTLI_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${BROTLI_HASH_TYPE}=${BROTLI_HASH}
|
||||
PREFIX ${BUILD_DIR}/brotli
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/brotli
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${BROTLI_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/brotli
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_brotli after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/brotli/include
|
||||
${HARVEST_TARGET}/brotli/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/brotli/lib/brotlidec-static${LIBEXT}
|
||||
${HARVEST_TARGET}/brotli/lib/brotlidec-static${LIBEXT}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/brotli/lib/brotlicommon-static${LIBEXT}
|
||||
${HARVEST_TARGET}/brotli/lib/brotlicommon-static${LIBEXT}
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_brotli brotli/include brotli/include "*.h")
|
||||
harvest(external_brotli brotli/lib brotli/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,38 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(BZIP2_PREFIX "${LIBDIR}/bzip2")
|
||||
set(BZIP2_CONFIGURE_ENV echo .)
|
||||
set(BZIP2_CONFIGURATION_ARGS "")
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(BZIP2_LDFLAGS "-Wl,--as-needed")
|
||||
set(BZIP2_CFLAGS "-fPIC -Wall -Winline -O2 -g -D_FILE_OFFSET_BITS=64")
|
||||
set(BZIP2_CONFIGURE_ENV
|
||||
${BZIP2_CONFIGURE_ENV} &&
|
||||
export LDFLAGS=${BZIP2_LDFLAGS} &&
|
||||
export CFLAGS=${BZIP2_CFLAGS} &&
|
||||
export PREFIX=${BZIP2_PREFIX}
|
||||
)
|
||||
else()
|
||||
set(BZIP2_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_bzip2
|
||||
URL file://${PACKAGE_DIR}/${BZIP2_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${BZIP2_HASH_TYPE}=${BZIP2_HASH}
|
||||
PREFIX ${BUILD_DIR}/bzip2
|
||||
CONFIGURE_COMMAND echo .
|
||||
|
||||
BUILD_COMMAND ${BZIP2_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/bzip2/src/external_bzip2/ &&
|
||||
make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${BZIP2_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/bzip2/src/external_bzip2/ &&
|
||||
make CFLAGS=${BZIP2_CFLAGS} LDFLAGS=${BZIP2_LDFLAGS} PREFIX=${BZIP2_PREFIX} install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/bzip2
|
||||
)
|
||||
@@ -0,0 +1,48 @@
|
||||
# SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(CERES_EXTRA_ARGS
|
||||
-Dabsl_DIR=${LIBDIR}/abseil/lib/cmake/absl/
|
||||
-DEigen3_DIR=${LIBDIR}/eigen/share/eigen3/cmake/
|
||||
-DTBB_DIR=${LIBDIR}/tbb/lib/cmake/TBB
|
||||
-DBUILD_TESTING=OFF
|
||||
-DBUILD_BENCHMARKS=OFF
|
||||
-DUSE_CUDA=OFF
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_ceres
|
||||
URL file://${PACKAGE_DIR}/${CERES_FILE}
|
||||
URL_HASH ${CERES_HASH_TYPE}=${CERES_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/ceres
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/ceres
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${CERES_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ceres
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_ceres
|
||||
external_abseil
|
||||
external_eigen
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_ceres after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/ceres
|
||||
${HARVEST_TARGET}/ceres
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_ceres ceres/include ceres/include "*.h")
|
||||
harvest(external_ceres ceres/lib/cmake/Ceres ceres/lib/cmake/Ceres "*.cmake")
|
||||
harvest_rpath_lib(external_ceres ceres/lib ceres/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
@@ -0,0 +1,49 @@
|
||||
# SPDX-FileCopyrightText: 2019-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Check against installed versions.
|
||||
|
||||
message(STATUS "Found C Compiler: ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(NOT (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION MATCHES "${RELEASE_GCC_VERSION}.*"))
|
||||
message(STATUS " NOTE: Official releases use GCC ${RELEASE_GCC_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message(STATUS "Found C++ Compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
if(UNIX AND NOT APPLE)
|
||||
if(NOT (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION MATCHES "${RELEASE_GCC_VERSION}.*"))
|
||||
message(STATUS " NOTE: Official releases use GCC ${RELEASE_GCC_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT APPLE)
|
||||
find_package(CUDAToolkit)
|
||||
if(NOT CUDAToolkit_NVCC_EXECUTABLE)
|
||||
message(STATUS "Missing CUDA compiler")
|
||||
else()
|
||||
message(STATUS "Found CUDA Compiler: ${CUDAToolkit_NVCC_EXECUTABLE} ${CUDAToolkit_VERSION}")
|
||||
if(NOT CUDAToolkit_VERSION MATCHES "${RELEASE_CUDA_VERSION}.*")
|
||||
message(STATUS " NOTE: Official releases use CUDA ${RELEASE_CUDA_VERSION}")
|
||||
endif()
|
||||
get_filename_component(CUDAToolkit_ROOT ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE)
|
||||
endif()
|
||||
|
||||
unset(HIP_VERSION)
|
||||
find_package(HIP QUIET)
|
||||
if(NOT HIP_FOUND)
|
||||
message(STATUS "Missing HIP compiler")
|
||||
else()
|
||||
message(STATUS "Found HIP Compiler: ${HIP_HIPCC_EXECUTABLE} ${HIP_VERSION}")
|
||||
if(WIN32)
|
||||
if(NOT HIP_VERSION MATCHES "${RELEASE_HIP_WINDOWS_VERSION}.*")
|
||||
message(STATUS " NOTE: Official releases use HIP ${RELEASE_HIP_WINDOWS_VERSION}")
|
||||
endif()
|
||||
else()
|
||||
if(NOT HIP_VERSION MATCHES "${RELEASE_HIP_UNIX_VERSION}.*")
|
||||
message(STATUS " NOTE: Official releases use HIP ${RELEASE_HIP_UNIX_VERSION}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,69 @@
|
||||
# SPDX-FileCopyrightText: 2019-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(UNIX)
|
||||
if(APPLE)
|
||||
set(_libtoolize_name glibtoolize)
|
||||
else()
|
||||
set(_libtoolize_name libtoolize)
|
||||
endif()
|
||||
|
||||
set(_required_software
|
||||
autoconf
|
||||
automake
|
||||
bison
|
||||
${_libtoolize_name}
|
||||
flex
|
||||
ninja
|
||||
pkg-config
|
||||
tclsh
|
||||
yasm
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
list(APPEND _required_software dos2unix)
|
||||
else()
|
||||
list(APPEND _required_software autopoint)
|
||||
list(APPEND _required_software patchelf)
|
||||
list(APPEND _required_software help2man)
|
||||
list(APPEND _required_software makeinfo)
|
||||
endif()
|
||||
|
||||
foreach(_software ${_required_software})
|
||||
find_program(_software_find NAMES ${_software})
|
||||
if(NOT _software_find)
|
||||
set(_software_missing "${_software_missing}${_software} ")
|
||||
endif()
|
||||
unset(_software_find CACHE)
|
||||
endforeach()
|
||||
|
||||
if(APPLE)
|
||||
# Homebrew has different default locations for ARM and Intel macOS.
|
||||
if("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64")
|
||||
set(HOMEBREW_LOCATION "/opt/homebrew")
|
||||
else()
|
||||
set(HOMEBREW_LOCATION "/usr/local")
|
||||
endif()
|
||||
if(NOT EXISTS "${HOMEBREW_LOCATION}/opt/bison/bin/bison")
|
||||
string(APPEND _software_missing " bison")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(_software_missing)
|
||||
message(WARNING
|
||||
"\n"
|
||||
"Missing software for building Blender dependencies:\n"
|
||||
" ${_software_missing}\n"
|
||||
"\n"
|
||||
"On Debian and Ubuntu:\n"
|
||||
" apt install autoconf automake autopoint flex help2man gettext texinfo bison libtool yasm tcl ninja-build meson python3-mako patchelf pkg-config\n"
|
||||
"\n"
|
||||
"On macOS (with homebrew):\n"
|
||||
" brew install autoconf automake bison dos2unix flex libtool meson ninja pkg-config yasm\n"
|
||||
"\n"
|
||||
"Other platforms:\n"
|
||||
" Install equivalent packages.\n")
|
||||
message(FATAL_ERROR "Install missing software before continuing")
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,64 @@
|
||||
# SPDX-FileCopyrightText: 2026 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Grype requirements
|
||||
#
|
||||
# - A working installation grype [1] has to be available in your path
|
||||
#
|
||||
# Bill of Materials construction
|
||||
#
|
||||
# This constructs a json cyclone-dx sbom grype can read and process.
|
||||
#
|
||||
# [1] https://github.com/anchore/grype
|
||||
|
||||
# Because not all deps are downloaded (ie python packages) but can still have a
|
||||
# xxx_CPE declared loop over all variables and look for variables ending in CPE.
|
||||
|
||||
set(SBOMCONTENTS "")
|
||||
set(SBOM_FIRST_ENTRY TRUE)
|
||||
get_cmake_property(_variableNames VARIABLES)
|
||||
foreach(_variableName ${_variableNames})
|
||||
if(_variableName MATCHES "CPE$")
|
||||
string(REPLACE ":" ";" CPE_LIST ${${_variableName}})
|
||||
list(GET CPE_LIST 3 CPE_VENDOR)
|
||||
list(GET CPE_LIST 4 CPE_NAME)
|
||||
list(GET CPE_LIST 5 CPE_VERSION)
|
||||
if(SBOM_FIRST_ENTRY)
|
||||
set(SBOM_SEPARATOR "")
|
||||
set(SBOM_FIRST_ENTRY FALSE)
|
||||
else()
|
||||
set(SBOM_SEPARATOR ",\n")
|
||||
endif()
|
||||
set(SBOM_ENTRY " {\n")
|
||||
string(APPEND SBOM_ENTRY " \"type\": \"library\",\n")
|
||||
string(APPEND SBOM_ENTRY " \"name\": \"${CPE_NAME}\",\n")
|
||||
string(APPEND SBOM_ENTRY " \"version\": \"${CPE_VERSION}\",\n")
|
||||
string(APPEND SBOM_ENTRY " \"cpe\": \"${${_variableName}}\"\n")
|
||||
string(APPEND SBOM_ENTRY " }")
|
||||
string(APPEND SBOMCONTENTS "${SBOM_SEPARATOR}${SBOM_ENTRY}")
|
||||
endif()
|
||||
endforeach()
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/sbom.json.in ${CMAKE_CURRENT_BINARY_DIR}/sbom.json @ONLY)
|
||||
|
||||
# This will just report to the console
|
||||
add_custom_target(cve_check
|
||||
COMMAND grype
|
||||
sbom:${CMAKE_CURRENT_BINARY_DIR}/sbom.json
|
||||
-o table
|
||||
-v
|
||||
--sort-by package
|
||||
--config ${CMAKE_SOURCE_DIR}/cmake/grype.yaml
|
||||
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/sbom.json
|
||||
)
|
||||
|
||||
# This will write out grype_results.txt
|
||||
add_custom_target(cve_check_txt
|
||||
COMMAND grype
|
||||
sbom:${CMAKE_CURRENT_BINARY_DIR}/sbom.json
|
||||
-o table
|
||||
--sort-by package
|
||||
--file ${CMAKE_CURRENT_BINARY_DIR}/grype_results.txt
|
||||
--config ${CMAKE_SOURCE_DIR}/cmake/grype.yaml
|
||||
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/sbom.json
|
||||
)
|
||||
@@ -0,0 +1,42 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(MSVC)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(CYTHON_DIR_POSTFIX -pydebug)
|
||||
set(CYTHON_ARCHIVE_POSTFIX d)
|
||||
set(CYTHON_BUILD_OPTION --debug)
|
||||
else()
|
||||
set(CYTHON_DIR_POSTFIX "")
|
||||
set(CYTHON_ARCHIVE_POSTFIX "")
|
||||
set(CYTHON_BUILD_OPTION "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CYTHON_POSTFIX "")
|
||||
|
||||
ExternalProject_Add(external_cython
|
||||
URL file://${PACKAGE_DIR}/${CYTHON_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${CYTHON_HASH_TYPE}=${CYTHON_HASH}
|
||||
PREFIX ${BUILD_DIR}/cython
|
||||
PATCH_COMMAND ${CYTHON_PATCH}
|
||||
CONFIGURE_COMMAND ""
|
||||
LOG_BUILD 1
|
||||
BUILD_IN_SOURCE 1
|
||||
|
||||
BUILD_COMMAND
|
||||
${PYTHON_BINARY} setup.py
|
||||
build ${CYTHON_BUILD_OPTION} -j${PYTHON_MAKE_THREADS}
|
||||
install
|
||||
--old-and-unmanageable
|
||||
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_cython
|
||||
external_python
|
||||
external_python_site_packages
|
||||
)
|
||||
@@ -0,0 +1,25 @@
|
||||
# SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
||||
set(DEFLATE_EXTRA_ARGS
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DLIBDEFLATE_BUILD_STATIC_LIB=ON
|
||||
-DLIBDEFLATE_BUILD_SHARED_LIB=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_deflate
|
||||
URL file://${PACKAGE_DIR}/${DEFLATE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${DEFLATE_HASH_TYPE}=${DEFLATE_HASH}
|
||||
PREFIX ${BUILD_DIR}/deflate
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/deflate
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${DEFLATE_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/deflate
|
||||
)
|
||||
18
blender-5.2.0/build_files/build_environment/cmake/deps.md.in
Normal file
18
blender-5.2.0/build_files/build_environment/cmake/deps.md.in
Normal file
@@ -0,0 +1,18 @@
|
||||
# Blender Library Dependencies
|
||||
|
||||
This file contains a table with all the libraries Blender uses to build its library dependencies.
|
||||
Some of the libraries might not be shipped in the library directory as some of them are only used at build time.
|
||||
|
||||
NOTE: Some libraries listed here might not be relevant for your platform.
|
||||
|
||||
## Library List
|
||||
|
||||
| Library Name | Version | Homepage |
|
||||
|--------------|---------|----------|
|
||||
@TABLE_CONTENTS@
|
||||
|
||||
## Basic Dependency Lists
|
||||
|
||||
These are auto generated basic dependency lists for each library.
|
||||
|
||||
@DEPS_CONTENTS@
|
||||
@@ -0,0 +1,70 @@
|
||||
# SPDX-FileCopyrightText: 2026 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#
|
||||
# This outputs an markdown file with the name, version and homepage for
|
||||
# every dependency we have, this is used by the release manager to
|
||||
# update the licensing document.
|
||||
|
||||
# Create a table with name, version and url for each library.
|
||||
|
||||
set(TABLE_CONTENTS "")
|
||||
get_cmake_property(_variableNames VARIABLES)
|
||||
foreach(_variableName ${_variableNames})
|
||||
if(_variableName MATCHES "_URI$")
|
||||
string(REPLACE "_URI" "" DEP_NAME ${_variableName})
|
||||
set(DEP_VERSION "${${DEP_NAME}_VERSION}")
|
||||
# First see if DEP_HOMEPAGE is set, if it is use that.
|
||||
set(DEP_HOMEPAGE ${${DEP_NAME}_HOMEPAGE})
|
||||
if(NOT DEP_HOMEPAGE)
|
||||
# If the xxx_HOMEPAGE is not set but the URI for the archive is a known github format
|
||||
# extract the repository/project from the URI.
|
||||
string(REGEX MATCH "https:\/\/(.*)github\.com\/(.+)\/(archive|releases|release|tar.gz)\/(.*)" DEP_PROJECT "${${_variableName}}")
|
||||
if(CMAKE_MATCH_2)
|
||||
set(DEP_HOMEPAGE "https://www.github.com/${CMAKE_MATCH_2}")
|
||||
else() # If that is also not set, error out to ensure this information is supplied
|
||||
message(FATAL_ERROR "${DEP_NAME} No homepage set, please set ${DEP_NAME}_HOMEPAGE in versions.cmake")
|
||||
endif()
|
||||
endif()
|
||||
set(TABLE_CONTENTS "${TABLE_CONTENTS}| `${DEP_NAME}` | `${DEP_VERSION}` | <${DEP_HOMEPAGE}> |\n")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# Create a list of dependencies for each library
|
||||
|
||||
set(DEPS_CONTENTS "")
|
||||
get_property(targets DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY BUILDSYSTEM_TARGETS)
|
||||
|
||||
foreach(target ${targets})
|
||||
string(REPLACE "external_" "" target_name ${target})
|
||||
get_target_property(deps ${target} MANUALLY_ADDED_DEPENDENCIES)
|
||||
if(NOT deps)
|
||||
list(APPEND NO_DEP_LIBS ${target_name})
|
||||
continue()
|
||||
endif()
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS}```\n")
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS}└── ${target_name}\n")
|
||||
list(LENGTH deps nr_of_deps)
|
||||
foreach(dep ${deps})
|
||||
string(REPLACE "external_" "" dep_name ${dep})
|
||||
math(EXPR nr_of_deps "${nr_of_deps} - 1")
|
||||
if(nr_of_deps)
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS} ├── ${dep_name}\n")
|
||||
else()
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS} └── ${dep_name}\n")
|
||||
endif()
|
||||
list(APPEND USED_DEPS ${dep_name})
|
||||
endforeach()
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS}```\n")
|
||||
endforeach()
|
||||
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS}Libraries without any dependencies and not used by any other library:\n```\n")
|
||||
list(REMOVE_DUPLICATES USED_DEPS)
|
||||
foreach(no_dep_target ${NO_DEP_LIBS})
|
||||
if(NOT ${no_dep_target} IN_LIST USED_DEPS)
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS}${no_dep_target}\n")
|
||||
endif()
|
||||
endforeach()
|
||||
set(DEPS_CONTENTS "${DEPS_CONTENTS}```\n")
|
||||
|
||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/deps.md.in ${HARVEST_TARGET}/deps.md @ONLY)
|
||||
196
blender-5.2.0/build_files/build_environment/cmake/download.cmake
Normal file
196
blender-5.2.0/build_files/build_environment/cmake/download.cmake
Normal file
@@ -0,0 +1,196 @@
|
||||
# SPDX-FileCopyrightText: 2021-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
## Update and uncomment this in the release branch
|
||||
set(BLENDER_VERSION 5.2)
|
||||
|
||||
function(download_source dep)
|
||||
set(TARGET_FILE ${${dep}_FILE})
|
||||
set(TARGET_HASH_TYPE ${${dep}_HASH_TYPE})
|
||||
set(TARGET_HASH ${${dep}_HASH})
|
||||
if(PACKAGE_USE_UPSTREAM_SOURCES)
|
||||
set(TARGET_URI ${${dep}_URI})
|
||||
elseif(BLENDER_VERSION)
|
||||
set(TARGET_URI https://projects.blender.org/blender/lib-source/media/branch/blender-v${BLENDER_VERSION}-release/${TARGET_FILE})
|
||||
else()
|
||||
set(TARGET_URI https://projects.blender.org/blender/lib-source/media/branch/main/${TARGET_FILE})
|
||||
endif()
|
||||
# Validate all required variables are set and give an explicit error message
|
||||
# rather than CMake erroring out later on with a more ambiguous error.
|
||||
if(NOT DEFINED TARGET_FILE)
|
||||
message(FATAL_ERROR "${dep}_FILE variable not set")
|
||||
endif()
|
||||
if(NOT DEFINED TARGET_HASH)
|
||||
message(FATAL_ERROR "${dep}_HASH variable not set")
|
||||
endif()
|
||||
if(NOT DEFINED TARGET_HASH_TYPE)
|
||||
message(FATAL_ERROR "${dep}_HASH_TYPE variable not set")
|
||||
endif()
|
||||
if(NOT DEFINED TARGET_URI)
|
||||
message(FATAL_ERROR "${dep}_URI variable not set")
|
||||
endif()
|
||||
set(TARGET_FILE ${PACKAGE_DIR}/${TARGET_FILE})
|
||||
message(STATUS "Checking source : ${dep} (${TARGET_FILE})")
|
||||
if(NOT EXISTS ${TARGET_FILE})
|
||||
message(STATUS "Checking source : ${dep} - source not found downloading from ${TARGET_URI}")
|
||||
file(
|
||||
DOWNLOAD ${TARGET_URI} ${TARGET_FILE}
|
||||
TIMEOUT 1800 # seconds
|
||||
EXPECTED_HASH ${TARGET_HASH_TYPE}=${TARGET_HASH}
|
||||
TLS_VERIFY ON
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
endif()
|
||||
if(EXISTS ${TARGET_FILE})
|
||||
# Sometimes the download fails, but that is not a
|
||||
# fail condition for "file(DOWNLOAD" it will warn about
|
||||
# a CRC mismatch and just carry on, we need to explicitly
|
||||
# catch this and remove the bogus 0 byte file so we can
|
||||
# retry without having to go find the file and manually
|
||||
# delete it.
|
||||
file(SIZE ${TARGET_FILE} TARGET_SIZE)
|
||||
if(${TARGET_SIZE} EQUAL 0)
|
||||
file(REMOVE ${TARGET_FILE})
|
||||
message(FATAL_ERROR "for ${TARGET_FILE} file size 0, download likely failed, deleted...")
|
||||
endif()
|
||||
|
||||
# If we are using sources from the blender repo also
|
||||
# validate that the hashes match, this takes a
|
||||
# little more time, but protects us when we are
|
||||
# building a release package and one of the packages
|
||||
# is missing or incorrect.
|
||||
#
|
||||
# For regular platform maintenance this is not needed
|
||||
# since the actual build of the dep will notify the
|
||||
# platform maintainer if there is a problem with the
|
||||
# source package and refuse to build.
|
||||
if(NOT PACKAGE_USE_UPSTREAM_SOURCES OR FORCE_CHECK_HASH)
|
||||
file(${TARGET_HASH_TYPE} ${TARGET_FILE} LOCAL_HASH)
|
||||
if(NOT ${TARGET_HASH} STREQUAL ${LOCAL_HASH})
|
||||
message(FATAL_ERROR
|
||||
"${TARGET_FILE} ${TARGET_HASH_TYPE} mismatch\n"
|
||||
"Expected\t: ${TARGET_HASH}\nActual\t: ${LOCAL_HASH}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endfunction(download_source)
|
||||
|
||||
download_source(ZLIB)
|
||||
download_source(OPENAL)
|
||||
download_source(PNG)
|
||||
download_source(JPEG)
|
||||
download_source(BLOSC)
|
||||
download_source(PTHREADS)
|
||||
download_source(OPENEXR)
|
||||
download_source(FREETYPE)
|
||||
download_source(EPOXY)
|
||||
download_source(ALEMBIC)
|
||||
download_source(OPENSUBDIV)
|
||||
download_source(SDL)
|
||||
download_source(OPENCOLORIO)
|
||||
download_source(MINIZIPNG)
|
||||
download_source(LLVM)
|
||||
download_source(OPENIMAGEIO)
|
||||
download_source(TIFF)
|
||||
download_source(OSL)
|
||||
download_source(PYTHON)
|
||||
download_source(TBB)
|
||||
download_source(OPENVDB)
|
||||
download_source(CYTHON)
|
||||
download_source(ZSTANDARD)
|
||||
download_source(NUMPY)
|
||||
download_source(LAME)
|
||||
download_source(OGG)
|
||||
download_source(VORBIS)
|
||||
download_source(THEORA)
|
||||
download_source(FLAC)
|
||||
download_source(VPX)
|
||||
download_source(OPUS)
|
||||
download_source(X264)
|
||||
download_source(X265)
|
||||
download_source(OPENJPEG)
|
||||
download_source(FFMPEG)
|
||||
download_source(FFTW)
|
||||
download_source(ICONV)
|
||||
download_source(SNDFILE)
|
||||
download_source(WEBP)
|
||||
download_source(SPNAV)
|
||||
download_source(XML2)
|
||||
download_source(YAMLCPP)
|
||||
download_source(EXPAT)
|
||||
download_source(PUGIXML)
|
||||
download_source(FLEXBISON)
|
||||
download_source(BZIP2)
|
||||
download_source(FFI)
|
||||
download_source(LZMA)
|
||||
download_source(SSL)
|
||||
download_source(SQLITE)
|
||||
download_source(EMBREE)
|
||||
download_source(USD)
|
||||
download_source(MATERIALX)
|
||||
download_source(OIDN)
|
||||
download_source(NASM)
|
||||
download_source(XR_OPENXR_SDK)
|
||||
download_source(WL_PROTOCOLS)
|
||||
download_source(WAYLAND)
|
||||
download_source(WAYLAND_WESTON)
|
||||
download_source(ISPC)
|
||||
download_source(GMP)
|
||||
download_source(POTRACE)
|
||||
download_source(HARU)
|
||||
download_source(ZSTD)
|
||||
download_source(SSE2NEON)
|
||||
download_source(FLEX)
|
||||
download_source(BROTLI)
|
||||
download_source(FMT)
|
||||
download_source(ROBINMAP)
|
||||
download_source(IMATH)
|
||||
download_source(PYSTRING)
|
||||
download_source(OPENPGL)
|
||||
download_source(LEVEL_ZERO)
|
||||
download_source(DPCPP)
|
||||
download_source(VCINTRINSICS)
|
||||
download_source(OPENCLHEADERS)
|
||||
download_source(ICDLOADER)
|
||||
download_source(EMHASH)
|
||||
download_source(DPCPP_SPIRV_HEADERS)
|
||||
download_source(UNIFIED_MEMORY_FRAMEWORK)
|
||||
download_source(PARALLEL_HASHMAP)
|
||||
download_source(IGC)
|
||||
download_source(IGC_LLVM)
|
||||
download_source(IGC_OPENCL_CLANG)
|
||||
download_source(IGC_VCINTRINSICS)
|
||||
download_source(IGC_SPIRV_HEADERS)
|
||||
download_source(IGC_SPIRV_TOOLS)
|
||||
download_source(IGC_SPIRV_TRANSLATOR)
|
||||
download_source(GMMLIB)
|
||||
download_source(OCLOC)
|
||||
download_source(AOM)
|
||||
download_source(FRIBIDI)
|
||||
download_source(HARFBUZZ)
|
||||
download_source(SHADERC)
|
||||
download_source(SHADERC_GLSLANG)
|
||||
download_source(VULKAN_HEADERS)
|
||||
download_source(VULKAN_LOADER)
|
||||
download_source(VULKAN_UTILITY_LIBRARIES)
|
||||
download_source(SPIRV_HEADERS)
|
||||
download_source(SPIRV_REFLECT)
|
||||
download_source(SPIRV_TOOLS)
|
||||
download_source(VULKAN_MEMORY_ALLOCATOR)
|
||||
download_source(PYBIND11)
|
||||
download_source(DEFLATE)
|
||||
download_source(HIPRT)
|
||||
download_source(NANOBIND)
|
||||
download_source(MANIFOLD)
|
||||
download_source(RUBBERBAND)
|
||||
download_source(OPENJPH)
|
||||
download_source(THORVG)
|
||||
download_source(LIBHEIF)
|
||||
download_source(ABSEIL)
|
||||
download_source(EIGEN)
|
||||
download_source(CERES)
|
||||
download_source(DRACO)
|
||||
download_source(MESHOPTIMIZER)
|
||||
download_source(TRACY)
|
||||
253
blender-5.2.0/build_files/build_environment/cmake/dpcpp.cmake
Normal file
253
blender-5.2.0/build_files/build_environment/cmake/dpcpp.cmake
Normal file
@@ -0,0 +1,253 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
string(REPLACE "-DCMAKE_CXX_STANDARD=20" " " DPCPP_CMAKE_FLAGS "${DEFAULT_CMAKE_FLAGS}")
|
||||
|
||||
# DPCPP already generates debug libs, there isn't much point in compiling it in debug mode itself.
|
||||
string(REPLACE "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_BUILD_TYPE=Release" DPCPP_CMAKE_FLAGS "${DPCPP_CMAKE_FLAGS}")
|
||||
|
||||
if(WIN32)
|
||||
set(LLVM_GENERATOR "Ninja")
|
||||
else()
|
||||
set(LLVM_GENERATOR "Unix Makefiles")
|
||||
endif()
|
||||
|
||||
set(DPCPP_CONFIGURE_ARGS
|
||||
# When external deps dpcpp needs are not found it will automatically
|
||||
# download them during the configure stage using FetchContent. Given
|
||||
# we need to keep an archive of all source used during build for compliance
|
||||
# reasons it CANNOT download anything we do not know about. By setting
|
||||
# this property to ON, all downloads are disabled, and we will have to
|
||||
# provide the missing deps some other way, a build error beats a compliance
|
||||
# violation
|
||||
--cmake-opt FETCHCONTENT_FULLY_DISCONNECTED=ON
|
||||
)
|
||||
set(DPCPP_SOURCE_ROOT ${BUILD_DIR}/dpcpp/src/external_dpcpp/)
|
||||
set(DPCPP_EXTRA_ARGS
|
||||
# When external deps dpcpp needs are not found it will automatically
|
||||
# download them during the configure stage using FetchContent. Given
|
||||
# we need to keep an archive of all source used during build for compliance
|
||||
# reasons it CANNOT download anything we do not know about. By setting
|
||||
# this property to ON, all downloads are disabled, and we will have to
|
||||
# provide the missing deps some other way, a build or configure error
|
||||
# beats a compliance violation
|
||||
-DFETCHCONTENT_FULLY_DISCONNECTED=ON
|
||||
|
||||
# Pre-built dependency paths (project-specific, not from configure.py)
|
||||
# In addition to this, we are setting some additional parameters,
|
||||
# which are not covered by configure.py, but which we plan to use
|
||||
# in order to meet some Blender needs, for example, disabling
|
||||
# HWLOC dependency/library from being used. Some of these variables
|
||||
# are even connected to our dpcpp.patch changes and require them
|
||||
# to work properly.
|
||||
-DLLVMGenXIntrinsics_SOURCE_DIR=${BUILD_DIR}/vcintrinsics/src/external_vcintrinsics/
|
||||
-DOpenCL_HEADERS=file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
|
||||
-DOpenCL_LIBRARY_SRC=file://${PACKAGE_DIR}/${ICDLOADER_FILE}
|
||||
-DSYCL_EMHASH_DIR=${LIBDIR}/emhash/include
|
||||
-DEMHASH_SYS_LOC=${LIBDIR}/emhash/include/emhash
|
||||
-DLEVEL_ZERO_LIBRARY=${LIBDIR}/level-zero/lib/${LIBPREFIX}ze_loader${SHAREDLIBEXT}
|
||||
-DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include/level_zero
|
||||
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${BUILD_DIR}/dpcpp_spirvheaders/src/external_dpcpp_spirvheaders/
|
||||
# See an explanation above about compliance for the two following cmake arguments
|
||||
-DSYCL_UR_USE_FETCH_CONTENT=OFF
|
||||
-DUR_COMPUTE_RUNTIME_FETCH_REPO=OFF
|
||||
-DFETCHCONTENT_SOURCE_DIR_UNIFIED-MEMORY-FRAMEWORK=${BUILD_DIR}/unifiedmemoryframework/src/external_unifiedmemoryframework/
|
||||
-DSYCL_UMF_DISABLE_HWLOC=ON
|
||||
-DUMF_DISABLE_HWLOC=ON
|
||||
-DUMF_BUILD_SHARED_LIBRARY=OFF
|
||||
# These two options are from configure.py, but they are left here for now for the better
|
||||
# readability of the changes - they would be moved downward in the future refactoring.
|
||||
-DSYCL_ENABLE_XPTI_TRACING=ON
|
||||
# [CHANGED] We do not need to build tests for our purposes
|
||||
-DSYCL_INCLUDE_TESTS=OFF
|
||||
-DUR_ENABLE_TRACING=ON
|
||||
-DXPTIFW_PARALLEL_HASHMAP_HEADERS=${LIBDIR}/parallelhashmap/include
|
||||
|
||||
# Below here is copied from an invocation of buildbot/configure.py with
|
||||
# arguments "--use-zstd --disable-preview-lib --host-target=x86"
|
||||
# Note: --print-cmake-variables is not a real cmake flag, it was just used
|
||||
# to cause all parameters to be printed and then cause exit prematurely.
|
||||
#
|
||||
# The original generated arguments were this:
|
||||
# >"C:\db\build\output\Win64_vc15\python\313\bin\python.exe" buildbot\configure.py --use-zstd --disable-preview-lib --disable-jit --host-target=x86 --print-cmake-variables
|
||||
# args:Namespace(build_number=None, branch=None, base_branch=None, pr_number=None, builder_dir=None, src_dir=None, obj_dir=None, l0_headers=None, l0_loader=None, build_type='Release', cuda=False, native_cpu=False, hip=False, hip_platform='AMD', level_zero_adapter_version='ALL', host_target='x86', enable_all_llvm_targets=False, no_assertions=False, docs=False, werror=False, shared_libs=False, cmake_opt=None, cmake_gen='Ninja', use_libcxx=False, libcxx_include=None, libcxx_library=None, use_lld=False, llvm_external_projects=None, ci_defaults=False, enable_backends=None, disable_preview_lib=True, disable_jit=True, add_security_flags=None, native_cpu_libclc_targets=None, use_zstd=True)
|
||||
# [Cmake Command]:
|
||||
# cmake
|
||||
# -G Ninja
|
||||
# -DCMAKE_BUILD_TYPE=Release
|
||||
# -DLLVM_ENABLE_ASSERTIONS=ON
|
||||
# -DLLVM_TARGETS_TO_BUILD=x86
|
||||
# '-DLLVM_EXTERNAL_PROJECTS=sycl;llvm-spirv;opencl;xpti;xptifw;libdevice'
|
||||
# '-DLLVM_EXTERNAL_SYCL_SOURCE_DIR=C:\Repos\llvm-6.3.0\sycl'
|
||||
# '-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=C:\Repos\llvm-6.3.0\llvm-spirv'
|
||||
# '-DLLVM_EXTERNAL_XPTI_SOURCE_DIR=C:\Repos\llvm-6.3.0\xpti'
|
||||
# '-DXPTI_SOURCE_DIR=C:\Repos\llvm-6.3.0\xpti'
|
||||
# '-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=C:\Repos\llvm-6.3.0\xptifw'
|
||||
# '-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR=C:\Repos\llvm-6.3.0\libdevice'
|
||||
# '-DLLVM_EXTERNAL_SYCL_JIT_SOURCE_DIR=C:\Repos\llvm-6.3.0\sycl-jit'
|
||||
# '-DLLVM_ENABLE_PROJECTS=clang;sycl;llvm-spirv;opencl;xpti;xptifw;libdevice;lld'
|
||||
# -DSYCL_BUILD_PI_HIP_PLATFORM=AMD
|
||||
# -DLLVM_BUILD_TOOLS=ON
|
||||
# -DLLVM_ENABLE_ZSTD=FORCE_ON
|
||||
# -DLLVM_USE_STATIC_ZSTD=ON
|
||||
# -DSYCL_ENABLE_WERROR=OFF
|
||||
# '-DCMAKE_INSTALL_PREFIX=C:\Repos\llvm-6.3.0\build\install'
|
||||
# -DSYCL_INCLUDE_TESTS=ON
|
||||
# -DLLVM_ENABLE_DOXYGEN=OFF
|
||||
# -DLLVM_ENABLE_SPHINX=OFF
|
||||
# -DBUILD_SHARED_LIBS=OFF
|
||||
# -DSYCL_ENABLE_XPTI_TRACING=ON
|
||||
# -DLLVM_ENABLE_LLD=OFF
|
||||
# -DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=OFF
|
||||
# -DXPTI_ENABLE_WERROR=OFF
|
||||
# -DSYCL_CLANG_EXTRA_FLAGS=
|
||||
# '-DSYCL_ENABLE_BACKENDS=level_zero_v2;level_zero;opencl'
|
||||
# -DSYCL_ENABLE_EXTENSION_JIT=OFF
|
||||
# -DSYCL_ENABLE_MAJOR_RELEASE_PREVIEW_LIB=OFF
|
||||
# -DBUG_REPORT_URL=https://github.com/intel/llvm/issues
|
||||
# 'C:\Repos\llvm-6.3.0\llvm'
|
||||
# --print-cmake-variables
|
||||
# CMake Error: Unknown argument --print-cmake-variables
|
||||
# CMake Error: Run 'cmake --help' for all supported options.
|
||||
# >
|
||||
#
|
||||
# All cmake parameters from the list above, which we set with
|
||||
# non-default options are marked as [CHANGED]. Other parameters,
|
||||
# not from the list above do not have this mark regardless of
|
||||
# their values.
|
||||
|
||||
# -DCMAKE_BUILD_TYPE=Release # set by ExternalProject_Add
|
||||
-DLLVM_ENABLE_ASSERTIONS=ON
|
||||
-DLLVM_TARGETS_TO_BUILD=X86
|
||||
# Note: lld/clang are in-tree LLVM projects, only listed in ENABLE_PROJECTS.
|
||||
-DLLVM_EXTERNAL_PROJECTS=sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw
|
||||
-DLLVM_EXTERNAL_SYCL_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/sycl
|
||||
-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/llvm-spirv
|
||||
-DLLVM_EXTERNAL_XPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
||||
-DXPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
||||
-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xptifw
|
||||
-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/libdevice
|
||||
-DLLVM_ENABLE_PROJECTS=clang^^sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw^^lld
|
||||
# [ADDED] Not from configure.py. These arguments disable libclc (not needed for Level Zero)
|
||||
# and will be moved downward in future refactoring.
|
||||
-DLIBCLC_TARGETS_TO_BUILD=
|
||||
-DLIBCLC_GENERATE_REMANGLED_VARIANTS=OFF
|
||||
-DSYCL_BUILD_PI_HIP_PLATFORM=AMD
|
||||
-DLLVM_BUILD_TOOLS=ON
|
||||
-DSYCL_ENABLE_WERROR=OFF
|
||||
# -DCMAKE_INSTALL_PREFIX=... # set by ExternalProject_Add
|
||||
# [CHANGED] Tests disabled (configure.py default: ON)
|
||||
-DLLVM_ENABLE_DOXYGEN=OFF
|
||||
-DLLVM_ENABLE_SPHINX=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DLLVM_ENABLE_LLD=OFF
|
||||
-DLLVM_SPIRV_ENABLE_LIBSPIRV_DIS=OFF
|
||||
-DXPTI_ENABLE_WERROR=OFF
|
||||
-DSYCL_CLANG_EXTRA_FLAGS=
|
||||
# [CHANGED] Removed opencl backend; we only target Level Zero.
|
||||
# configure.py default: level_zero;opencl;level_zero_v2
|
||||
# Previously this option was called SYCL_ENABLE_PLUGINS
|
||||
-DSYCL_ENABLE_BACKENDS=level_zero_v2^^level_zero
|
||||
-DSYCL_ENABLE_EXTENSION_JIT=OFF
|
||||
-DSYCL_ENABLE_MAJOR_RELEASE_PREVIEW_LIB=OFF
|
||||
# -DBUG_REPORT_URL=... # omitted, cosmetic
|
||||
|
||||
# Additional project-specific flags (not from configure.py)
|
||||
-DCMAKE_INSTALL_RPATH=\$ORIGIN
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DLLDB_ENABLE_CURSES=OFF
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
-DLLVM_ENABLE_ZLIB=OFF
|
||||
# The following two are from configure.py, but left here for now for better
|
||||
# readability of the changes - they will be moved upward in future refactoring.
|
||||
-DLLVM_ENABLE_ZSTD=FORCE_ON
|
||||
-DLLVM_USE_STATIC_ZSTD=ON
|
||||
-Dzstd_INCLUDE_DIR=${LIBDIR}/zstd/include
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND DPCPP_EXTRA_ARGS
|
||||
-DPython3_FIND_REGISTRY=NEVER
|
||||
-Dzstd_LIBRARY=${LIBDIR}/zstd/lib/zstd_static.lib
|
||||
)
|
||||
else()
|
||||
list(APPEND DPCPP_EXTRA_ARGS
|
||||
-Dzstd_LIBRARY=${LIBDIR}/zstd/lib/libzstd.a
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_dpcpp
|
||||
URL file://${PACKAGE_DIR}/${DPCPP_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${DPCPP_HASH_TYPE}=${DPCPP_HASH}
|
||||
PREFIX ${BUILD_DIR}/dpcpp
|
||||
CMAKE_GENERATOR ${LLVM_GENERATOR}
|
||||
SOURCE_SUBDIR llvm
|
||||
LIST_SEPARATOR ^^
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/dpcpp
|
||||
${DPCPP_CMAKE_FLAGS}
|
||||
${DPCPP_EXTRA_ARGS}
|
||||
|
||||
# CONFIGURE_COMMAND
|
||||
# ${PYTHON_BINARY}
|
||||
# ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/configure.py ${DPCPP_CONFIGURE_ARGS}
|
||||
# BUILD_COMMAND
|
||||
# echo "." # ${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/compile.py
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . -- deploy-sycl-toolchain
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/dpcpp/src/external_dpcpp <
|
||||
${PATCH_DIR}/dpcpp.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/dpcpp/src/external_dpcpp <
|
||||
${PATCH_DIR}/dpcpp_backport_21050.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/dpcpp/src/external_dpcpp <
|
||||
${PATCH_DIR}/dpcpp_backport_21490.diff
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/dpcpp
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_dpcpp
|
||||
external_python
|
||||
external_python_site_packages
|
||||
external_vcintrinsics
|
||||
external_openclheaders
|
||||
external_icdloader
|
||||
external_emhash
|
||||
external_level-zero
|
||||
external_dpcpp_spirvheaders
|
||||
external_unifiedmemoryframework
|
||||
external_zstd
|
||||
external_parallelhashmap
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_dpcpp after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/dpcpp ${HARVEST_TARGET}/dpcpp
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/clang-cl.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/clang-cpp.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/ld.lld.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/ld64.lld.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/lld.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/lld-link.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/wasm-ld.exe
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_dpcpp dpcpp/bin dpcpp/bin "*")
|
||||
harvest(external_dpcpp dpcpp/include dpcpp/include "*")
|
||||
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libsycl*")
|
||||
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libxpti*")
|
||||
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libur*")
|
||||
harvest(external_dpcpp dpcpp/lib/clang dpcpp/lib/clang "*")
|
||||
endif()
|
||||
@@ -0,0 +1,66 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# These are build time requirements for dpcpp
|
||||
# We only have to unpack these dpcpp will build
|
||||
# them.
|
||||
|
||||
ExternalProject_Add(external_vcintrinsics
|
||||
URL file://${PACKAGE_DIR}/${VCINTRINSICS_FILE}
|
||||
URL_HASH ${VCINTRINSICS_HASH_TYPE}=${VCINTRINSICS_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/vcintrinsics
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
# opencl headers do not have to be unpacked, dpcpp will do it
|
||||
# but it wouldn't hurt to do it anyway as an opportunity to validate
|
||||
# the hash is correct.
|
||||
ExternalProject_Add(external_openclheaders
|
||||
URL file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
|
||||
URL_HASH ${OPENCLHEADERS_HASH_TYPE}=${OPENCLHEADERS_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/openclheaders
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
# icdloader does not have to be unpacked, dpcpp will do it
|
||||
# but it wouldn't hurt to do it anyway as an opportunity to validate
|
||||
# the hash is correct.
|
||||
ExternalProject_Add(external_icdloader
|
||||
URL file://${PACKAGE_DIR}/${ICDLOADER_FILE}
|
||||
URL_HASH ${ICDLOADER_HASH_TYPE}=${ICDLOADER_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/icdloader
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_dpcpp_spirvheaders
|
||||
URL file://${PACKAGE_DIR}/${DPCPP_SPIRV_HEADERS_FILE}
|
||||
URL_HASH ${DPCPP_SPIRV_HEADERS_HASH_TYPE}=${DPCPP_SPIRV_HEADERS_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/dpcpp_spirvheaders
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_unifiedmemoryframework
|
||||
URL file://${PACKAGE_DIR}/${UNIFIED_MEMORY_FRAMEWORK_FILE}
|
||||
URL_HASH ${UNIFIED_MEMORY_FRAMEWORK_HASH_TYPE}=${UNIFIED_MEMORY_FRAMEWORK_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/unifiedmemoryframework
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/unifiedmemoryframework/src/external_unifiedmemoryframework <
|
||||
${PATCH_DIR}/unifiedmemoryframework.diff
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
@@ -0,0 +1,46 @@
|
||||
# SPDX-FileCopyrightText: 2026 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(DRACO_EXTRA_ARGS
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(DRACO_EXTRA_ARGS
|
||||
${DRACO_EXTRA_ARGS}
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_draco
|
||||
URL file://${PACKAGE_DIR}/${DRACO_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${DRACO_HASH_TYPE}=${DRACO_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/draco
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/draco
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${DRACO_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/draco
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_draco after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/draco/
|
||||
${HARVEST_TARGET}/draco
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_draco draco/include draco/include "*.h")
|
||||
# CMake files first because harvest_rpath_lib edits them. Move from share/cmake to lib/cmake for set_rpath.py to find them.
|
||||
harvest(external_draco draco/share/cmake/draco draco/lib/cmake/draco "*.cmake")
|
||||
harvest_rpath_lib(external_draco draco/lib draco/lib "*${SHAREDLIBEXT}*")
|
||||
# Draco unconditionally builds as a static library, harvest it to satisfy the CMake config target.
|
||||
harvest(external_draco draco/lib draco/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,45 @@
|
||||
# SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(EIGEN_EXTRA_ARGS
|
||||
-DBUILD_TESTING=OFF
|
||||
-DEIGEN_BUILD_DOC=OFF
|
||||
-DTBB_DIR=${LIBDIR}/tbb/lib/cmake/TBB
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_eigen
|
||||
URL file://${PACKAGE_DIR}/${EIGEN_FILE}
|
||||
URL_HASH ${EIGEN_HASH_TYPE}=${EIGEN_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/eigen
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/eigen/src/external_eigen <
|
||||
${PATCH_DIR}/eigen_tbb_support.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/eigen
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${EIGEN_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/eigen
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
# While C++ eigen is a header only library
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_eigen after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/eigen
|
||||
${HARVEST_TARGET}/eigen
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
# Eigen has files without extensions in the include directory that it needs so no *.h wildcard
|
||||
harvest(external_eigen eigen/include eigen/include "*")
|
||||
# Extra / at the end to ensure that harvest doesn't ignore the cmake directory
|
||||
harvest(external_eigen eigen/share/eigen3/cmake/ eigen/share/eigen3/cmake/ "*.cmake")
|
||||
endif()
|
||||
154
blender-5.2.0/build_files/build_environment/cmake/embree.cmake
Normal file
154
blender-5.2.0/build_files/build_environment/cmake/embree.cmake
Normal file
@@ -0,0 +1,154 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Note the utility apps may use png/tiff/gif system libraries, but the
|
||||
# library itself does not depend on them, so should give no problems.
|
||||
|
||||
set(EMBREE_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
||||
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
-DEMBREE_ISPC_SUPPORT=OFF
|
||||
-DEMBREE_TUTORIALS=OFF
|
||||
-DEMBREE_STATIC_LIB=OFF
|
||||
-DEMBREE_RAY_MASK=ON
|
||||
-DEMBREE_FILTER_FUNCTION=ON
|
||||
-DEMBREE_BACKFACE_CULLING=OFF
|
||||
-DEMBREE_BACKFACE_CULLING_CURVES=ON
|
||||
-DEMBREE_BACKFACE_CULLING_SPHERES=ON
|
||||
-DEMBREE_TASKING_SYSTEM=TBB
|
||||
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT BLENDER_PLATFORM_ARM)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_MAX_ISA=AVX2
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT APPLE AND NOT BLENDER_PLATFORM_ARM)
|
||||
if(WIN32)
|
||||
# Levels below -O2 don't work well for Embree+SYCL.
|
||||
string(REGEX REPLACE "-O[A-Za-z0-9]" "" EMBREE_CLANG_CMAKE_CXX_FLAGS_DEBUG ${BLENDER_CLANG_CMAKE_CXX_FLAGS_DEBUG})
|
||||
string(APPEND EMBREE_CLANG_CMAKE_CXX_FLAGS_DEBUG " -O2")
|
||||
string(REGEX REPLACE "-O[A-Za-z0-9]" "" EMBREE_CLANG_CMAKE_C_FLAGS_DEBUG ${BLENDER_CLANG_CMAKE_C_FLAGS_DEBUG})
|
||||
string(APPEND EMBREE_CLANG_CMAKE_C_FLAGS_DEBUG " -O2")
|
||||
set(EMBREE_CMAKE_FLAGS
|
||||
-DCMAKE_BUILD_TYPE=${BUILD_MODE}
|
||||
-DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CLANG_CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CLANG_CMAKE_CXX_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${BLENDER_CLANG_CMAKE_CXX_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${EMBREE_CLANG_CMAKE_CXX_FLAGS_DEBUG}
|
||||
-DCMAKE_C_FLAGS_RELEASE=${BLENDER_CLANG_CMAKE_C_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS_MINSIZEREL=${BLENDER_CLANG_CMAKE_C_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO=${BLENDER_CLANG_CMAKE_C_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_C_FLAGS_DEBUG=${EMBREE_CLANG_CMAKE_C_FLAGS_DEBUG}
|
||||
-DCMAKE_CXX_STANDARD=17
|
||||
)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-L"${LIBDIR}/dpcpp/lib"
|
||||
-DEMBREE_SYCL_SUPPORT=ON
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
)
|
||||
else()
|
||||
string(REPLACE "-DCMAKE_CXX_STANDARD=20" " " EMBREE_CMAKE_FLAGS "${EMBREE_CMAKE_FLAGS}")
|
||||
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-L"${LIBDIR}/dpcpp/lib"
|
||||
-DEMBREE_SYCL_SUPPORT=ON
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(TBB_STATIC_LIBRARY)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_TBB_COMPONENT=tbb_static
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_embree
|
||||
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/embree
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/embree/src/external_embree <
|
||||
${PATCH_DIR}/embree.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree
|
||||
${EMBREE_CMAKE_FLAGS}
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/embree
|
||||
)
|
||||
|
||||
if(NOT APPLE AND NOT BLENDER_PLATFORM_ARM)
|
||||
add_dependencies(
|
||||
external_embree
|
||||
external_tbb
|
||||
external_dpcpp
|
||||
)
|
||||
else()
|
||||
add_dependencies(
|
||||
external_embree
|
||||
external_tbb
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_embree after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/embree/include
|
||||
${HARVEST_TARGET}/embree/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/embree/lib
|
||||
${HARVEST_TARGET}/embree/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/embree/share
|
||||
${HARVEST_TARGET}/embree/share
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/bin/embree4.dll
|
||||
${HARVEST_TARGET}/embree/bin/embree4.dll
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add_Step(external_embree after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/bin/embree4_d.dll
|
||||
${HARVEST_TARGET}/embree/bin/embree4_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/lib/embree4_d.lib
|
||||
${HARVEST_TARGET}/embree/lib/embree4_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/lib/embree4_sycl_d.lib
|
||||
${HARVEST_TARGET}/embree/lib/embree4_sycl_d.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_embree embree/include embree/include "*.h")
|
||||
harvest(external_embree embree/lib embree/lib "*.a")
|
||||
harvest_rpath_lib(external_embree embree/lib embree/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
@@ -0,0 +1,146 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Note the utility apps may use png/tiff/gif system libraries, but the
|
||||
# library itself does not depend on them, so should give no problems.
|
||||
|
||||
set(EMBREE_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
||||
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
-DEMBREE_ISPC_SUPPORT=OFF
|
||||
-DEMBREE_TUTORIALS=OFF
|
||||
-DEMBREE_STATIC_LIB=OFF
|
||||
-DEMBREE_RAY_MASK=ON
|
||||
-DEMBREE_FILTER_FUNCTION=ON
|
||||
-DEMBREE_BACKFACE_CULLING=OFF
|
||||
-DEMBREE_BACKFACE_CULLING_CURVES=ON
|
||||
-DEMBREE_BACKFACE_CULLING_SPHERES=ON
|
||||
-DEMBREE_NO_SPLASH=ON
|
||||
-DEMBREE_TASKING_SYSTEM=TBB
|
||||
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-DCOMPILER_HAS_SYCL_SUPPORT=OFF
|
||||
)
|
||||
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
|
||||
set(EMBREE_LLVM_INSTALL_PATH ${LIBDIR}/llvm)
|
||||
|
||||
set(EMBREE_CMAKE_FLAGS
|
||||
-DCMAKE_BUILD_TYPE=${BUILD_MODE}
|
||||
)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
-DCMAKE_CXX_COMPILER=${EMBREE_LLVM_INSTALL_PATH}/bin/clang-cl.exe
|
||||
-DCMAKE_C_COMPILER=${EMBREE_LLVM_INSTALL_PATH}/bin/clang-cl.exe
|
||||
-DCMAKE_C_FLAGS_INIT="--target=arm64-pc-windows-msvc"
|
||||
-DCMAKE_CXX_FLAGS_INIT="--target=arm64-pc-windows-msvc"
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-L"${LIBDIR}/llvm/lib"
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
)
|
||||
|
||||
# We want the VS2019 tools for embree, as they are stable.
|
||||
# We cannot use VS2022 easily, unless we specify an older (unsupported) toolset such as 17.35,
|
||||
# as the newer toolsets mandate LLVM 16, which we cannot use currently,
|
||||
# due to lack of support in OSL and ISPC.
|
||||
set(EMBREE_VCTOOLS_REQUIRED_VERSION 14.29)
|
||||
|
||||
# Extract the list of installed tools that match the required version from the
|
||||
# `VCToolsInstallDir` env var
|
||||
file(TO_CMAKE_PATH $ENV{VCToolsInstallDir} EMBREE_VCTOOLSINSTALLDIR_PATH)
|
||||
cmake_path(GET EMBREE_VCTOOLSINSTALLDIR_PATH PARENT_PATH EMBREE_VCTOOLSDIR_PATH)
|
||||
file(GLOB EMBREE_INSTALLED_VCTOOLS RELATIVE ${EMBREE_VCTOOLSDIR_PATH} ${EMBREE_VCTOOLSDIR_PATH}/${EMBREE_VCTOOLS_REQUIRED_VERSION}*)
|
||||
|
||||
# Check that at least one of the installed tool versions
|
||||
# (there may be different subversions) is present.
|
||||
if(NOT EMBREE_INSTALLED_VCTOOLS)
|
||||
message(FATAL_ERROR
|
||||
"When building for Windows ARM64 platforms, embree requires VC Tools "
|
||||
"${EMBREE_VCTOOLS_REQUIRED_VERSION} to be installed alongside the current version."
|
||||
)
|
||||
endif()
|
||||
|
||||
# Get the last item in the list (latest, when list is sorted)
|
||||
list(SORT EMBREE_INSTALLED_VCTOOLS)
|
||||
list(GET EMBREE_INSTALLED_VCTOOLS -1 EMBREE_VCTOOLS_VERSION)
|
||||
|
||||
# Configure our in file and temporarily store it in the build dir
|
||||
# (with modified extension so nothing else picks it up)
|
||||
# This feels icky, but we haven't called `ExternalProject_Add` yet,
|
||||
# so the embree dir does not yet exist.
|
||||
configure_file(
|
||||
${PATCH_DIR}/embree_Directory.Build.Props.in
|
||||
${BUILD_DIR}/embree_Directory.Build.Props_temp
|
||||
)
|
||||
|
||||
# Update the patch command to copy the configured build props file in
|
||||
set(EMBREE_PATCH_COMMAND
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/embree_Directory.Build.Props_temp
|
||||
${BUILD_DIR}/embree/src/external_embree-build/Directory.Build.Props &&
|
||||
${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
|
||||
)
|
||||
|
||||
# This all only works if we use the VS generator (with `clangcl` toolset), so switch back to that
|
||||
# Note: there is literally no way to get ninja to use a different toolset other than manually
|
||||
# overwriting every env var, or calling a nested `vcvarsall`, both of which are *messy*.
|
||||
set(EMBREE_GENERATOR ${CMAKE_GENERATOR})
|
||||
set(EMBREE_GENERATOR_TOOLSET ClangCL)
|
||||
|
||||
if(TBB_STATIC_LIBRARY)
|
||||
set(EMBREE_EXTRA_ARGS
|
||||
${EMBREE_EXTRA_ARGS}
|
||||
-DEMBREE_TBB_COMPONENT=tbb_static
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_embree
|
||||
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
||||
CMAKE_GENERATOR ${EMBREE_GENERATOR}
|
||||
CMAKE_GENERATOR_TOOLSET ${EMBREE_GENERATOR_TOOLSET}
|
||||
PREFIX ${BUILD_DIR}/embree
|
||||
PATCH_COMMAND ${EMBREE_PATCH_COMMAND}
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${EMBREE_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/embree
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_embree
|
||||
external_tbb
|
||||
external_llvm
|
||||
)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_embree after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/embree/include
|
||||
${HARVEST_TARGET}/embree/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/embree/lib
|
||||
${HARVEST_TARGET}/embree/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/embree/share
|
||||
${HARVEST_TARGET}/embree/share
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/bin/embree4.dll
|
||||
${HARVEST_TARGET}/embree/bin/embree4.dll
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add_Step(external_embree after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/bin/embree4_d.dll
|
||||
${HARVEST_TARGET}/embree/bin/embree4_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/embree/lib/embree4_d.lib
|
||||
${HARVEST_TARGET}/embree/lib/embree4_d.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,24 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(EMHASH_EXTRA_ARGS
|
||||
-DWITH_BENCHMARKS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_emhash
|
||||
URL file://${PACKAGE_DIR}/${EMHASH_FILE}
|
||||
URL_HASH ${EMHASH_HASH_TYPE}=${EMHASH_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/emhash
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/emhash/src/external_emhash <
|
||||
${PATCH_DIR}/emhash.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/emhash
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${EMHASH_EXTRA_ARGS}
|
||||
)
|
||||
@@ -0,0 +1,63 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(EPOXY_LIB_TYPE shared)
|
||||
else()
|
||||
set(EPOXY_LIB_TYPE static)
|
||||
endif()
|
||||
|
||||
set(EPOXY_EXTRA_OPTIONS
|
||||
-Dtests=false
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_epoxy
|
||||
URL file://${PACKAGE_DIR}/${EPOXY_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${EPOXY_HASH_TYPE}=${EPOXY_HASH}
|
||||
PREFIX ${BUILD_DIR}/epoxy
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/epoxy/src/external_epoxy/ <
|
||||
${PATCH_DIR}/epoxy.diff
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
${MESON} setup
|
||||
--prefix ${LIBDIR}/epoxy
|
||||
--libdir lib
|
||||
--default-library ${EPOXY_LIB_TYPE}
|
||||
${MESON_BUILD_TYPE}
|
||||
${EPOXY_EXTRA_OPTIONS}
|
||||
${BUILD_DIR}/epoxy/src/external_epoxy-build
|
||||
${BUILD_DIR}/epoxy/src/external_epoxy
|
||||
|
||||
BUILD_COMMAND ninja
|
||||
INSTALL_COMMAND ninja install
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_epoxy
|
||||
# Needed for `MESON`.
|
||||
external_python_site_packages
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_epoxy after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/epoxy/include
|
||||
${HARVEST_TARGET}/epoxy/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/epoxy/bin/epoxy-0.dll
|
||||
${HARVEST_TARGET}/epoxy/bin/epoxy-0.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/epoxy/lib/epoxy.lib
|
||||
${HARVEST_TARGET}/epoxy/lib/epoxy.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_epoxy epoxy/include epoxy/include "*.h")
|
||||
harvest(external_epoxy epoxy/lib epoxy/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,27 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(EXPAT_EXTRA_ARGS
|
||||
-DEXPAT_BUILD_DOCS=OFF
|
||||
-DEXPAT_BUILD_EXAMPLES=OFF
|
||||
-DEXPAT_BUILD_TESTS=OFF
|
||||
-DEXPAT_BUILD_TOOLS=OFF
|
||||
-DEXPAT_SHARED_LIBS=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_expat
|
||||
URL file://${PACKAGE_DIR}/${EXPAT_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${EXPAT_HASH_TYPE}=${EXPAT_HASH}
|
||||
PREFIX ${BUILD_DIR}/expat
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/expat
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${EXPAT_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/expat
|
||||
SOURCE_SUBDIR expat
|
||||
)
|
||||
100
blender-5.2.0/build_files/build_environment/cmake/ffi.cmake
Normal file
100
blender-5.2.0/build_files/build_environment/cmake/ffi.cmake
Normal file
@@ -0,0 +1,100 @@
|
||||
# SPDX-FileCopyrightText: 2002-2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
if(BLENDER_PLATFORM_WINDOWS_ARM)
|
||||
set(FFI_TARGET_HOST aarch64-w64-mingw32)
|
||||
set(FFI_PYTHON_TARGET_ARCH arm64)
|
||||
set(FFI_MSVC_SH_FLAGS -marm64)
|
||||
else()
|
||||
set(FFI_TARGET_HOST x86_64-w64-mingw32)
|
||||
set(FFI_PYTHON_TARGET_ARCH amd64)
|
||||
set(FFI_MSVC_SH_FLAGS -m64)
|
||||
endif()
|
||||
|
||||
set(CONFIGURE_ENV_FFI ${CONFIGURE_ENV} &&
|
||||
set CC=${BUILD_DIR}/ffi/src/external_ffi/msvcc.sh ${FFI_MSVC_SH_FLAGS} &&
|
||||
set CXX=${BUILD_DIR}/ffi/src/external_ffi/msvcc.sh ${FFI_MSVC_SH_FLAGS} &&
|
||||
set LD=link &&
|
||||
set CPP=cl -nologo -EP &&
|
||||
set CXXCPP=cl -nologo -EP &&
|
||||
set CPPFLAGS=-DFFI_BUILDING_DLL
|
||||
)
|
||||
# `make install` just refuses to do its job without erroring
|
||||
# out, "fine ,then don't". We'll pick the files we need ourselves
|
||||
# from the build folder in the after install cmake step.
|
||||
set(FFI_INSTALL echo .)
|
||||
set(FFI_EXTRA_ARGS
|
||||
--disable-docs
|
||||
--disable-multi-os-directory
|
||||
--enable-shared=yes
|
||||
--enable-static=no
|
||||
--build=${FFI_TARGET_HOST}
|
||||
--host=${FFI_TARGET_HOST}
|
||||
)
|
||||
else()
|
||||
set(CONFIGURE_ENV_FFI ${CONFIGURE_ENV})
|
||||
set(FFI_INSTALL make install)
|
||||
set(FFI_EXTRA_ARGS
|
||||
--disable-multi-os-directory
|
||||
--enable-shared=no
|
||||
--enable-static=yes
|
||||
--with-pic
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_ffi
|
||||
URL file://${PACKAGE_DIR}/${FFI_FILE}
|
||||
URL_HASH ${FFI_HASH_TYPE}=${FFI_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/ffi
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV_FFI} &&
|
||||
cd ${BUILD_DIR}/ffi/src/external_ffi/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/ffi
|
||||
--libdir=${LIBDIR}/ffi/lib/
|
||||
${FFI_EXTRA_ARGS}
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV_FFI} &&
|
||||
cd ${BUILD_DIR}/ffi/src/external_ffi/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/ffi/src/external_ffi/ &&
|
||||
${FFI_INSTALL}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ffi
|
||||
)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
ExternalProject_Add_Step(external_ffi after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/ffi/lib/libffi.a
|
||||
${LIBDIR}/ffi/lib/libffi_pic.a
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
elseif(WIN32)
|
||||
# Since there are currently no other consumers of ffi
|
||||
# we populate the libdir in the way python wants to see
|
||||
# it so we don't have to do this later on in the build
|
||||
ExternalProject_Add_Step(external_ffi after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/ffi/src/external_ffi/${FFI_TARGET_HOST}/.libs/libffi-8.dll
|
||||
${LIBDIR}/ffi/${FFI_PYTHON_TARGET_ARCH}/libffi-8.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/ffi/src/external_ffi/${FFI_TARGET_HOST}/.libs/libffi-8.lib
|
||||
${LIBDIR}/ffi/${FFI_PYTHON_TARGET_ARCH}/libffi-8.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/ffi/src/external_ffi/${FFI_TARGET_HOST}/include/ffi.h
|
||||
${LIBDIR}/ffi/${FFI_PYTHON_TARGET_ARCH}/include/ffi.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/ffi/src/external_ffi/${FFI_TARGET_HOST}/include/ffitarget.h
|
||||
${LIBDIR}/ffi/${FFI_PYTHON_TARGET_ARCH}/include/ffitarget.h
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/ffi/src/external_ffi/${FFI_TARGET_HOST}/fficonfig.h
|
||||
${LIBDIR}/ffi/${FFI_PYTHON_TARGET_ARCH}/include/fficonfig.h
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
283
blender-5.2.0/build_files/build_environment/cmake/ffmpeg.cmake
Normal file
283
blender-5.2.0/build_files/build_environment/cmake/ffmpeg.cmake
Normal file
@@ -0,0 +1,283 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(NOT WIN32)
|
||||
set(temp_LIBDIR ${LIBDIR})
|
||||
set(LIBDIR_FLAG "-L")
|
||||
else()
|
||||
set(temp_LIBDIR ${msys2_LIBDIR})
|
||||
set(LIBDIR_FLAG "-LIBPATH:")
|
||||
endif()
|
||||
|
||||
set(FFMPEG_CFLAGS "\
|
||||
-I${temp_LIBDIR}/lame/include \
|
||||
-I${temp_LIBDIR}/openjpeg/include/ \
|
||||
-I${temp_LIBDIR}/ogg/include \
|
||||
-I${temp_LIBDIR}/vorbis/include \
|
||||
-I${temp_LIBDIR}/theora/include \
|
||||
-I${temp_LIBDIR}/opus/include \
|
||||
-I${temp_LIBDIR}/vpx/include \
|
||||
-I${temp_LIBDIR}/x264/include \
|
||||
-I${temp_LIBDIR}/zlib/include \
|
||||
-I${temp_LIBDIR}/aom/include \
|
||||
-I${temp_LIBDIR}/x265/include"
|
||||
)
|
||||
set(FFMPEG_LDFLAGS "\
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/lame/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/openjpeg/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/ogg/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/vorbis/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/theora/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/opus/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/vpx/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/x264/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/x265/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/zlib/lib \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/aom/lib"
|
||||
)
|
||||
|
||||
set(FFMPEG_PATCH_FILE "")
|
||||
|
||||
if(WIN32)
|
||||
set(FFMPEG_CFLAGS "\
|
||||
${FFMPEG_CFLAGS} \
|
||||
-I${temp_LIBDIR}/openjpeg_msvc/include/openjpeg-2.5 \
|
||||
-I${temp_LIBDIR}/opus/include/opus \
|
||||
-DOPJ_STATIC \
|
||||
-MD \
|
||||
-UHAVE_UNISTD_H"
|
||||
)
|
||||
|
||||
set(FFMPEG_LDFLAGS "\
|
||||
${FFMPEG_LDFLAGS} \
|
||||
${LIBDIR_FLAG}${temp_LIBDIR}/openjpeg_msvc/lib \
|
||||
ucrt.lib"
|
||||
)
|
||||
|
||||
# As we now use MSVC on windows, pkgconfig is not really a viable option for many packages
|
||||
# so this patch removes those checks in favour of looking for the libs directly.
|
||||
set(FFMPEG_PATCH_FILE ${PATCH_DIR}/ffmpeg_windows.diff)
|
||||
else()
|
||||
# OpenJpeg is compiled with pthread support on Linux, which is all fine and is what we
|
||||
# want for maximum runtime performance, but due to static nature of that library we
|
||||
# need to force ffmpeg to link against pthread, otherwise test program used by autoconf
|
||||
# will fail. This patch does that in a way that is compatible with multiple distributions.
|
||||
set(FFMPEG_PATCH_FILE ${PATCH_DIR}/ffmpeg.diff)
|
||||
endif()
|
||||
|
||||
set(FFMPEG_EXTRA_FLAGS
|
||||
--pkg-config-flags=--static
|
||||
--extra-cflags=${FFMPEG_CFLAGS}
|
||||
--extra-ldflags=${FFMPEG_LDFLAGS}
|
||||
)
|
||||
|
||||
set(FFMPEG_ENV "")
|
||||
if(NOT WIN32)
|
||||
set(FFMPEG_ENV "PKG_CONFIG_PATH=\
|
||||
${temp_LIBDIR}/openjpeg/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/x264/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/vorbis/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/ogg/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/vpx/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/theora/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/openjpeg/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/opus/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/aom/lib/pkgconfig:\
|
||||
${temp_LIBDIR}/x265/lib/pkgconfig:"
|
||||
)
|
||||
endif()
|
||||
|
||||
unset(temp_LIBDIR)
|
||||
|
||||
if(WIN32)
|
||||
set(FFMPEG_EXTRA_FLAGS
|
||||
${FFMPEG_EXTRA_FLAGS}
|
||||
--disable-static
|
||||
--enable-shared
|
||||
--enable-w32threads
|
||||
--disable-pthreads
|
||||
--enable-libopenjpeg
|
||||
--disable-mediafoundation
|
||||
--toolchain=msvc
|
||||
--target-os=win32
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(FFMPEG_EXTRA_FLAGS
|
||||
${FFMPEG_EXTRA_FLAGS}
|
||||
--arch=aarch64
|
||||
"--as=${DOWNLOAD_DIR}/msys2/msys64/usr/bin/gas-preprocessor.pl -arch aarch64 -as-type armasm -- armasm64 -nologo"
|
||||
--cc=${LIBDIR}/llvm/bin/clang-cl.exe
|
||||
--cxx=${LIBDIR}/llvm/bin/clang-cl.exe
|
||||
--windres=${LIBDIR}/llvm/bin/llvm-rc.exe
|
||||
--nm=${LIBDIR}/llvm/bin/llvm-nm.exe
|
||||
--ar='${LIBDIR}/llvm/bin/llvm-ar.exe'
|
||||
--ranlib=${LIBDIR}/llvm/bin/llvm-ranlib.exe
|
||||
)
|
||||
else()
|
||||
set(FFMPEG_EXTRA_FLAGS
|
||||
${FFMPEG_EXTRA_FLAGS}
|
||||
--disable-inline-asm
|
||||
--arch=x86_64
|
||||
)
|
||||
endif()
|
||||
|
||||
set(FFMPEG_CONFIGURE_COMMAND ${CONFIGURE_ENV_MSVC})
|
||||
else()
|
||||
set(FFMPEG_EXTRA_FLAGS
|
||||
${FFMPEG_EXTRA_FLAGS}
|
||||
--enable-static
|
||||
--disable-shared
|
||||
--enable-libopenjpeg
|
||||
)
|
||||
|
||||
set(FFMPEG_CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL})
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(FFMPEG_EXTRA_FLAGS
|
||||
${FFMPEG_EXTRA_FLAGS}
|
||||
--target-os=darwin
|
||||
--x86asmexe=${LIBDIR}/nasm/bin/nasm
|
||||
)
|
||||
elseif(UNIX)
|
||||
set(FFMPEG_EXTRA_FLAGS
|
||||
${FFMPEG_EXTRA_FLAGS}
|
||||
--x86asmexe=${LIBDIR}/nasm/bin/nasm
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_ffmpeg
|
||||
URL file://${PACKAGE_DIR}/${FFMPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FFMPEG_HASH_TYPE}=${FFMPEG_HASH}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/ffmpeg/src/external_ffmpeg <
|
||||
${FFMPEG_PATCH_FILE}
|
||||
|
||||
PREFIX ${BUILD_DIR}/ffmpeg
|
||||
|
||||
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE_COMMAND} &&
|
||||
cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ &&
|
||||
${FFMPEG_ENV} ${CONFIGURE_COMMAND_NO_TARGET} ${FFMPEG_EXTRA_FLAGS}
|
||||
--disable-lzma
|
||||
--disable-vdpau
|
||||
--disable-bzlib
|
||||
--disable-libgsm
|
||||
--disable-libspeex
|
||||
--enable-libvpx
|
||||
--enable-libopus
|
||||
--prefix=${LIBDIR}/ffmpeg
|
||||
--enable-libtheora
|
||||
--enable-libvorbis
|
||||
--enable-zlib
|
||||
--enable-stripping
|
||||
--enable-runtime-cpudetect
|
||||
--disable-vaapi
|
||||
--disable-nonfree
|
||||
--enable-gpl
|
||||
--enable-libmp3lame
|
||||
--disable-librtmp
|
||||
--enable-libx264
|
||||
--enable-libx265
|
||||
--enable-libaom
|
||||
--disable-libopencore-amrnb
|
||||
--disable-libopencore-amrwb
|
||||
--disable-libdc1394
|
||||
--disable-version3
|
||||
--disable-debug
|
||||
--enable-optimizations
|
||||
--enable-ffplay
|
||||
--disable-openssl
|
||||
--disable-securetransport
|
||||
--disable-indev=avfoundation
|
||||
--disable-indev=qtkit
|
||||
--disable-sdl2
|
||||
--disable-gnutls
|
||||
--disable-videotoolbox
|
||||
--disable-libxcb
|
||||
--disable-xlib
|
||||
--disable-audiotoolbox
|
||||
--disable-cuvid
|
||||
--disable-nvenc
|
||||
--disable-indev=jack
|
||||
--disable-indev=alsa
|
||||
--disable-outdev=alsa
|
||||
--disable-sndio
|
||||
--disable-doc
|
||||
|
||||
BUILD_COMMAND ${FFMPEG_CONFIGURE_COMMAND} &&
|
||||
cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${FFMPEG_CONFIGURE_COMMAND} &&
|
||||
cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ &&
|
||||
make install
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/ffmpeg
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ffmpeg
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(external_ffmpeg PROPERTIES FOLDER Mingw)
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
external_ffmpeg
|
||||
external_zlib
|
||||
external_x264
|
||||
external_x265
|
||||
external_opus
|
||||
external_vpx
|
||||
external_theora
|
||||
external_vorbis
|
||||
external_ogg
|
||||
external_lame
|
||||
external_aom
|
||||
external_sndfile
|
||||
external_flac
|
||||
)
|
||||
if(WIN32)
|
||||
add_dependencies(
|
||||
external_ffmpeg
|
||||
external_zlib
|
||||
external_openjpeg_msvc
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
add_dependencies(
|
||||
external_ffmpeg
|
||||
external_llvm
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
if(UNIX)
|
||||
add_dependencies(
|
||||
external_ffmpeg
|
||||
external_nasm
|
||||
external_openjpeg
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_ffmpeg after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/ffmpeg/include
|
||||
${HARVEST_TARGET}/ffmpeg/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/ffmpeg/bin
|
||||
${HARVEST_TARGET}/ffmpeg/lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_ffmpeg ffmpeg/include ffmpeg/include "*.h")
|
||||
harvest(external_ffmpeg ffmpeg/lib ffmpeg/lib "*.a")
|
||||
endif()
|
||||
93
blender-5.2.0/build_files/build_environment/cmake/fftw.cmake
Normal file
93
blender-5.2.0/build_files/build_environment/cmake/fftw.cmake
Normal file
@@ -0,0 +1,93 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(FFTW_EXTRA_ARGS "")
|
||||
|
||||
function(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()
|
||||
endfunction()
|
||||
|
||||
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()
|
||||
62
blender-5.2.0/build_files/build_environment/cmake/flac.cmake
Normal file
62
blender-5.2.0/build_files/build_environment/cmake/flac.cmake
Normal file
@@ -0,0 +1,62 @@
|
||||
# SPDX-FileCopyrightText: 2002-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(NOT WIN32)
|
||||
ExternalProject_Add(external_flac
|
||||
URL file://${PACKAGE_DIR}/${FLAC_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FLAC_HASH_TYPE}=${FLAC_HASH}
|
||||
PREFIX ${BUILD_DIR}/flac
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/flac/src/external_flac/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/flac --disable-shared --enable-static
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/flac/src/external_flac/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/flac/src/external_flac/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/flac
|
||||
)
|
||||
|
||||
harvest(external_flac flac/lib sndfile/lib "libFLAC.a")
|
||||
else()
|
||||
set(FLAC_CXX_FLAGS "-DFLAC__NO_DLL=ON")
|
||||
|
||||
set(FLAC_EXTRA_ARGS
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0074=NEW
|
||||
-DBUILD_PROGRAMS=OFF
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_DOCS=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
-DINSTALL_MANPAGES=OFF
|
||||
-DOgg_ROOT=${LIBDIR}/ogg
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DCMAKE_C_FLAGS_RELEASE=${FLAC_CXX_FLAGS}
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_flac
|
||||
URL file://${PACKAGE_DIR}/${FLAC_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FLAC_HASH_TYPE}=${FLAC_HASH}
|
||||
PREFIX ${BUILD_DIR}/flac
|
||||
CMAKE_GENERATOR "Ninja"
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/flac
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${FLAC_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/flac
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_flac
|
||||
external_ogg
|
||||
)
|
||||
endif()
|
||||
38
blender-5.2.0/build_files/build_environment/cmake/flex.cmake
Normal file
38
blender-5.2.0/build_files/build_environment/cmake/flex.cmake
Normal file
@@ -0,0 +1,38 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Generated configuration files use an old `aclocal-1.15` on RockyLinux8.
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(_autoconf_cmd_optional ./autogen.sh &&)
|
||||
else()
|
||||
set(_autoconf_cmd_optional "")
|
||||
endif()
|
||||
|
||||
|
||||
ExternalProject_Add(external_flex
|
||||
URL file://${PACKAGE_DIR}/${FLEX_FILE}
|
||||
URL_HASH ${FLEX_HASH_TYPE}=${FLEX_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/flex
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p1 -d
|
||||
${BUILD_DIR}/flex/src/external_flex <
|
||||
${PATCH_DIR}/flex_gcc14.diff
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/flex/src/external_flex/ &&
|
||||
${_autoconf_cmd_optional} ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/flex
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/flex/src/external_flex/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/flex/src/external_flex/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/flex
|
||||
)
|
||||
|
||||
unset(_autoconf_cmd_optional)
|
||||
@@ -0,0 +1,27 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(FLEXBISON_EXTRA_ARGS "")
|
||||
|
||||
ExternalProject_Add(external_flexbison
|
||||
URL file://${PACKAGE_DIR}/${FLEXBISON_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FLEXBISON_HASH_TYPE}=${FLEXBISON_HASH}
|
||||
PREFIX ${BUILD_DIR}/flexbison
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/flexbison
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${FLEXBISON_EXTRA_ARGS}
|
||||
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
|
||||
INSTALL_COMMAND
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${BUILD_DIR}/flexbison/src/external_flexbison/
|
||||
${LIBDIR}/flexbison/
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/flexbison
|
||||
)
|
||||
37
blender-5.2.0/build_files/build_environment/cmake/fmt.cmake
Normal file
37
blender-5.2.0/build_files/build_environment/cmake/fmt.cmake
Normal file
@@ -0,0 +1,37 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(FMT_EXTRA_ARGS
|
||||
-DFMT_TEST=OFF
|
||||
-DFMT_DOC=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_fmt
|
||||
URL file://${PACKAGE_DIR}/${FMT_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FMT_HASH_TYPE}=${FMT_HASH}
|
||||
PREFIX ${BUILD_DIR}/fmt
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/fmt
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${FMT_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/fmt
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_fmt after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/fmt/
|
||||
${HARVEST_TARGET}/fmt
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
|
||||
else()
|
||||
harvest(external_fmt fmt/include fmt/include "*.h")
|
||||
harvest(external_fmt fmt/lib/cmake/fmt fmt/lib/cmake/fmt "*.cmake")
|
||||
harvest(external_fmt fmt/lib fmt/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,65 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(FREETYPE_LIB_PREFIX "")
|
||||
else()
|
||||
set(FREETYPE_LIB_PREFIX "lib")
|
||||
endif()
|
||||
|
||||
set(FREETYPE_EXTRA_ARGS
|
||||
-DCMAKE_RELEASE_POSTFIX:STRING=2ST
|
||||
-DCMAKE_DEBUG_POSTFIX:STRING=2ST_d
|
||||
-DFT_DISABLE_BZIP2=ON
|
||||
-DFT_DISABLE_HARFBUZZ=ON
|
||||
-DFT_DISABLE_PNG=ON
|
||||
-DFT_REQUIRE_BROTLI=ON
|
||||
-DFT_REQUIRE_ZLIB=ON
|
||||
-DBROTLIDEC_INCLUDE_DIRS=${LIBDIR}/brotli/include
|
||||
-DBROTLIDEC_LIBRARIES=${LIBDIR}/brotli/lib/${FREETYPE_LIB_PREFIX}brotlicommon-static${LIBEXT}
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_freetype
|
||||
URL file://${PACKAGE_DIR}/${FREETYPE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${FREETYPE_HASH_TYPE}=${FREETYPE_HASH}
|
||||
PREFIX ${BUILD_DIR}/freetype
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/freetype
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${FREETYPE_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/freetype
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_freetype
|
||||
external_brotli
|
||||
external_zlib
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_freetype after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/freetype
|
||||
${HARVEST_TARGET}/freetype
|
||||
|
||||
# `harfbuzz` *NEEDS* to find `freetype.lib` and will not be convinced to take
|
||||
# alternative names so just give it what it wants.
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/freetype/lib/freetype2st.lib
|
||||
${LIBDIR}/freetype/lib/freetype.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_freetype freetype/include freetype/include "*.h")
|
||||
harvest(external_freetype freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
||||
endif()
|
||||
@@ -0,0 +1,59 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(FRIBIDI_CONFIGURE_ENV ${CONFIGURE_ENV_MSVC})
|
||||
else()
|
||||
set(FRIBIDI_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
endif()
|
||||
|
||||
set(FRIBIDI_EXTRA_OPTIONS
|
||||
-Ddocs=false
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_fribidi
|
||||
URL file://${PACKAGE_DIR}/${FRIBIDI_FILE}
|
||||
URL_HASH ${FRIBIDI_HASH_TYPE}=${FRIBIDI_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/fribidi
|
||||
|
||||
CONFIGURE_COMMAND ${FRIBIDI_CONFIGURE_ENV} &&
|
||||
${MESON} setup
|
||||
--prefix ${LIBDIR}/fribidi
|
||||
--libdir lib
|
||||
--default-library static
|
||||
${MESON_BUILD_TYPE}
|
||||
${FRIBIDI_EXTRA_OPTIONS}
|
||||
${BUILD_DIR}/fribidi/src/external_fribidi-build
|
||||
${BUILD_DIR}/fribidi/src/external_fribidi
|
||||
|
||||
BUILD_COMMAND ninja
|
||||
INSTALL_COMMAND ninja install
|
||||
INSTALL_DIR ${LIBDIR}/fribidi
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_fribidi
|
||||
external_python
|
||||
# Needed for `MESON`.
|
||||
external_python_site_packages
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_fribidi after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/fribidi/include
|
||||
${HARVEST_TARGET}/fribidi/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/fribidi/lib/libfribidi.a
|
||||
${HARVEST_TARGET}/fribidi/lib/libfribidi.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_fribidi fribidi/include fribidi/include "*.h")
|
||||
harvest(external_fribidi fribidi/lib fribidi/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,20 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(GMMLIB_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_gmmlib
|
||||
URL file://${PACKAGE_DIR}/${GMMLIB_FILE}
|
||||
URL_HASH ${GMMLIB_HASH_TYPE}=${GMMLIB_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/gmmlib
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/gmmlib
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${GMMLIB_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/gmmlib
|
||||
)
|
||||
164
blender-5.2.0/build_files/build_environment/cmake/gmp.cmake
Normal file
164
blender-5.2.0/build_files/build_environment/cmake/gmp.cmake
Normal file
@@ -0,0 +1,164 @@
|
||||
# SPDX-FileCopyrightText: 2020-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(GMP_EXTRA_ARGS -enable-cxx)
|
||||
|
||||
if(WIN32)
|
||||
cmake_to_msys_path("${BUILD_DIR}/gmp/src/external_gmp/compile" compilescript_path)
|
||||
|
||||
set(arlib_joint_path "ar-lib lib.exe")
|
||||
set(GMP_CFLAGS "-nologo -W3 -utf-8 -MP -MD -Z7 -Ob0 -Od -Xcompiler -RTC1 -DWIN32 -D_WINDOWS")
|
||||
set(GMP_CC_CXX "${compilescript_path} cl")
|
||||
set(GMP_NM "dumpbin.exe -symbols -headers")
|
||||
|
||||
set(GMP_CONFIGURE_ENV
|
||||
set AR=${arlib_joint_path} &&
|
||||
set NM=${GMP_NM} &&
|
||||
${CONFIGURE_ENV_NO_PERL} &&
|
||||
set CC=${GMP_CC_CXX} &&
|
||||
set CXX=${GMP_CC_CXX} &&
|
||||
set CFLAGS=${GMP_CFLAGS} &&
|
||||
set AS=:
|
||||
)
|
||||
|
||||
set(GMP_OPTIONS
|
||||
--disable-static
|
||||
--enable-shared
|
||||
--enable-cxx
|
||||
--verbose
|
||||
gmp_cv_check_libm_for_build=no
|
||||
ac_cv_prog_LEX=:
|
||||
ac_cv_prog_YACC=:
|
||||
ac_cv_prog_ac_ct_STRIP=:
|
||||
ac_cv_prog_RANLIB=:
|
||||
lt_cv_to_host_file_cmd=func_convert_file_noop
|
||||
lt_cv_to_tool_file_cmd=func_convert_file_noop
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(GMP_OPTIONS
|
||||
${GMP_OPTIONS}
|
||||
--enable-assembly=no
|
||||
--build=aarch64-pc-mingw32
|
||||
)
|
||||
else()
|
||||
set(GMP_OPTIONS
|
||||
${GMP_OPTIONS}
|
||||
--enable-assembly=no
|
||||
--build=x86_64-pc-mingw32
|
||||
ac_cv_func_memset=yes
|
||||
gmp_cv_asm_w32=.word
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
set(GMP_CONFIGURE_ENV ${CONFIGURE_ENV_NO_PERL})
|
||||
set(GMP_OPTIONS --enable-static --disable-shared )
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
if(NOT (APPLE AND BLENDER_PLATFORM_ARM))
|
||||
set(GMP_OPTIONS ${GMP_OPTIONS} --with-pic)
|
||||
endif()
|
||||
if(NOT (APPLE OR BLENDER_PLATFORM_ARM))
|
||||
set(GMP_OPTIONS ${GMP_OPTIONS} --enable-fat)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Boolean crashes with Arm assembly, see #103423.
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(GMP_OPTIONS
|
||||
${GMP_OPTIONS}
|
||||
--disable-assembly
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_gmp
|
||||
URL file://${PACKAGE_DIR}/${GMP_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${GMP_HASH_TYPE}=${GMP_HASH}
|
||||
PREFIX ${BUILD_DIR}/gmp
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/gmp/src/external_gmp <
|
||||
${PATCH_DIR}/gmp.diff
|
||||
|
||||
CONFIGURE_COMMAND ${GMP_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/gmp/src/external_gmp/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/gmp ${GMP_OPTIONS} ${GMP_EXTRA_ARGS}
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} &&
|
||||
cd ${BUILD_DIR}/gmp/src/external_gmp/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} &&
|
||||
cd ${BUILD_DIR}/gmp/src/external_gmp/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/gmp
|
||||
)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||
ExternalProject_Add_Step(external_gmp after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/gmp/bin/gmp-10.dll
|
||||
${HARVEST_TARGET}/gmp/lib/gmp-10.dll
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/gmp/lib/gmp.dll.lib
|
||||
${HARVEST_TARGET}/gmp/lib/gmp.dll.lib
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/gmp/include
|
||||
${HARVEST_TARGET}/gmp/include
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
# gmpxx is somewhat special, it builds on top of the C style gmp library but exposes C++ bindings
|
||||
# given the C++ ABI between MSVC and mingw is not compatible, we need to build the bindings
|
||||
# with MSVC, while GMP can only be built with mingw.
|
||||
ExternalProject_Add(external_gmpxx
|
||||
URL file://${PACKAGE_DIR}/${GMP_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${GMP_HASH_TYPE}=${GMP_HASH}
|
||||
PREFIX ${BUILD_DIR}/gmpxx
|
||||
|
||||
# Intentionally empty, COMMAND is used but it must follow a PATCH_COMMAND.
|
||||
PATCH_COMMAND
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${PATCH_DIR}/cmakelists_gmpxx.txt
|
||||
${BUILD_DIR}/gmpxx/src/external_gmpxx/CMakeLists.txt &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${PATCH_DIR}/config_gmpxx.h
|
||||
${BUILD_DIR}/gmpxx/src/external_gmpxx/config.h
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/gmpxx
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
-DGMP_LIBRARY=${BUILD_DIR}/gmp/src/external_gmp/.libs/gmp.dll.lib
|
||||
-DGMP_INCLUDE_DIR=${BUILD_DIR}/gmp/src/external_gmp
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/gmpxx
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_gmpxx
|
||||
external_gmp
|
||||
)
|
||||
|
||||
ExternalProject_Add_Step(external_gmpxx after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/gmpxx/
|
||||
${HARVEST_TARGET}/gmp
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_gmp gmp/include gmp/include "*.h")
|
||||
harvest(external_gmp gmp/lib gmp/lib "*.a")
|
||||
endif()
|
||||
85
blender-5.2.0/build_files/build_environment/cmake/grype.yaml
Normal file
85
blender-5.2.0/build_files/build_environment/cmake/grype.yaml
Normal file
@@ -0,0 +1,85 @@
|
||||
# Remarks: NotAffected / FalsePositive / Mitigated
|
||||
|
||||
ignore:
|
||||
# [NotAffected] issue in convert command line tool not used by blender
|
||||
- vulnerability: CVE-2016-9675
|
||||
# [NotAffected] issue in pygresql not used by blender
|
||||
- vulnerability: CVE-2009-2940
|
||||
# [NotAffected] issue in odoo not used by blender
|
||||
- vulnerability: CVE-2020-29396
|
||||
# [NotAffected] issue in django not used by blender
|
||||
- vulnerability: CVE-2021-32052
|
||||
# [NotAffected] already fixed in libexpat version used
|
||||
- vulnerability: CVE-2009-3720
|
||||
# [NotAffected] not used in blender and not considered a bug upstream
|
||||
- vulnerability: CVE-2023-36632
|
||||
# [NotAffected] not used in blender
|
||||
- vulnerability: CVE-2023-27043
|
||||
# [FalsePositive] fixed in 3.11.10 upstream fix gh-121285
|
||||
- vulnerability: CVE-2024-6232
|
||||
# [FalsePositive] fixed in 3.11.10 upstream fix gh-123067
|
||||
- vulnerability: CVE-2024-7592
|
||||
# [NotAffected] not a blender specific issue and pip is inherently affected by malicious packages
|
||||
- vulnerability: CVE-2018-20225
|
||||
# [NotAffected] issue in mutt not used by blender
|
||||
- vulnerability: CVE-2009-1390
|
||||
# [NotAffected] issue in mutt not used by blender
|
||||
- vulnerability: CVE-2009-3765
|
||||
# [NotAffected] issue in mutt not used by blender
|
||||
- vulnerability: CVE-2009-3766
|
||||
# [NotAffected] issue in ldap not used by blender
|
||||
- vulnerability: CVE-2009-3767
|
||||
# [NotAffected] issue in apache not used by blender
|
||||
- vulnerability: CVE-2019-0190
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-2056
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-2057
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-2058
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-2519
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-2520
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-2521
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-2953
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-34526
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-3570
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-3597
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-3598
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-3599
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-3626
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2022-3627
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2023-40745
|
||||
# [NotAffected] issue in tiff command line tool not used by blender
|
||||
- vulnerability: CVE-2023-41175
|
||||
# [NotAffected] not affecting blender and not considered a security issue upstream
|
||||
- vulnerability: CVE-2016-3709
|
||||
# [NotAffected] not affecting blender and not considered a security issue upstream
|
||||
- vulnerability: CVE-2023-39615
|
||||
# [NotAffected] already fixed in the libxml2 version used
|
||||
- vulnerability: CVE-2020-7595
|
||||
# [Mitigated] patched using upstream commit 561a9c25298e
|
||||
- vulnerability: CVE-2021-43618
|
||||
# [NotAffected] only affects SQLITE_ENABLE_STAT4 compile option not used by blender or python
|
||||
- vulnerability: CVE-2022-35737
|
||||
# [NotAffected] does not affect blender use of sqlite
|
||||
- vulnerability: CVE-2023-7104
|
||||
# [NotAffected] does not affect blender use of sqlite
|
||||
- vulnerability: CVE-2024-0232
|
||||
# [NotAffected] only affects minizip not used by blender
|
||||
- vulnerability: CVE-2023-45853
|
||||
# [Mitigated] patched using upstream PR 1045
|
||||
- vulnerability: CVE-2024-50612
|
||||
# [NotAffected] all mp3 handling in blender goes through ffmpeg
|
||||
- vulnerability: CVE-2024-50613
|
||||
@@ -0,0 +1,82 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(HARFBUZZ_CONFIGURE_ENV ${CONFIGURE_ENV_MSVC})
|
||||
set(HARFBUZZ_PKG_ENV FREETYPE_DIR=${LIBDIR}/freetype)
|
||||
else()
|
||||
set(HARFBUZZ_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
set(HARFBUZZ_PKG_ENV "PKG_CONFIG_PATH=\
|
||||
${LIBDIR}/freetype/lib/pkgconfig:\
|
||||
${LIBDIR}/brotli/lib/pkgconfig:\
|
||||
${LIBDIR}/lib/python3.10/pkgconfig:\
|
||||
$PKG_CONFIG_PATH"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(HARFBUZZ_EXTRA_OPTIONS
|
||||
-Dtests=disabled
|
||||
-Dfreetype=enabled
|
||||
-Dglib=disabled
|
||||
-Dgobject=disabled
|
||||
# Only used for command line utilities,
|
||||
# disable as this would add an additional & unnecessary build-dependency.
|
||||
-Dcairo=disabled
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_harfbuzz
|
||||
URL file://${PACKAGE_DIR}/${HARFBUZZ_FILE}
|
||||
URL_HASH ${HARFBUZZ_HASH_TYPE}=${HARFBUZZ_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/harfbuzz
|
||||
|
||||
CONFIGURE_COMMAND ${HARFBUZZ_CONFIGURE_ENV} &&
|
||||
${CMAKE_COMMAND} -E env ${HARFBUZZ_PKG_ENV} ${MESON} setup
|
||||
--prefix ${LIBDIR}/harfbuzz
|
||||
--libdir lib
|
||||
--default-library static
|
||||
${MESON_BUILD_TYPE}
|
||||
${HARFBUZZ_EXTRA_OPTIONS}
|
||||
${BUILD_DIR}/harfbuzz/src/external_harfbuzz-build
|
||||
${BUILD_DIR}/harfbuzz/src/external_harfbuzz
|
||||
|
||||
BUILD_COMMAND ninja
|
||||
INSTALL_COMMAND ninja install
|
||||
INSTALL_DIR ${LIBDIR}/harfbuzz
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_harfbuzz
|
||||
external_python
|
||||
external_freetype
|
||||
# Needed for `MESON`.
|
||||
external_python_site_packages
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_harfbuzz after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/harfbuzz/include
|
||||
${HARVEST_TARGET}/harfbuzz/include
|
||||
# We do not use the subset API currently, so copying only the main library will suffice for now
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/harfbuzz/lib/libharfbuzz.a
|
||||
${HARVEST_TARGET}/harfbuzz/lib/libharfbuzz.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_harfbuzz after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/harfbuzz/lib/libharfbuzz.a
|
||||
${HARVEST_TARGET}/harfbuzz/lib/libharfbuzz_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_harfbuzz harfbuzz/include harfbuzz/include "*.h")
|
||||
harvest(external_harfbuzz harfbuzz/lib harfbuzz/lib "*.a")
|
||||
endif()
|
||||
40
blender-5.2.0/build_files/build_environment/cmake/haru.cmake
Normal file
40
blender-5.2.0/build_files/build_environment/cmake/haru.cmake
Normal file
@@ -0,0 +1,40 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(HARU_EXTRA_ARGS
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DLIBHPDF_EXAMPLES=OFF
|
||||
-DLIBHPDF_ENABLE_EXCEPTIONS=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_haru
|
||||
URL file://${PACKAGE_DIR}/${HARU_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${HARU_HASH_TYPE}=${HARU_HASH}
|
||||
PREFIX ${BUILD_DIR}/haru
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/haru
|
||||
${DEFAULT_CMAKE_FLAGS} ${HARU_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/haru
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_haru after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/haru/include
|
||||
${HARVEST_TARGET}/haru/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/haru/lib/hpdf.lib
|
||||
${HARVEST_TARGET}/haru/lib/hpdf.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_haru haru/include haru/include "*.h")
|
||||
harvest(external_haru haru/lib haru/lib "*.a")
|
||||
endif()
|
||||
129
blender-5.2.0/build_files/build_environment/cmake/harvest.cmake
Normal file
129
blender-5.2.0/build_files/build_environment/cmake/harvest.cmake
Normal file
@@ -0,0 +1,129 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
########################################################################
|
||||
# Copy all generated files to the proper structure as blender prefers
|
||||
########################################################################
|
||||
|
||||
if(NOT DEFINED HARVEST_TARGET)
|
||||
set(HARVEST_TARGET ${CMAKE_CURRENT_SOURCE_DIR}/Harvest)
|
||||
endif()
|
||||
message(STATUS "HARVEST_TARGET = ${HARVEST_TARGET}")
|
||||
|
||||
if(WIN32)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
add_custom_target(Harvest_Release_Results
|
||||
COMMAND # JPEG rename lib-file + copy include.
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/jpeg/lib/jpeg-static.lib
|
||||
${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/jpeg/include/
|
||||
${HARVEST_TARGET}/jpeg/include/ &&
|
||||
|
||||
# PNG.
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/png/lib/libpng16_static.lib
|
||||
${HARVEST_TARGET}/png/lib/libpng.lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/png/include/
|
||||
${HARVEST_TARGET}/png/include/
|
||||
)
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
function(harvest project from to)
|
||||
set(pattern "")
|
||||
foreach(f ${ARGN})
|
||||
set(pattern ${f})
|
||||
endforeach()
|
||||
|
||||
if(pattern STREQUAL "")
|
||||
get_filename_component(dirpath ${to} DIRECTORY)
|
||||
get_filename_component(filename ${to} NAME)
|
||||
install(
|
||||
FILES ${LIBDIR}/${from}
|
||||
DESTINATION ${HARVEST_TARGET}/${dirpath}
|
||||
RENAME ${filename}
|
||||
)
|
||||
else()
|
||||
install(
|
||||
DIRECTORY ${LIBDIR}/${from}/
|
||||
DESTINATION ${HARVEST_TARGET}/${to}
|
||||
USE_SOURCE_PERMISSIONS
|
||||
FILES_MATCHING PATTERN ${pattern}
|
||||
PATTERN "pkgconfig" EXCLUDE
|
||||
PATTERN "cmake" EXCLUDE
|
||||
PATTERN "__pycache__" EXCLUDE
|
||||
PATTERN "tests" EXCLUDE
|
||||
PATTERN "meson*" EXCLUDE
|
||||
)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Set rpath on shared libraries to $ORIGIN since all will be installed in the same
|
||||
# lib folder, and remove any absolute paths.
|
||||
#
|
||||
# Ideally this would be done as part of the Blender build since it makes assumptions
|
||||
# about where the files will be installed. However it would add patchelf as a new
|
||||
# dependency for building.
|
||||
#
|
||||
# Also removes versioned symlinks, which give errors with macOS notarization.
|
||||
if(APPLE)
|
||||
set(set_rpath_cmd python3 ${CMAKE_CURRENT_SOURCE_DIR}/utils/set_rpath.py @loader_path)
|
||||
else()
|
||||
set(set_rpath_cmd patchelf --set-rpath $ORIGIN)
|
||||
endif()
|
||||
|
||||
function(harvest_rpath_lib project from to pattern)
|
||||
harvest(project ${from} ${to} ${pattern})
|
||||
|
||||
install(CODE "\
|
||||
cmake_policy(SET CMP0009 NEW)\n
|
||||
file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}) \n
|
||||
foreach(f \${shared_libs}) \n
|
||||
if((NOT IS_SYMLINK \${f}) OR APPLE)\n
|
||||
execute_process(COMMAND ${set_rpath_cmd} \${f}) \n
|
||||
endif()\n
|
||||
endforeach()")
|
||||
endfunction()
|
||||
|
||||
# Set rpath on utility binaries assuming they are run from their install location.
|
||||
function(harvest_rpath_bin project from to pattern)
|
||||
harvest(project ${from} ${to} ${pattern})
|
||||
|
||||
install(CODE "\
|
||||
file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}) \n
|
||||
foreach(f \${shared_libs}) \n
|
||||
execute_process(COMMAND ${set_rpath_cmd}/../lib \${f}) \n
|
||||
endforeach()")
|
||||
endfunction()
|
||||
|
||||
# Set rpath on Python module to point to the shared libraries folder in the Blender
|
||||
# installation.
|
||||
function(harvest_rpath_python project from to pattern)
|
||||
harvest(project ${from} ${to} ${pattern})
|
||||
|
||||
install(CODE "\
|
||||
file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}\.so*) \n
|
||||
foreach(f \${shared_libs}) \n
|
||||
if(IS_SYMLINK \${f})\n
|
||||
if(APPLE)\n
|
||||
file(REMOVE_RECURSE \${f})
|
||||
endif()\n
|
||||
else()\n
|
||||
get_filename_component(f_dir \${f} DIRECTORY) \n
|
||||
file(RELATIVE_PATH relative_dir \${f_dir} ${HARVEST_TARGET}) \n
|
||||
execute_process(COMMAND ${set_rpath_cmd}/\${relative_dir}../lib \${f}) \n
|
||||
endif()\n
|
||||
endforeach()")
|
||||
endfunction()
|
||||
|
||||
# Strip all shared/static libraries in the HARVEST_TARGET location.
|
||||
function(harvest_strip_all_libraries)
|
||||
install(CODE "execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/utils/strip_libraries.py ${HARVEST_TARGET})")
|
||||
endfunction()
|
||||
endif()
|
||||
@@ -0,0 +1,69 @@
|
||||
# SPDX-FileCopyrightText: 2017-2024 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(NOT HIP_FOUND)
|
||||
message(STATUS "Missing HIP compiler, skipping HIPRT build")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Note the utility apps may use png/tiff/gif system libraries, but the
|
||||
# library itself does not depend on them, so should give no problems.
|
||||
|
||||
get_filename_component(_hip_bin_path ${HIP_HIPCC_EXECUTABLE} DIRECTORY)
|
||||
get_filename_component(_hip_path ${_hip_bin_path} DIRECTORY)
|
||||
|
||||
set(HIPRT_EXTRA_ARGS
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DHIP_PATH=${_hip_path}
|
||||
-DBITCODE=OFF
|
||||
-DGENERATE_BAKE_KERNEL=OFF
|
||||
-DNO_UNITTEST=ON
|
||||
-DBAKE_COMPILED_KERNEL=ON
|
||||
-DPRECOMPILE=ON
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DFORCE_DISABLE_CUDA=ON
|
||||
)
|
||||
|
||||
set(HIPRT_SOURCE_DIR ${BUILD_DIR}/hiprt/src/external_hiprt)
|
||||
set(HIPRT_BUILD_DIR ${BUILD_DIR}/hiprt/src/external_hiprt-build)
|
||||
|
||||
ExternalProject_Add(external_hiprt
|
||||
URL file://${PACKAGE_DIR}/${HIPRT_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${HIPRT_HASH_TYPE}=${HIPRT_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/hiprt
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/hiprt/src/external_hiprt <
|
||||
${PATCH_DIR}/hiprt_rocm7_support.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/hiprt
|
||||
${HIPRT_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/hiprt
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_hiprt
|
||||
external_python
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_hiprt after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/hiprt
|
||||
${HARVEST_TARGET}/hiprt
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_hiprt hiprt/include hiprt/include "*.h")
|
||||
harvest(external_hiprt hiprt/bin hiprt/lib "*${SHAREDLIBEXT}*")
|
||||
harvest(external_hiprt hiprt/bin hiprt/lib "*.hipfb")
|
||||
endif()
|
||||
@@ -0,0 +1,41 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(ICONV_EXTRA_ARGS "")
|
||||
|
||||
ExternalProject_Add(external_iconv
|
||||
URL file://${PACKAGE_DIR}/${ICONV_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${ICONV_HASH_TYPE}=${ICONV_HASH}
|
||||
PREFIX ${BUILD_DIR}/iconv
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/iconv/src/external_iconv/ &&
|
||||
${CONFIGURE_COMMAND} --enable-static --prefix=${mingw_LIBDIR}/iconv
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/iconv/src/external_iconv/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/iconv/src/external_iconv/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/iconv
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(external_iconv PROPERTIES FOLDER Mingw)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_iconv after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/iconv/lib/libiconv.a
|
||||
${HARVEST_TARGET}/iconv/lib/iconv.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/iconv/include/iconv.h
|
||||
${HARVEST_TARGET}/iconv/include/iconv.h
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
145
blender-5.2.0/build_files/build_environment/cmake/igc.cmake
Normal file
145
blender-5.2.0/build_files/build_environment/cmake/igc.cmake
Normal file
@@ -0,0 +1,145 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
unpack_only(igc_vcintrinsics)
|
||||
unpack_only(igc_spirv_headers)
|
||||
unpack_only(igc_spirv_tools)
|
||||
|
||||
#
|
||||
# igc_opencl_clang contains patches that need to be applied
|
||||
# to external_igc_llvm and igc_spirv_translator, we unpack
|
||||
# igc_opencl_clang first, then have the patch stages of
|
||||
# external_igc_llvm and igc_spirv_translator apply them.
|
||||
#
|
||||
|
||||
ExternalProject_Add(external_igc_opencl_clang
|
||||
URL file://${PACKAGE_DIR}/${IGC_OPENCL_CLANG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_OPENCL_CLANG_HASH_TYPE}=${IGC_OPENCL_CLANG_HASH}
|
||||
PREFIX ${BUILD_DIR}/igc_opencl_clang
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
|
||||
set(IGC_OPENCL_CLANG_PATCH_DIR ${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/patches)
|
||||
set(IGC_LLVM_SOURCE_DIR ${BUILD_DIR}/igc_llvm/src/external_igc_llvm)
|
||||
set(IGC_SPIRV_TRANSLATOR_SOURCE_DIR ${BUILD_DIR}/igc_spirv_translator/src/external_igc_spirv_translator)
|
||||
|
||||
ExternalProject_Add(external_igc_llvm
|
||||
URL file://${PACKAGE_DIR}/${IGC_LLVM_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_LLVM_HASH_TYPE}=${IGC_LLVM_HASH}
|
||||
PREFIX ${BUILD_DIR}/igc_llvm
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0001-Remove-__IMAGE_SUPPORT__-macro-for-SPIR.patch &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0002-Remove-wrong-check-of-__opencl_c_images-feature-macr.patch &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0003-Fix-checking-mechanism-for-read_write-Image-type.patch &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0004-OpenCL-Allow-undefining-header-only-macros.patch &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${IGC_LLVM_SOURCE_DIR} <
|
||||
${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0005-Enable-use-of-GNU-C-extension.patch
|
||||
)
|
||||
add_dependencies(
|
||||
external_igc_llvm
|
||||
external_igc_opencl_clang
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_igc_spirv_translator
|
||||
URL file://${PACKAGE_DIR}/${IGC_SPIRV_TRANSLATOR_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_SPIRV_TRANSLATOR_HASH_TYPE}=${IGC_SPIRV_TRANSLATOR_HASH}
|
||||
PREFIX ${BUILD_DIR}/igc_spirv_translator
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
add_dependencies(
|
||||
external_igc_spirv_translator
|
||||
external_igc_opencl_clang
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(IGC_GENERATOR "Ninja")
|
||||
set(IGC_TARGET Windows64)
|
||||
else()
|
||||
set(IGC_GENERATOR "Unix Makefiles")
|
||||
set(IGC_TARGET Linux64)
|
||||
endif()
|
||||
|
||||
string(REPLACE "-DCMAKE_CXX_STANDARD=20" " " IGC_CMAKE_FLAGS "${DEFAULT_CMAKE_FLAGS}")
|
||||
set(IGC_EXTRA_ARGS
|
||||
-DIGC_OPTION__ARCHITECTURE_TARGET=${IGC_TARGET}
|
||||
-DIGC_OPTION__ARCHITECTURE_HOST=${IGC_TARGET}
|
||||
)
|
||||
|
||||
list(APPEND IGC_EXTRA_ARGS
|
||||
-DFLEX_EXECUTABLE=${LIBDIR}/flex/bin/flex
|
||||
-DFLEX_INCLUDE_DIR=${LIBDIR}/flex/include
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_igc
|
||||
URL file://${PACKAGE_DIR}/${IGC_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IGC_HASH_TYPE}=${IGC_HASH}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/igc
|
||||
${IGC_CMAKE_FLAGS}
|
||||
${IGC_EXTRA_ARGS}
|
||||
|
||||
# IGC is pretty set in its way where sub projects ought to live, for some it offers
|
||||
# hooks to supply alternative folders, other are just hard-coded with no way to configure
|
||||
# we symlink everything here, since it's less work than trying to convince the cmake
|
||||
# scripts to accept alternative locations.
|
||||
PATCH_COMMAND
|
||||
${CMAKE_COMMAND} -E create_symlink
|
||||
${BUILD_DIR}/igc_llvm/src/external_igc_llvm/
|
||||
${BUILD_DIR}/igc/src/llvm-project &&
|
||||
${CMAKE_COMMAND} -E create_symlink
|
||||
${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/
|
||||
${BUILD_DIR}/igc/src/llvm-project/llvm/projects/opencl-clang &&
|
||||
${CMAKE_COMMAND} -E create_symlink
|
||||
${BUILD_DIR}/igc_spirv_translator/src/external_igc_spirv_translator/
|
||||
${BUILD_DIR}/igc/src/llvm-project/llvm/projects/llvm-spirv &&
|
||||
${CMAKE_COMMAND} -E create_symlink
|
||||
${BUILD_DIR}/igc_spirv_tools/src/external_igc_spirv_tools/
|
||||
${BUILD_DIR}/igc/src/SPIRV-Tools &&
|
||||
${CMAKE_COMMAND} -E create_symlink
|
||||
${BUILD_DIR}/igc_spirv_headers/src/external_igc_spirv_headers/
|
||||
${BUILD_DIR}/igc/src/SPIRV-Headers &&
|
||||
${CMAKE_COMMAND} -E create_symlink
|
||||
${BUILD_DIR}/igc_vcintrinsics/src/external_igc_vcintrinsics/
|
||||
${BUILD_DIR}/igc/src/vc-intrinsics
|
||||
|
||||
PREFIX ${BUILD_DIR}/igc
|
||||
INSTALL_DIR ${LIBDIR}/igc
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --strip
|
||||
CMAKE_GENERATOR ${IGC_GENERATOR}
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_igc
|
||||
external_igc_vcintrinsics
|
||||
external_igc_llvm
|
||||
external_igc_opencl_clang
|
||||
external_igc_spirv_headers
|
||||
external_igc_spirv_tools
|
||||
external_igc_spirv_translator
|
||||
external_flex
|
||||
)
|
||||
|
||||
harvest(external_igc igc dpcpp/lib/igc "*")
|
||||
@@ -0,0 +1,44 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(IMATH_EXTRA_ARGS
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DBUILD_TESTING=OFF
|
||||
-DIMATH_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_imath
|
||||
URL file://${PACKAGE_DIR}/${IMATH_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${IMATH_HASH_TYPE}=${IMATH_HASH}
|
||||
PREFIX ${BUILD_DIR}/imath
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/imath
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${IMATH_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/imath
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_imath after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/imath/lib
|
||||
${HARVEST_TARGET}/imath/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/imath/include
|
||||
${HARVEST_TARGET}/imath/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/imath/bin/imath${OPENEXR_VERSION_POSTFIX}.dll
|
||||
${HARVEST_TARGET}/imath/bin/imath${OPENEXR_VERSION_POSTFIX}.dll
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_imath imath/include imath/include "*.h")
|
||||
harvest(external_imath imath/lib/cmake/Imath imath/lib/cmake/Imath "*.cmake")
|
||||
harvest_rpath_lib(external_imath imath/lib imath/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
99
blender-5.2.0/build_files/build_environment/cmake/ispc.cmake
Normal file
99
blender-5.2.0/build_files/build_environment/cmake/ispc.cmake
Normal file
@@ -0,0 +1,99 @@
|
||||
# SPDX-FileCopyrightText: 2020-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(ISPC_EXTRA_ARGS_WIN
|
||||
-DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe
|
||||
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
||||
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/msys2/msys64/usr/bin/m4.exe
|
||||
-DPython3_FIND_REGISTRY=NEVER
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(ISPC_EXTRA_ARGS_WIN ${ISPC_EXTRA_ARGS_WIN} -DARM_ENABLED=On)
|
||||
else()
|
||||
set(ISPC_EXTRA_ARGS_WIN ${ISPC_EXTRA_ARGS_WIN} -DARM_ENABLED=Off)
|
||||
endif()
|
||||
elseif(APPLE)
|
||||
# Use bison and flex installed via Homebrew.
|
||||
# The ones that come with Xcode toolset are too old.
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(ISPC_EXTRA_ARGS_APPLE
|
||||
-DBISON_EXECUTABLE=/opt/homebrew/opt/bison/bin/bison
|
||||
-DFLEX_EXECUTABLE=/opt/homebrew/opt/flex/bin/flex
|
||||
-DARM_ENABLED=On
|
||||
)
|
||||
else()
|
||||
set(ISPC_EXTRA_ARGS_APPLE
|
||||
-DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison
|
||||
-DFLEX_EXECUTABLE=/usr/local/opt/flex/bin/flex
|
||||
-DARM_ENABLED=Off
|
||||
)
|
||||
endif()
|
||||
elseif(UNIX)
|
||||
set(ISPC_EXTRA_ARGS_UNIX
|
||||
-DCMAKE_C_COMPILER=gcc
|
||||
-DCMAKE_CXX_COMPILER=g++
|
||||
-DARM_ENABLED=${BLENDER_PLATFORM_ARM}
|
||||
-DFLEX_EXECUTABLE=${LIBDIR}/flex/bin/flex
|
||||
)
|
||||
endif()
|
||||
|
||||
set(ISPC_EXTRA_ARGS
|
||||
-DISPC_INCLUDE_EXAMPLES=Off
|
||||
-DISPC_INCLUDE_TESTS=Off
|
||||
-DISPC_INCLUDE_RT=Off
|
||||
-DISPC_INCLUDE_UTILS=Off
|
||||
-DISPC_LIBRARY=Off
|
||||
-DLLVM_CONFIG_EXECUTABLE=${LIBDIR}/llvm/bin/llvm-config
|
||||
-DLLVM_DIR=${LIBDIR}/llvm/lib/cmake/llvm/
|
||||
-DCLANG_EXECUTABLE=${LIBDIR}/llvm/bin/clang
|
||||
-DCLANGPP_EXECUTABLE=${LIBDIR}/llvm/bin/clang++
|
||||
-DISPC_INCLUDE_TESTS=Off
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DGIT_BINARY=GIT_BINARY-NOTFOUND # Prevent any git checks
|
||||
${ISPC_EXTRA_ARGS_WIN}
|
||||
${ISPC_EXTRA_ARGS_APPLE}
|
||||
${ISPC_EXTRA_ARGS_UNIX}
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_ispc
|
||||
URL file://${PACKAGE_DIR}/${ISPC_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${ISPC_HASH_TYPE}=${ISPC_HASH}
|
||||
PREFIX ${BUILD_DIR}/ispc
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/ispc/src/external_ispc <
|
||||
${PATCH_DIR}/ispc.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/ispc
|
||||
-Wno-dev
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${ISPC_EXTRA_ARGS}
|
||||
${BUILD_DIR}/ispc/src/external_ispc
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ispc
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_ispc
|
||||
external_llvm
|
||||
external_python
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
add_dependencies(
|
||||
external_ispc
|
||||
external_flexbison
|
||||
)
|
||||
elseif(UNIX AND NOT APPLE)
|
||||
add_dependencies(
|
||||
external_ispc
|
||||
external_flex
|
||||
)
|
||||
endif()
|
||||
67
blender-5.2.0/build_files/build_environment/cmake/jpeg.cmake
Normal file
67
blender-5.2.0/build_files/build_environment/cmake/jpeg.cmake
Normal file
@@ -0,0 +1,67 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
# CMAKE for MS-Windows.
|
||||
set(JPEG_EXTRA_ARGS
|
||||
-DNASM=${NASM_PATH}
|
||||
-DWITH_JPEG8=ON
|
||||
-DCMAKE_DEBUG_POSTFIX=d
|
||||
-DWITH_CRT_DLL=On
|
||||
-DENABLE_SHARED=OFF
|
||||
-DENABLE_STATIC=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_jpeg
|
||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||
PREFIX ${BUILD_DIR}/jpeg
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||
INSTALL_DIR ${LIBDIR}/jpeg
|
||||
)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
set(JPEG_LIBRARY jpeg-static${LIBEXT})
|
||||
else()
|
||||
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_jpeg after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/jpeg/lib/${JPEG_LIBRARY}
|
||||
${LIBDIR}/jpeg/lib/jpeg${LIBEXT}
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
else()
|
||||
# CMAKE for UNIX.
|
||||
set(JPEG_EXTRA_ARGS
|
||||
-DWITH_JPEG8=ON
|
||||
-DENABLE_STATIC=ON
|
||||
-DENABLE_SHARED=OFF
|
||||
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpeg/lib)
|
||||
|
||||
ExternalProject_Add(external_jpeg
|
||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||
PREFIX ${BUILD_DIR}/jpeg
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${JPEG_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/jpeg
|
||||
)
|
||||
|
||||
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
||||
|
||||
harvest(external_jpeg jpeg/include jpeg/include "*.h")
|
||||
harvest(external_jpeg jpeg/lib jpeg/lib "libjpeg.a")
|
||||
endif()
|
||||
71
blender-5.2.0/build_files/build_environment/cmake/lame.cmake
Normal file
71
blender-5.2.0/build_files/build_environment/cmake/lame.cmake
Normal file
@@ -0,0 +1,71 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(LAME_EXTRA_ARGS "")
|
||||
if(MSVC)
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(LAME_ARCH ARM64)
|
||||
else()
|
||||
set(LAME_ARCH Win64)
|
||||
endif()
|
||||
set(LAME_CONFIGURE echo .)
|
||||
set(LAME_BUILD
|
||||
cd ${BUILD_DIR}/lame/src/external_lame/ &&
|
||||
nmake /F MakeFile.msvc MSVCVER=${LAME_ARCH} all
|
||||
)
|
||||
set(LAME_INSTALL
|
||||
cd ${BUILD_DIR}/lame/src/external_lame/ &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
include/lame.h
|
||||
${LIBDIR}/lame/include/lame/lame.h &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
output/libmp3lame-static.lib
|
||||
${LIBDIR}/lame/lib/mp3lame.lib
|
||||
)
|
||||
else()
|
||||
set(LAME_CONFIGURE
|
||||
${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/lame/src/external_lame/ &&
|
||||
${CONFIGURE_COMMAND}
|
||||
--prefix=${LIBDIR}/lame
|
||||
--disable-shared
|
||||
--enable-static
|
||||
${LAME_EXTRA_ARGS}
|
||||
--enable-export=full
|
||||
--with-fileio=sndfile
|
||||
--without-vorbis
|
||||
--with-pic
|
||||
--disable-mp3x
|
||||
--disable-mp3rtp
|
||||
--disable-gtktest
|
||||
--disable-frontend)
|
||||
set(LAME_BUILD ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/lame/src/external_lame/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
)
|
||||
set(LAME_INSTALL ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/lame/src/external_lame/ &&
|
||||
make install
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_lame
|
||||
URL file://${PACKAGE_DIR}/${LAME_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${LAME_HASH_TYPE}=${LAME_HASH}
|
||||
PREFIX ${BUILD_DIR}/lame
|
||||
|
||||
PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/lame/src/external_lame <
|
||||
${PATCH_DIR}/lame.diff
|
||||
|
||||
CONFIGURE_COMMAND ${LAME_CONFIGURE}
|
||||
BUILD_COMMAND ${LAME_BUILD}
|
||||
INSTALL_COMMAND ${LAME_INSTALL}
|
||||
INSTALL_DIR ${LIBDIR}/lame
|
||||
)
|
||||
|
||||
if(NOT WIN32)
|
||||
harvest(external_lame lame/lib ffmpeg/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,39 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(LEVEL_ZERO_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_level-zero
|
||||
URL file://${PACKAGE_DIR}/${LEVEL_ZERO_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${LEVEL_ZERO_HASH_TYPE}=${LEVEL_ZERO_HASH}
|
||||
PREFIX ${BUILD_DIR}/level-zero
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/level-zero/src/external_level-zero <
|
||||
${PATCH_DIR}/level-zero.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/level-zero
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${LEVEL_ZERO_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/level-zero
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_level-zero after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/level-zero
|
||||
${HARVEST_TARGET}/level-zero
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_level-zero level-zero/include/level_zero level-zero/include/level_zero "*.h")
|
||||
harvest(external_level-zero level-zero/lib level-zero/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
@@ -0,0 +1,56 @@
|
||||
# SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(AOM_LIBRARY aom${LIBEXT})
|
||||
else()
|
||||
set(AOM_LIBRARY libaom${LIBEXT})
|
||||
endif()
|
||||
|
||||
|
||||
set(LIBHEIF_EXTRA_ARGS
|
||||
-DWITH_AOM_ENCODER=ON
|
||||
-DWITH_AOM_DECODER=ON
|
||||
-DWITH_DAV1D=OFF
|
||||
-DWITH_FFMPEG_DECODER=OFF
|
||||
-DWITH_JPEG_ENCODER=OFF
|
||||
-DWITH_KVAZAAR=OFF
|
||||
-DWITH_LIBDE265=OFF
|
||||
-DWITH_LIBSHARPYUV=OFF
|
||||
-DWITH_OPENJPH_ENCODER=OFF
|
||||
-DWITH_OpenH264_DECODER=OFF
|
||||
-DWITH_OpenJPEG_DECODER=OFF
|
||||
-DWITH_OpenJPEG_ENCODER=OFF
|
||||
-DWITH_RAV1E=OFF
|
||||
-DWITH_SvtEnc=OFF
|
||||
-DWITH_UVG266=OFF
|
||||
-DWITH_VVDEC=OFF
|
||||
-DWITH_VVENC=OFF
|
||||
-DWITH_X265=OFF
|
||||
-DAOM_INCLUDE_DIR=${LIBDIR}/aom/include/
|
||||
-DAOM_LIBRARY=${LIBDIR}/aom/lib/${AOM_LIBRARY}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DWITH_EXAMPLES=OFF
|
||||
-DWITH_EXAMPLE_HEIF_VIEW=OFF
|
||||
-DWITH_GDK_PIXBUF=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_libheif
|
||||
URL file://${PACKAGE_DIR}/${LIBHEIF_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${LIBHEIF_HASH_TYPE}=${LIBHEIF_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/libheif
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/libheif
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${LIBHEIF_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/libheif
|
||||
)
|
||||
add_dependencies(
|
||||
external_libheif
|
||||
external_aom
|
||||
)
|
||||
140
blender-5.2.0/build_files/build_environment/cmake/llvm.cmake
Normal file
140
blender-5.2.0/build_files/build_environment/cmake/llvm.cmake
Normal file
@@ -0,0 +1,140 @@
|
||||
# SPDX-FileCopyrightText: 2012-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(LLVM_TARGETS AArch64$<SEMICOLON>ARM)
|
||||
else()
|
||||
set(LLVM_TARGETS X86)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
# Make llvm's pkgconfig pick up our static xml2 lib
|
||||
set(LLVM_XML2_ARGS
|
||||
-DCMAKE_PREFIX_PATH=${LIBDIR}/xml2
|
||||
)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
set(LLVM_XML2_ARGS
|
||||
-DLIBXML2_LIBRARY=${LIBDIR}/xml2/lib/libxml2.a
|
||||
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
||||
)
|
||||
set(LLVM_EXTRA_PROJECTS ^^clang-tools-extra)
|
||||
set(BUILD_CLANG_TOOLS ON)
|
||||
elseif(MSVC AND BLENDER_PLATFORM_ARM)
|
||||
set(LLVM_EXTRA_PROJECTS ^^lld)
|
||||
else()
|
||||
# NVIDIA PTX for OSL on Windows and Linux.
|
||||
set(LLVM_TARGETS ${LLVM_TARGETS}$<SEMICOLON>NVPTX)
|
||||
endif()
|
||||
|
||||
set(LLVM_EXTRA_ARGS
|
||||
-DLLVM_USE_CRT_RELEASE=MD
|
||||
-DLLVM_USE_CRT_DEBUG=MDd
|
||||
-DLLVM_INCLUDE_TESTS=OFF
|
||||
-DLLVM_TARGETS_TO_BUILD=${LLVM_TARGETS}
|
||||
-DLLVM_INCLUDE_EXAMPLES=OFF
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
||||
-DLLVM_ENABLE_ZSTD=OFF
|
||||
-DLLVM_ENABLE_ZLIB=OFF
|
||||
-DLLVM_ENABLE_PROJECTS=clang${LLVM_EXTRA_PROJECTS}
|
||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
# Enforce C++17 as C++20 cause compilation errors on recent GCC versions, fixed in LLVM 22.1.0 (GH PR #169772), remove on upgrade.
|
||||
-DCMAKE_CXX_STANDARD=17
|
||||
${LLVM_XML2_ARGS}
|
||||
)
|
||||
|
||||
set(LLVM_PATCH
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/llvm/src/external_llvm <
|
||||
${PATCH_DIR}/llvm.diff
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(LLVM_GENERATOR "Ninja")
|
||||
list(APPEND LLVM_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
||||
set(LLVM_PATCH
|
||||
${LLVM_PATCH} &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/llvm/src/external_llvm <
|
||||
${PATCH_DIR}/llvm_clang_cuda_msvc_header_fix.diff
|
||||
)
|
||||
else()
|
||||
set(LLVM_GENERATOR "Unix Makefiles")
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_llvm
|
||||
URL file://${PACKAGE_DIR}/${LLVM_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${LLVM_HASH_TYPE}=${LLVM_HASH}
|
||||
CMAKE_GENERATOR ${LLVM_GENERATOR}
|
||||
LIST_SEPARATOR ^^
|
||||
PREFIX ${BUILD_DIR}/llvm
|
||||
SOURCE_SUBDIR llvm
|
||||
|
||||
PATCH_COMMAND ${LLVM_PATCH}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${LLVM_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/llvm
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
set(LLVM_HARVEST_COMMAND
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/llvm/lib
|
||||
${HARVEST_TARGET}/llvm/lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/llvm/include
|
||||
${HARVEST_TARGET}/llvm/include &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/llvm/bin/clang-format.exe
|
||||
${HARVEST_TARGET}/llvm/bin/clang-format.exe
|
||||
)
|
||||
else()
|
||||
set(LLVM_HARVEST_COMMAND
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/llvm/lib/
|
||||
${HARVEST_TARGET}/llvm/debug/lib/ &&
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/llvm/include/
|
||||
${HARVEST_TARGET}/llvm/debug/include/
|
||||
)
|
||||
endif()
|
||||
ExternalProject_Add_Step(external_llvm after_install
|
||||
COMMAND ${LLVM_HARVEST_COMMAND}
|
||||
DEPENDEES mkdir update patch download configure build install
|
||||
)
|
||||
else()
|
||||
harvest(external_llvm llvm/bin llvm/bin "clang-format")
|
||||
if(BUILD_CLANG_TOOLS)
|
||||
harvest(external_llvm llvm/bin llvm/bin "clang-tidy")
|
||||
harvest(external_llvm llvm/share/clang llvm/share "run-clang-tidy.py")
|
||||
endif()
|
||||
harvest(external_llvm llvm/include llvm/include "*")
|
||||
harvest(external_llvm llvm/bin llvm/bin "llvm-config")
|
||||
harvest(external_llvm llvm/lib llvm/lib "libLLVM*.a")
|
||||
harvest(external_llvm llvm/lib llvm/lib "libclang*.a")
|
||||
harvest(external_llvm llvm/lib/clang llvm/lib/clang "*.h")
|
||||
endif()
|
||||
|
||||
# We currently do not build libxml2 on Windows.
|
||||
if(UNIX)
|
||||
add_dependencies(
|
||||
external_llvm
|
||||
external_xml2
|
||||
)
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
external_llvm
|
||||
external_python
|
||||
)
|
||||
27
blender-5.2.0/build_files/build_environment/cmake/lzma.cmake
Normal file
27
blender-5.2.0/build_files/build_environment/cmake/lzma.cmake
Normal file
@@ -0,0 +1,27 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(LZMA_PATCH_CMD echo .)
|
||||
|
||||
ExternalProject_Add(external_lzma
|
||||
URL file://${PACKAGE_DIR}/${LZMA_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${LZMA_HASH_TYPE}=${LZMA_HASH}
|
||||
PREFIX ${BUILD_DIR}/lzma
|
||||
PATCH_COMMAND ${LZMA_PATCH_CMD}
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/lzma/src/external_lzma/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/lzma --disable-shared
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/lzma/src/external_lzma/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/lzma/src/external_lzma/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/lzma
|
||||
)
|
||||
@@ -0,0 +1,20 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# shorthand to only unpack a certain dependency
|
||||
function(unpack_only name)
|
||||
string(TOUPPER ${name} UPPER_NAME)
|
||||
set(TARGET_FILE ${${UPPER_NAME}_FILE})
|
||||
set(TARGET_HASH_TYPE ${${UPPER_NAME}_HASH_TYPE})
|
||||
set(TARGET_HASH ${${UPPER_NAME}_HASH})
|
||||
ExternalProject_Add(external_${name}
|
||||
URL file://${PACKAGE_DIR}/${TARGET_FILE}
|
||||
URL_HASH ${TARGET_HASH_TYPE}=${TARGET_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/${name}
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
endfunction()
|
||||
@@ -0,0 +1,51 @@
|
||||
# SPDX-FileCopyrightText: 2002-2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(MANIFOLD_EXTRA_ARGS
|
||||
-DMANIFOLD_JSBIND=OFF
|
||||
-DMANIFOLD_CBIND=OFF
|
||||
-DMANIFOLD_PYBIND=OFF
|
||||
-DMANIFOLD_PAR=ON
|
||||
-DMANIFOLD_CROSS_SECTION=OFF
|
||||
-DMANIFOLD_EXPORT=OFF
|
||||
-DMANIFOLD_DEBUG=OFF
|
||||
-DMANIFOLD_TEST=OFF
|
||||
-DMANIFOLD_DOWNLOADS=OFF
|
||||
-DTBB_ROOT=${LIBDIR}/tbb/
|
||||
-DTRACY_ENABLE=OFF
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_manifold
|
||||
URL file://${PACKAGE_DIR}/${MANIFOLD_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${MANIFOLD_HASH_TYPE}=${MANIFOLD_HASH}
|
||||
PREFIX ${BUILD_DIR}/manifold
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/manifold
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${MANIFOLD_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/manifold
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_manifold
|
||||
external_tbb
|
||||
)
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_manifold after_install
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/manifold/
|
||||
${HARVEST_TARGET}/manifold/
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_manifold manifold/include manifold/include "*.h")
|
||||
harvest(external_manifold manifold/lib manifold/lib "*.a")
|
||||
harvest(external_manifold manifold/lib/cmake/manifold manifold/lib/cmake/manifold "*.cmake")
|
||||
endif()
|
||||
@@ -0,0 +1,119 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(MATERIALX_EXTRA_ARGS
|
||||
-DMATERIALX_BUILD_PYTHON=ON
|
||||
-DMATERIALX_BUILD_RENDER=ON
|
||||
-DMATERIALX_INSTALL_PYTHON=OFF
|
||||
-DMATERIALX_PYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DMATERIALX_PYTHON_VERSION=${PYTHON_SHORT_VERSION}
|
||||
-DMATERIALX_BUILD_SHARED_LIBS=ON
|
||||
-DMATERIALX_BUILD_TESTS=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
# This policy makes pybind11_ROOT work.
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0074=NEW
|
||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
list(APPEND MATERIALX_EXTRA_ARGS -DPYTHON_MODULE_EXTENSION=.pyd)
|
||||
else()
|
||||
list(APPEND MATERIALX_EXTRA_ARGS -DPYTHON_MODULE_EXTENSION=_d.pyd)
|
||||
endif()
|
||||
list(APPEND MATERIALX_EXTRA_ARGS -DPYTHON_LIBRARIES=${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
list(APPEND MATERIALX_EXTRA_ARGS
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--version-script="${CMAKE_SOURCE_DIR}/linux/materialx_symbols_unix.map"
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_materialx
|
||||
URL file://${PACKAGE_DIR}/${MATERIALX_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${MATERIALX_HASH_TYPE}=${MATERIALX_HASH}
|
||||
PREFIX ${BUILD_DIR}/materialx
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/materialx/src/external_materialx
|
||||
-i ${PATCH_DIR}/materialx_2866.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/materialx
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${MATERIALX_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/materialx
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(MATERIALX_PYTHON_TARGET ${HARVEST_TARGET}/materialx/python/${BUILD_MODE})
|
||||
string(REPLACE "/" "\\" MATERIALX_PYTHON_TARGET_DOS "${MATERIALX_PYTHON_TARGET}")
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_materialx after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/include
|
||||
${HARVEST_TARGET}/materialx/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/libraries
|
||||
${HARVEST_TARGET}/materialx/libraries
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/lib/
|
||||
${HARVEST_TARGET}/materialx/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/bin/
|
||||
${HARVEST_TARGET}/materialx/bin/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/python/
|
||||
${MATERIALX_PYTHON_TARGET}
|
||||
COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_materialx after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/lib/
|
||||
${HARVEST_TARGET}/materialx/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/bin/
|
||||
${HARVEST_TARGET}/materialx/bin/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/materialx/python/
|
||||
${MATERIALX_PYTHON_TARGET}
|
||||
COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
unset(MATERIALX_PYTHON_TARGET)
|
||||
unset(MATERIALX_PYTHON_TARGET_DOS)
|
||||
else()
|
||||
harvest(external_materialx materialx/include materialx/include "*.h")
|
||||
# CMake files first because harvest_rpath_lib edits them.
|
||||
harvest(external_materialx materialx/lib/cmake/MaterialX materialx/lib/cmake/MaterialX "*.cmake")
|
||||
harvest_rpath_lib(external_materialx materialx/lib materialx/lib "*${SHAREDLIBEXT}*")
|
||||
harvest(external_materialx materialx/libraries materialx/libraries "*")
|
||||
harvest_rpath_python(external_materialx
|
||||
materialx/python/MaterialX
|
||||
python/lib/python${PYTHON_SHORT_VERSION}/site-packages/MaterialX
|
||||
"*"
|
||||
)
|
||||
# We do not need anything from the resources folder, but the MaterialX config
|
||||
# file will complain if the folder does not exist, so just copy the readme.md
|
||||
# files to ensure the folder will exist.
|
||||
harvest(external_materialx materialx/resources materialx/resources "README.md")
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
external_materialx
|
||||
external_python
|
||||
external_pybind11
|
||||
)
|
||||
@@ -0,0 +1,43 @@
|
||||
# SPDX-FileCopyrightText: 2026 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(MESHOPTIMIZER_EXTRA_ARGS
|
||||
-DMESHOPT_BUILD_SHARED_LIBS=ON
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
set(MESHOPTIMIZER_EXTRA_ARGS
|
||||
${MESHOPTIMIZER_EXTRA_ARGS}
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_meshoptimizer
|
||||
URL file://${PACKAGE_DIR}/${MESHOPTIMIZER_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${MESHOPTIMIZER_HASH_TYPE}=${MESHOPTIMIZER_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/meshoptimizer
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/meshoptimizer
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${MESHOPTIMIZER_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/meshoptimizer
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_meshoptimizer after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/meshoptimizer/
|
||||
${HARVEST_TARGET}/meshoptimizer
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_meshoptimizer meshoptimizer/include meshoptimizer/include "*.h")
|
||||
# CMake files first because harvest_rpath_lib edits them.
|
||||
harvest(external_meshoptimizer meshoptimizer/lib/cmake/meshoptimizer meshoptimizer/lib/cmake/meshoptimizer "*.cmake")
|
||||
harvest_rpath_lib(external_meshoptimizer meshoptimizer/lib meshoptimizer/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
@@ -0,0 +1,43 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(MINIZIPNG_EXTRA_ARGS
|
||||
# Disable most compression methods like OpenColorIO does, enabling
|
||||
# more is not needed and will give link errors.
|
||||
-DMZ_FETCH_LIBS=OFF
|
||||
-DMZ_LIBCOMP=OFF
|
||||
-DMZ_PKCRYPT=OFF
|
||||
-DMZ_WZAES=OFF
|
||||
-DMZ_OPENSSL=OFF
|
||||
-DMZ_SIGNING=OFF
|
||||
-DMZ_LZMA=OFF
|
||||
-DMZ_ZSTD=OFF
|
||||
-DMZ_BZIP2=OFF
|
||||
-DMZ_ICONV=OFF
|
||||
-DMZ_ZLIB=ON
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
# Because OCIO hardcodes a non standard include path
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=${LIBDIR}/minizipng/include/minizip-ng
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_minizipng
|
||||
URL file://${PACKAGE_DIR}/${MINIZIPNG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${MINIZIPNG_HASH_TYPE}=${MINIZIPNG_HASH}
|
||||
PREFIX ${BUILD_DIR}/minizipng
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/minizipng
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${MINIZIPNG_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/minizipng
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_minizipng
|
||||
external_zlib
|
||||
)
|
||||
@@ -0,0 +1,35 @@
|
||||
# SPDX-FileCopyrightText: 2024 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(NANOBIND_EXTRA_ARGS
|
||||
-DNB_TEST=OFF
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
|
||||
set(NANOBIND_PATCH
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/robinmap/include/
|
||||
${BUILD_DIR}/nanobind/src/external_nanobind/ext/robin_map/include/
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_nanobind
|
||||
URL file://${PACKAGE_DIR}/${NANOBIND_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${NANOBIND_HASH_TYPE}=${NANOBIND_HASH}
|
||||
PREFIX ${BUILD_DIR}/nanobind
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND ${NANOBIND_PATCH}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/nanobind
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${NANOBIND_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/nanobind
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_nanobind
|
||||
external_robinmap
|
||||
)
|
||||
39
blender-5.2.0/build_files/build_environment/cmake/nasm.cmake
Normal file
39
blender-5.2.0/build_files/build_environment/cmake/nasm.cmake
Normal file
@@ -0,0 +1,39 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
ExternalProject_Add(external_nasm
|
||||
URL file://${PACKAGE_DIR}/${NASM_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${NASM_HASH_TYPE}=${NASM_HASH}
|
||||
PREFIX ${BUILD_DIR}/nasm
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/nasm/src/external_nasm <
|
||||
${PATCH_DIR}/nasm.diff
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/nasm/src/external_nasm/ &&
|
||||
./autogen.sh &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/nasm
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/nasm/src/external_nasm/ &&
|
||||
make -j${MAKE_THREADS} &&
|
||||
make manpages
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/nasm/src/external_nasm/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/nasm
|
||||
)
|
||||
|
||||
if(UNIX)
|
||||
# `touch nasm.1 ndisasm.1` helps to create the manual pages files, even when
|
||||
# local `asciidoc` and `xmlto` packages are not installed.
|
||||
ExternalProject_Add_Step(external_nasm after_configure
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${BUILD_DIR}/nasm/src/external_nasm/nasm.1 ${BUILD_DIR}/nasm/src/external_nasm/ndisasm.1
|
||||
DEPENDEES configure
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,47 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(MSVC)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(NUMPY_DIR_POSTFIX -pydebug)
|
||||
set(NUMPY_ARCHIVE_POSTFIX d)
|
||||
set(NUMPY_BUILD_OPTION --debug)
|
||||
else()
|
||||
set(NUMPY_DIR_POSTFIX "")
|
||||
set(NUMPY_ARCHIVE_POSTFIX "")
|
||||
set(NUMPY_BUILD_OPTION "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(NUMPY_POSTFIX "")
|
||||
|
||||
if(WIN32)
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/fix_path.bat
|
||||
"set PATH=${LIBDIR}/python;${LIBDIR}/python/scripts;%PATH%\n"
|
||||
)
|
||||
set(NUMPY_CONF ${CMAKE_BINARY_DIR}/fix_path.bat)
|
||||
else()
|
||||
set(NUMPY_CONF export CYTHON=${LIBDIR}/python/bin/cython)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_numpy
|
||||
URL file://${PACKAGE_DIR}/${NUMPY_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${NUMPY_HASH_TYPE}=${NUMPY_HASH}
|
||||
PREFIX ${BUILD_DIR}/numpy
|
||||
PATCH_COMMAND ${NUMPY_PATCH}
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
|
||||
BUILD_COMMAND ${NUMPY_CONF} && ${PYTHON_BINARY} -m pip install --no-build-isolation .
|
||||
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_numpy
|
||||
external_python
|
||||
external_python_site_packages
|
||||
external_cython
|
||||
)
|
||||
@@ -0,0 +1,36 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(OCLOC_EXTRA_ARGS
|
||||
-DNEO_SKIP_UNIT_TESTS=1
|
||||
-DNEO_BUILD_WITH_OCL=0
|
||||
-DNEO_CURRENT_PLATFORMS_SUPPORT=1
|
||||
-DNEO_LEGACY_PLATFORMS_SUPPORT=0
|
||||
-DBUILD_WITH_L0=0
|
||||
-DNEO_BUILD_UNVERSIONED_OCLOC=TRUE
|
||||
-DIGC_DIR=${LIBDIR}/igc
|
||||
-DGMM_DIR=${LIBDIR}/gmmlib
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_ocloc
|
||||
URL file://${PACKAGE_DIR}/${OCLOC_FILE}
|
||||
URL_HASH ${OCLOC_HASH_TYPE}=${OCLOC_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/ocloc
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/ocloc
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OCLOC_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ocloc
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_ocloc
|
||||
external_igc
|
||||
external_gmmlib
|
||||
)
|
||||
|
||||
harvest(external_ocloc ocloc dpcpp/lib/ocloc "*")
|
||||
20
blender-5.2.0/build_files/build_environment/cmake/ogg.cmake
Normal file
20
blender-5.2.0/build_files/build_environment/cmake/ogg.cmake
Normal file
@@ -0,0 +1,20 @@
|
||||
# SPDX-FileCopyrightText: 2002-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
ExternalProject_Add(external_ogg
|
||||
URL file://${PACKAGE_DIR}/${OGG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OGG_HASH_TYPE}=${OGG_HASH}
|
||||
PREFIX ${BUILD_DIR}/ogg
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/ogg
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ogg
|
||||
)
|
||||
|
||||
if(NOT WIN32)
|
||||
harvest(external_ogg ogg/lib ffmpeg/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,68 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
set(OPENAL_EXTRA_ARGS
|
||||
-DALSOFT_UTILS=OFF
|
||||
-DALSOFT_NO_CONFIG_UTIL=ON
|
||||
-DALSOFT_EXAMPLES=OFF
|
||||
-DALSOFT_TESTS=OFF
|
||||
-DALSOFT_INSTALL_CONFIG=OFF
|
||||
-DALSOFT_INSTALL_HRTF_DATA=OFF
|
||||
-DALSOFT_INSTALL=ON
|
||||
-DALSOFT_BACKEND_SNDIO=OFF
|
||||
)
|
||||
|
||||
if(UNIX)
|
||||
set(OPENAL_EXTRA_ARGS
|
||||
${OPENAL_EXTRA_ARGS}
|
||||
-DLIBTYPE=STATIC
|
||||
)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
# Ensure we have backends for playback.
|
||||
set(OPENAL_EXTRA_ARGS
|
||||
${OPENAL_EXTRA_ARGS}
|
||||
-DALSOFT_REQUIRE_ALSA=ON
|
||||
-DALSOFT_REQUIRE_OSS=ON
|
||||
-DALSOFT_REQUIRE_PULSEAUDIO=ON
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_openal
|
||||
URL file://${PACKAGE_DIR}/${OPENAL_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENAL_HASH_TYPE}=${OPENAL_HASH}
|
||||
PREFIX ${BUILD_DIR}/openal
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openal
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENAL_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openal
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_openal after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openal/lib/openal32.lib
|
||||
${HARVEST_TARGET}/openal/lib/openal32.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openal/bin/openal32.dll
|
||||
${HARVEST_TARGET}/openal/lib/openal32.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openal/include/
|
||||
${HARVEST_TARGET}/openal/include/
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_openal openal/include openal/include "*.h")
|
||||
if(UNIX AND NOT APPLE)
|
||||
harvest(external_openal openal/lib openal/lib "*.a")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,161 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(OCIO_PATCH echo .)
|
||||
|
||||
if(WIN32)
|
||||
set(MINIZIP_LIBRARY minizip${LIBEXT})
|
||||
else()
|
||||
set(MINIZIP_LIBRARY libminizip${LIBEXT})
|
||||
endif()
|
||||
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
-DOCIO_BUILD_APPS=OFF
|
||||
-DOCIO_BUILD_PYTHON=ON
|
||||
-DOCIO_BUILD_NUKE=OFF
|
||||
-DOCIO_BUILD_JAVA=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DOCIO_BUILD_DOCS=OFF
|
||||
-DOCIO_BUILD_TESTS=OFF
|
||||
-DOCIO_BUILD_GPU_TESTS=OFF
|
||||
-DOCIO_USE_SIMD=ON
|
||||
|
||||
-DOCIO_INSTALL_EXT_PACKAGES=NONE
|
||||
|
||||
-Dexpat_ROOT=${LIBDIR}/expat
|
||||
-Dyaml-cpp_DIR=${LIBDIR}/yamlcpp/lib/cmake/yaml-cpp
|
||||
-Dyaml-cpp_VERSION=${YAMLCPP_VERSION}
|
||||
-Dpystring_ROOT=${LIBDIR}/pystring
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
-Dminizip-ng_ROOT=${LIBDIR}/minizipng
|
||||
-Dminizip-ng_INCLUDE_DIR=${LIBDIR}/minizipng/include/minizip-ng/minizip
|
||||
-Dminizip-ng_LIBRARY=${LIBDIR}/minizipng/lib/${MINIZIP_LIBRARY}
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
# Work around issue where minizip-ng_LIBRARY assumes -ng in file name.
|
||||
-Dminizip_LIBRARY=${LIBDIR}/minizipng/lib/libminizip${LIBEXT}
|
||||
# Work around issue where homebrew Imath's can be prioritized over our own dependency during linking if installed.
|
||||
-DImath_LIBRARY=${LIBDIR}/imath/lib/libImath${SHAREDLIBEXT}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BLENDER_PLATFORM_ARM AND NOT WIN32)
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
-DOCIO_USE_SSE=OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(OPENCOLORIO_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DIMATH_DLL")
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(OPENCOLORIO_CXX_FLAGS "${OPENCOLORIO_CXX_FLAGS} -DPy_DEBUG")
|
||||
endif()
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-Dexpat_LIBRARY=${LIBDIR}/expat/lib/libexpat$<$<STREQUAL:${BUILD_MODE},Debug>:d>MD${LIBEXT}
|
||||
-DImath_LIBRARY=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||
-DCMAKE_CXX_FLAGS=${OPENCOLORIO_CXX_FLAGS}
|
||||
)
|
||||
else()
|
||||
set(OPENCOLORIO_EXTRA_ARGS
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_opencolorio
|
||||
URL file://${PACKAGE_DIR}/${OPENCOLORIO_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENCOLORIO_HASH_TYPE}=${OPENCOLORIO_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/opencolorio
|
||||
PATCH_COMMAND ${OCIO_PATCH}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencolorio
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENCOLORIO_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/opencolorio
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_opencolorio
|
||||
external_yamlcpp
|
||||
external_expat
|
||||
external_imath
|
||||
external_pystring
|
||||
external_zlib
|
||||
external_minizipng
|
||||
external_python
|
||||
external_pybind11
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_opencolorio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/opencolorio/include
|
||||
${HARVEST_TARGET}/opencolorio/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/opencolorio/bin/OpenColorIO_2_5.dll
|
||||
${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_2_5.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/opencolorio/lib
|
||||
${HARVEST_TARGET}/opencolorio/lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_opencolorio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/opencolorio/bin/OpenColorIO_d_2_5.dll
|
||||
${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_d_2_5.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/opencolorio/lib/OpenColorIO_d.lib
|
||||
${HARVEST_TARGET}/opencolorio/lib/OpenColorIO_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/opencolorio/lib/site-packages
|
||||
${HARVEST_TARGET}/opencolorio/lib/site-packages-debug
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/opencolorio/lib/cmake/OpenColorIO/OpenColorIOTargets-debug.cmake
|
||||
${HARVEST_TARGET}/opencolorio/lib/cmake/OpenColorIO/OpenColorIOTargets-debug.cmake
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
ExternalProject_Add_Step(external_opencolorio after_install
|
||||
COMMAND cp
|
||||
${LIBDIR}/yamlcpp/lib/libyaml-cpp.a
|
||||
${LIBDIR}/opencolorio/lib/
|
||||
COMMAND cp
|
||||
${LIBDIR}/expat/lib/libexpat.a
|
||||
${LIBDIR}/opencolorio/lib/
|
||||
COMMAND cp
|
||||
${LIBDIR}/pystring/lib/libpystring.a
|
||||
${LIBDIR}/opencolorio/lib/
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
|
||||
harvest(external_opencolorio opencolorio/include opencolorio/include "*.h")
|
||||
# Cmake files first because harvest_rpath_lib edits them.
|
||||
harvest(external_opencolorio opencolorio/lib/cmake/OpenColorIO opencolorio/lib/cmake/OpenColorIO "*.cmake")
|
||||
harvest_rpath_lib(external_opencolorio opencolorio/lib opencolorio/lib "*${SHAREDLIBEXT}*")
|
||||
harvest_rpath_python(
|
||||
external_opencolorio
|
||||
opencolorio/lib/python${PYTHON_SHORT_VERSION}
|
||||
python/lib/python${PYTHON_SHORT_VERSION}
|
||||
"*"
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,84 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
||||
set(OPENEXR_EXTRA_ARGS
|
||||
-DCMAKE_CXX_STANDARD_LIBRARIES=${OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES}
|
||||
)
|
||||
else()
|
||||
set(OPENEXR_EXTRA_ARGS
|
||||
)
|
||||
endif()
|
||||
|
||||
set(OPENEXR_EXTRA_ARGS
|
||||
${OPENEXR_EXTRA_ARGS}
|
||||
-DBUILD_TESTING=OFF
|
||||
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DOPENEXR_INSTALL_TOOLS=OFF
|
||||
-DImath_DIR=${LIBDIR}/imath/lib/cmake/Imath
|
||||
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||
-Dlibdeflate_DIR=${LIBDIR}/deflate/lib/cmake/libdeflate
|
||||
-Dopenjph_DIR=${LIBDIR}/openjph/lib/cmake/openjph
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openexr
|
||||
URL file://${PACKAGE_DIR}/${OPENEXR_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENEXR_HASH_TYPE}=${OPENEXR_HASH}
|
||||
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openexr
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/openexr/src/external_openexr <
|
||||
${PATCH_DIR}/openexr_deflate_cmake.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENEXR_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openexr
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_openexr after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openexr/lib
|
||||
${HARVEST_TARGET}/openexr/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openexr/include
|
||||
${HARVEST_TARGET}/openexr/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openexr/bin/Iex${OPENEXR_VERSION_POSTFIX}.dll
|
||||
${HARVEST_TARGET}/openexr/bin/Iex${OPENEXR_VERSION_POSTFIX}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openexr/bin/IlmThread${OPENEXR_VERSION_POSTFIX}.dll
|
||||
${HARVEST_TARGET}/openexr/bin/IlmThread${OPENEXR_VERSION_POSTFIX}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openexr/bin/OpenEXRCore${OPENEXR_VERSION_POSTFIX}.dll
|
||||
${HARVEST_TARGET}/openexr/bin/OpenEXRCore${OPENEXR_VERSION_POSTFIX}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openexr/bin/OpenEXRUtil${OPENEXR_VERSION_POSTFIX}.dll
|
||||
${HARVEST_TARGET}/openexr/bin/OpenEXRUtil${OPENEXR_VERSION_POSTFIX}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openexr/bin/OpenEXR${OPENEXR_VERSION_POSTFIX}.dll
|
||||
${HARVEST_TARGET}/openexr/bin/OpenEXR${OPENEXR_VERSION_POSTFIX}.dll
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_openexr openexr/include openexr/include "*.h")
|
||||
harvest(external_openexr openexr/lib/cmake/OpenEXR openexr/lib/cmake/OpenEXR "*.cmake")
|
||||
harvest_rpath_lib(external_openexr openexr/lib openexr/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
external_openexr
|
||||
external_imath
|
||||
external_deflate
|
||||
external_openjph
|
||||
)
|
||||
@@ -0,0 +1,163 @@
|
||||
# SPDX-FileCopyrightText: 2019-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(OIDN_EXTRA_ARGS
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DOIDN_APPS=OFF
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
||||
-DOIDN_FILTER_RTLIGHTMAP=OFF
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
if(APPLE)
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DOIDN_DEVICE_METAL=ON
|
||||
)
|
||||
else()
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DOIDN_DEVICE_CPU=ON
|
||||
-DLEVEL_ZERO_ROOT=${LIBDIR}/level-zero
|
||||
)
|
||||
|
||||
# x64 platforms support SyCL and HIP, ARM64 doesn't
|
||||
if(NOT BLENDER_PLATFORM_ARM)
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DOIDN_DEVICE_SYCL=ON
|
||||
-DOIDN_DEVICE_SYCL_AOT=OFF
|
||||
-DOIDN_DEVICE_CUDA=ON
|
||||
-DOIDN_DEVICE_HIP=ON)
|
||||
elseif(UNIX)
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DOIDN_DEVICE_CUDA=ON)
|
||||
endif()
|
||||
|
||||
|
||||
if(BLENDER_PLATFORM_ARM AND UNIX)
|
||||
# Target ARMv8.2-A with dot product and half float.
|
||||
# There is no -march=armv8.2-a+dotprod+fp16+lse flag for ISPC, so we target
|
||||
# a CPU with the same features. Otherwise ISPC will do something similar to
|
||||
# -march=native and results depend on the current processor.
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
"-DISPC_FLAGS_RELEASE:STRING=-O3 --cpu=cortex-a78"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WIN32 AND NOT BLENDER_PLATFORM_ARM)
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DTBB_DEBUG_LIBRARY=${LIBDIR}/tbb/lib/tbb.lib
|
||||
-DTBB_DEBUG_LIBRARY_MALLOC=${LIBDIR}/tbb/lib/tbbmalloc.lib
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
if(DEFINED ENV{ROCM_PATH})
|
||||
# Older ROCM shipped a /bin/hipconfig (no extension) and oidn
|
||||
# uses it to validate a valid rocm folder, given this file
|
||||
# is no longer shipped work around it for now by passing the
|
||||
# path ourselves, so we don't have to rely on their find rocm
|
||||
# functionality.
|
||||
cmake_path(CONVERT $ENV{ROCM_PATH} TO_CMAKE_PATH_LIST ROCM_PATH NORMALIZE)
|
||||
list(APPEND OIDN_EXTRA_ARGS -DROCM_PATH=${ROCM_PATH})
|
||||
endif()
|
||||
set(OIDN_CMAKE_FLAGS ${DEFAULT_CLANG_CMAKE_FLAGS}
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++.exe
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang.exe
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-L"${LIBDIR}/dpcpp/lib"
|
||||
-DCMAKE_EXE_LINKER_FLAGS=-L"${LIBDIR}/dpcpp/lib"
|
||||
)
|
||||
else()
|
||||
if(NOT (APPLE OR WIN32 OR BLENDER_PLATFORM_ARM))
|
||||
set(OIDN_EXTRA_ARGS
|
||||
${OIDN_EXTRA_ARGS}
|
||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/dpcpp/bin/clang++
|
||||
-DCMAKE_C_COMPILER=${LIBDIR}/dpcpp/bin/clang
|
||||
-DCMAKE_FIND_ROOT_PATH=${LIBDIR}/ocloc
|
||||
)
|
||||
endif()
|
||||
set(OIDN_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
||||
endif()
|
||||
|
||||
set(OIDN_PATCH_COMMAND
|
||||
${PATCH_CMD} --verbose -p 1 -N -d
|
||||
${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise <
|
||||
${PATCH_DIR}/oidn.diff
|
||||
)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# Replace `attrib.memoryType` with `attrib.type`.
|
||||
# See: https://github.com/ROCm/HIP/pull/2164
|
||||
set(OIDN_PATCH_COMMAND ${OIDN_PATCH_COMMAND} &&
|
||||
sed -i "s/(attrib\\.memoryType)/(attrib.type)/g"
|
||||
${BUILD_DIR}/openimagedenoise/src/external_openimagedenoise/devices/hip/hip_device.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_openimagedenoise
|
||||
URL file://${PACKAGE_DIR}/${OIDN_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OIDN_HASH_TYPE}=${OIDN_HASH}
|
||||
PREFIX ${BUILD_DIR}/openimagedenoise
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimagedenoise
|
||||
${OIDN_CMAKE_FLAGS}
|
||||
${OIDN_EXTRA_ARGS}
|
||||
|
||||
PATCH_COMMAND ${OIDN_PATCH_COMMAND}
|
||||
INSTALL_DIR ${LIBDIR}/openimagedenoise
|
||||
)
|
||||
|
||||
unset(OIDN_PATCH_COMMAND)
|
||||
|
||||
add_dependencies(
|
||||
external_openimagedenoise
|
||||
external_tbb
|
||||
external_ispc
|
||||
external_python
|
||||
)
|
||||
|
||||
if(NOT (APPLE OR WIN32 OR BLENDER_PLATFORM_ARM))
|
||||
add_dependencies(
|
||||
external_openimagedenoise
|
||||
external_dpcpp
|
||||
external_ocloc
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT (APPLE OR BLENDER_PLATFORM_ARM))
|
||||
add_dependencies(
|
||||
external_openimagedenoise
|
||||
external_level-zero
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_openimagedenoise after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openimagedenoise/bin
|
||||
${HARVEST_TARGET}/openimagedenoise/bin
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openimagedenoise/lib
|
||||
${HARVEST_TARGET}/openimagedenoise/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openimagedenoise/include
|
||||
${HARVEST_TARGET}/openimagedenoise/include
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_openimagedenoise openimagedenoise/include openimagedenoise/include "*")
|
||||
harvest_rpath_lib(external_openimagedenoise openimagedenoise/lib openimagedenoise/lib "*${SHAREDLIBEXT}*")
|
||||
harvest(external_openimagedenoise openimagedenoise/lib/cmake/OpenImageDenoise-${OIDN_VERSION} openimagedenoise/lib/cmake/OpenImageDenoise "*.cmake")
|
||||
endif()
|
||||
@@ -0,0 +1,238 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
set(OIIO_TOOLS ON)
|
||||
else()
|
||||
set(OIIO_TOOLS OFF)
|
||||
endif()
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
# This causes linking to static pthread libraries which gives link errors.
|
||||
# Since we manually specify library paths it should static link other libs.
|
||||
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=OFF)
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse4.2)
|
||||
else()
|
||||
set(OPENIMAGEIO_LINKSTATIC -DLINKSTATIC=ON)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=0)
|
||||
else()
|
||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse4.2)
|
||||
endif()
|
||||
set(OPENJPEG_POSTFIX _msvc)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(TIFF_POSTFIX d)
|
||||
set(PNG_POSTFIX d)
|
||||
else()
|
||||
set(TIFF_POSTFIX "")
|
||||
set(PNG_POSTFIX "")
|
||||
endif()
|
||||
set(PNG_LIBNAME libpng16_static${PNG_POSTFIX}${LIBEXT})
|
||||
else()
|
||||
set(PNG_LIBNAME libpng${LIBEXT})
|
||||
set(OIIO_SIMD_FLAGS "")
|
||||
set(TIFF_POSTFIX "")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
set(OPENJPEG_FLAGS
|
||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg_msvc
|
||||
)
|
||||
else()
|
||||
set(OPENJPEG_FLAGS
|
||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg
|
||||
)
|
||||
endif()
|
||||
|
||||
set(OPENIMAGEIO_EXTRA_ARGS
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
${OPENIMAGEIO_LINKSTATIC}
|
||||
-DOpenImageIO_REQUIRED_DEPS=WebP$<SEMICOLON>libjpeg-turbo$<SEMICOLON>TIFF$<SEMICOLON>OpenEXR$<SEMICOLON>PNG$<SEMICOLON>OpenJPEG$<SEMICOLON>fmt$<SEMICOLON>Robinmap$<SEMICOLON>ZLIB$<SEMICOLON>pugixml$<SEMICOLON>Python$<SEMICOLON>openjph$<SEMICOLON>TBB$<SEMICOLON>Libheif
|
||||
-DUSE_NUKE=OFF
|
||||
-DUSE_OPENVDB=OFF
|
||||
-DUSE_FREETYPE=OFF
|
||||
-DUSE_DCMTK=OFF
|
||||
-DUSE_TBB=ON
|
||||
-DUSE_QT=OFF
|
||||
-DUSE_PYTHON=ON
|
||||
-DUSE_GIF=OFF
|
||||
-DUSE_OPENCV=OFF
|
||||
-DUSE_OPENJPEG=ON
|
||||
-DUSE_FFMPEG=OFF
|
||||
-DUSE_PTEX=OFF
|
||||
-DUSE_LIBHEIF=ON
|
||||
-DUSE_LIBRAW=OFF
|
||||
-DUSE_JXL=OFF
|
||||
-DUSE_OPENCOLORIO=ON
|
||||
-DUSE_WEBP=ON
|
||||
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
|
||||
-DOIIO_BUILD_TESTS=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||
-DPNG_LIBRARY=${LIBDIR}/png/lib/${PNG_LIBNAME}
|
||||
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
|
||||
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${TIFF_POSTFIX}${LIBEXT}
|
||||
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
|
||||
-DJPEG_ROOT=${LIBDIR}/jpeg/
|
||||
-Dlibjpeg-turbo_ROOT=${LIBDIR}/jpeg/
|
||||
${OPENJPEG_FLAGS}
|
||||
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}
|
||||
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}
|
||||
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}
|
||||
-DSTOP_ON_WARNING=OFF
|
||||
-DUSE_EXTERNAL_PUGIXML=ON
|
||||
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
|
||||
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
|
||||
-Dpugixml_DIR=${LIBDIR}/pugixml/lib/cmake/pugixml
|
||||
-DOpenColorIO_DIR=${LIBDIR}/opencolorio/lib/cmake/OpenColorIO
|
||||
-DOpenImageIO_BUILD_MISSING_DEPS=""
|
||||
-DFMT_INCLUDE_DIR=${LIBDIR}/fmt/include/
|
||||
-DRobinmap_ROOT=${LIBDIR}/robinmap
|
||||
-DWebP_ROOT=${LIBDIR}/webp
|
||||
${OIIO_SIMD_FLAGS}
|
||||
-DOpenEXR_ROOT=${LIBDIR}/openexr
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-Dlibdeflate_ROOT=${LIBDIR}/deflate
|
||||
-Dfmt_ROOT=${LIBDIR}/fmt
|
||||
-Dopenjph_DIR=${LIBDIR}/openjph/lib/cmake/openjph
|
||||
-DLibheif_DIR=${LIBDIR}/libheif/lib/cmake/libheif
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
# We don't want the SOABI tags in the final filename since it gets the debug
|
||||
# tags wrong and the final .pyd won't be found by python, pybind11 will try to
|
||||
# get the tags and dump them into PYTHON_MODULE_EXTENSION every time the current
|
||||
# python interpreter doesn't match the old one, overwriting our preference.
|
||||
# To side step this behavior we set PYBIND11_PYTHON_EXECUTABLE_LAST so it'll
|
||||
# leave the PYTHON_MODULE_EXTENSION value we set alone.
|
||||
list(APPEND OPENIMAGEIO_EXTRA_ARGS -DPYBIND11_PYTHON_EXECUTABLE_LAST=${PYTHON_BINARY})
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
list(APPEND OPENIMAGEIO_EXTRA_ARGS -DPYTHON_MODULE_EXTENSION=.pyd)
|
||||
else()
|
||||
list(APPEND OPENIMAGEIO_EXTRA_ARGS -DPYTHON_MODULE_EXTENSION=_d.pyd)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_openimageio
|
||||
URL file://${PACKAGE_DIR}/${OPENIMAGEIO_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENIMAGEIO_HASH_TYPE}=${OPENIMAGEIO_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openimageio
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/openimageio/src/external_openimageio/ <
|
||||
${PATCH_DIR}/openimageio.diff &&
|
||||
${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/openimageio/src/external_openimageio/ <
|
||||
${PATCH_DIR}/openimageio_dds_3d_5133.diff
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENIMAGEIO_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openimageio
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_openimageio
|
||||
external_opencolorio
|
||||
external_png
|
||||
external_zlib
|
||||
external_openexr
|
||||
external_imath
|
||||
external_jpeg
|
||||
external_tiff
|
||||
external_pugixml
|
||||
external_fmt
|
||||
external_robinmap
|
||||
external_openjpeg${OPENJPEG_POSTFIX}
|
||||
external_webp
|
||||
external_python
|
||||
external_pybind11
|
||||
external_tbb
|
||||
external_libheif
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_openimageio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/OpenImageIO/include
|
||||
${HARVEST_TARGET}/OpenImageIO/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/OpenImageIO/lib
|
||||
${HARVEST_TARGET}/OpenImageIO/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/iconvert.exe
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/iconvert.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/idiff.exe
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/igrep.exe
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/igrep.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/iinfo.exe
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/iinfo.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/maketx.exe
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/maketx.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/oiiotool.exe
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/oiiotool.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/OpenImageIO.dll
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/OpenImageIO_Util.dll
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO_Util.dll
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_openimageio after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openimageio/lib/cmake/OpenImageIO/OpenImageIOTargets-debug.cmake
|
||||
${HARVEST_TARGET}/openimageio/lib/cmake/OpenImageIO/OpenImageIOTargets-debug.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openimageio/lib/OpenImageIO_d.lib
|
||||
${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openimageio/lib/OpenImageIO_Util_d.lib
|
||||
${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/OpenImageIO_d.dll
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/OpenImageIO/bin/OpenImageIO_Util_d.dll
|
||||
${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO_Util_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/OpenImageIO/lib/python${PYTHON_SHORT_VERSION}/
|
||||
${HARVEST_TARGET}/OpenImageIO/lib/python${PYTHON_SHORT_VERSION}_debug/
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest_rpath_bin(external_openimageio openimageio/bin openimageio/bin "*")
|
||||
harvest(external_openimageio openimageio/include openimageio/include "*")
|
||||
harvest(external_openimageio openimageio/lib/cmake/OpenImageIO openimageio/lib/cmake/OpenImageIO "*.cmake")
|
||||
harvest_rpath_lib(external_openimageio openimageio/lib openimageio/lib "*${SHAREDLIBEXT}*")
|
||||
harvest_rpath_python(external_openimageio
|
||||
openimageio/lib/python${PYTHON_SHORT_VERSION}
|
||||
python/lib/python${PYTHON_SHORT_VERSION}
|
||||
"*"
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,75 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Note the encoder/decoder may use png/tiff/lcms system libraries, but the
|
||||
# library itself does not depend on them, so should give no problems.
|
||||
|
||||
if(NOT WIN32)
|
||||
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
|
||||
|
||||
set(OPENJPEG_EXTRA_ARGS
|
||||
${OPENJPEG_EXTRA_ARGS}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_CODEC=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openjpeg
|
||||
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
||||
PREFIX ${BUILD_DIR}/openjpeg
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build &&
|
||||
${CMAKE_COMMAND}
|
||||
${OPENJPEG_EXTRA_ARGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg
|
||||
${BUILD_DIR}/openjpeg/src/external_openjpeg
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openjpeg
|
||||
)
|
||||
|
||||
harvest(external_openjpeg openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
|
||||
harvest(external_openjpeg openjpeg/lib openjpeg/lib "*.a")
|
||||
else()
|
||||
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
|
||||
ExternalProject_Add(external_openjpeg_msvc
|
||||
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
||||
|
||||
PREFIX ${BUILD_DIR}/openjpeg_msvc
|
||||
|
||||
CMAKE_ARGS
|
||||
${OPENJPEG_EXTRA_ARGS}
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg_msvc
|
||||
-DBUILD_SHARED_LIBS=Off
|
||||
-DBUILD_THIRDPARTY=OFF
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openjpeg_msvc
|
||||
)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_openjpeg_msvc after_install
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openjpeg_msvc/lib
|
||||
${HARVEST_TARGET}/openjpeg/lib &&
|
||||
${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openjpeg_msvc/include
|
||||
${HARVEST_TARGET}/openjpeg/include
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(OPENJPEG_LIBRARY libopenjp2${LIBEXT})
|
||||
@@ -0,0 +1,46 @@
|
||||
# SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(OPENJPH_EXTRA_ARGS
|
||||
-DOJPH_BUILD_TESTS=OFF
|
||||
-DOJPH_ENABLE_TIFF_SUPPORT=OFF
|
||||
-DOJPH_BUILD_EXECUTABLES=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openjph
|
||||
URL file://${PACKAGE_DIR}/${OPENJPH_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENJPH_HASH_TYPE}=${OPENJPH_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openjph
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjph
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENJPH_EXTRA_ARGS}
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -N -d
|
||||
${BUILD_DIR}/openjph/src/external_openjph/ <
|
||||
${PATCH_DIR}/openjph_table_init_243.diff
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openjph
|
||||
)
|
||||
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_openjph after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openjph
|
||||
${HARVEST_TARGET}/openjph
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_openjph openjph/include openjph/include "*.h")
|
||||
# Cmake files first because harvest_rpath_lib edits them.
|
||||
harvest(external_openjph openjph/lib/cmake/openjph openjph/lib/cmake/openjph "*.cmake")
|
||||
harvest_rpath_lib(external_openjph openjph/lib openjph/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
@@ -0,0 +1,79 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Note the utility apps may use png/tiff/gif system libraries, but the
|
||||
# library itself does not depend on them, so should give no problems.
|
||||
|
||||
set(OPENPGL_EXTRA_ARGS
|
||||
-DOPENPGL_BUILD_STATIC=ON
|
||||
-DOPENPGL_TBB_ROOT=${LIBDIR}/tbb
|
||||
-DTBB_ROOT=${LIBDIR}/tbb
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_WINDOWS_ARM)
|
||||
set(OPENPGL_LLVM_INSTALL_PATH ${LIBDIR}/llvm)
|
||||
set(OPENPGL_EXTRA_ARGS
|
||||
${OPENPGL_EXTRA_ARGS}
|
||||
-DCMAKE_CXX_COMPILER=${OPENPGL_LLVM_INSTALL_PATH}/bin/clang-cl.exe
|
||||
-DCMAKE_C_COMPILER=${OPENPGL_LLVM_INSTALL_PATH}/bin/clang-cl.exe
|
||||
-DCMAKE_C_FLAGS_INIT="--target=arm64-pc-windows-msvc"
|
||||
-DCMAKE_CXX_FLAGS_INIT="--target=arm64-pc-windows-msvc"
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=-L"${LIBDIR}/../../VS1564R/Release/llvm/lib"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(TBB_STATIC_LIBRARY)
|
||||
set(OPENPGL_EXTRA_ARGS
|
||||
${OPENPGL_EXTRA_ARGS}
|
||||
-DOPENPGL_TBB_COMPONENT=tbb_static
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_openpgl
|
||||
URL file://${PACKAGE_DIR}/${OPENPGL_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENPGL_HASH_TYPE}=${OPENPGL_HASH}
|
||||
PREFIX ${BUILD_DIR}/openpgl
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openpgl
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENPGL_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openpgl
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_openpgl
|
||||
external_tbb
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_openpgl after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openpgl
|
||||
${HARVEST_TARGET}/openpgl
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add_Step(external_openpgl after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openpgl/lib/openpgl_d.lib
|
||||
${HARVEST_TARGET}/openpgl/lib/openpgl_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION}/openpgl_Exports-debug.cmake
|
||||
${HARVEST_TARGET}/openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION}/openpgl_Exports-debug.cmake
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_openpgl openpgl/include openpgl/include "*.h")
|
||||
harvest(external_openpgl openpgl/lib openpgl/lib "*.a")
|
||||
harvest(external_openpgl openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION} openpgl/lib/cmake/openpgl "*.cmake")
|
||||
endif()
|
||||
@@ -0,0 +1,77 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(OPENSUBDIV_EXTRA_ARGS
|
||||
-DNO_LIB=OFF
|
||||
-DNO_EXAMPLES=ON
|
||||
-DNO_TUTORIALS=ON
|
||||
-DNO_REGRESSION=ON
|
||||
-DNO_PTEX=ON
|
||||
-DNO_DOC=ON
|
||||
-DNO_OMP=ON
|
||||
-DNO_TBB=OFF
|
||||
-DNO_CUDA=ON
|
||||
-DNO_OPENCL=ON
|
||||
-DNO_CLEW=ON
|
||||
-DNO_OPENGL=OFF
|
||||
-DNO_METAL=OFF
|
||||
-DNO_DX=ON
|
||||
-DNO_TESTS=ON
|
||||
-DNO_GLTESTS=ON
|
||||
-DNO_GLEW=ON
|
||||
-DNO_GLFW=ON
|
||||
-DNO_GLFW_X11=ON
|
||||
-DTBB_DIR=${LIBDIR}/tbb/lib/cmake/tbb
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_opensubdiv
|
||||
URL file://${PACKAGE_DIR}/${OPENSUBDIV_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENSUBDIV_HASH_TYPE}=${OPENSUBDIV_HASH}
|
||||
PREFIX ${BUILD_DIR}/opensubdiv
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/opensubdiv
|
||||
-Wno-dev
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENSUBDIV_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/opensubdiv
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_opensubdiv after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/opensubdiv/lib
|
||||
${HARVEST_TARGET}/opensubdiv/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/opensubdiv/include
|
||||
${HARVEST_TARGET}/opensubdiv/include
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_opensubdiv after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/opensubdiv/lib/osdCPU.lib
|
||||
${HARVEST_TARGET}/opensubdiv/lib/osdCPU_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/opensubdiv/lib/osdGPU.lib
|
||||
${HARVEST_TARGET}/opensubdiv/lib/osdGPU_d.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_opensubdiv opensubdiv/include opensubdiv/include "*.h")
|
||||
harvest_rpath_lib(external_opensubdiv opensubdiv/lib opensubdiv/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
external_opensubdiv
|
||||
external_tbb
|
||||
)
|
||||
125
blender-5.2.0/build_files/build_environment/cmake/openvdb.cmake
Normal file
125
blender-5.2.0/build_files/build_environment/cmake/openvdb.cmake
Normal file
@@ -0,0 +1,125 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(BLOSC_POST _d)
|
||||
endif()
|
||||
|
||||
set(OPENVDB_EXTRA_ARGS
|
||||
-DUSE_STATIC_DEPENDENCIES=OFF # This is the global toggle for static libs
|
||||
# Once the above switch is off, you can set it
|
||||
# for each individual library below.
|
||||
-DBLOSC_USE_STATIC_LIBS=ON
|
||||
-DTBB_USE_STATIC_LIBS=OFF
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
||||
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DBlosc_LIBRARY_RELEASE=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DBlosc_LIBRARY_DEBUG=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||
-DOPENVDB_BUILD_UNITTESTS=OFF
|
||||
-DOPENVDB_BUILD_NANOVDB=ON
|
||||
-DNANOVDB_BUILD_TOOLS=OFF
|
||||
-DBlosc_ROOT=${LIBDIR}/blosc/
|
||||
-DTBB_ROOT=${LIBDIR}/tbb/
|
||||
-DOPENVDB_CORE_SHARED=ON
|
||||
-DOPENVDB_CORE_STATIC=OFF
|
||||
-DOPENVDB_BUILD_BINARIES=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-DUSE_NANOVDB=ON
|
||||
-DOPENVDB_BUILD_PYTHON_MODULE=OFF
|
||||
-DOPENVDB_PYTHON_WRAP_ALL_GRID_TYPES=OFF
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
-Dnanobind_DIR=${LIBDIR}/nanobind/nanobind/cmake/
|
||||
# Needed to still build with VS2019
|
||||
-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON
|
||||
# Not used by Blender (see e4f9c50), and removes the Boost dependency.
|
||||
-DOPENVDB_USE_DELAYED_LOADING=OFF
|
||||
|
||||
# OPENVDB_AX Disabled for now as it adds ~25MB distribution wise
|
||||
# with no blender code depending on it, seems wasteful.
|
||||
# -DOPENVDB_BUILD_AX=ON
|
||||
# -DOPENVDB_AX_SHARED=ON
|
||||
# -DOPENVDB_AX_STATIC=OFF
|
||||
# -DLLVM_DIR=${LIBDIR}/llvm/lib/cmake/llvm
|
||||
)
|
||||
|
||||
set(OPENVDB_PATCH
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/openvdb/src/external_openvdb <
|
||||
${PATCH_DIR}/openvdb.diff
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_openvdb
|
||||
URL file://${PACKAGE_DIR}/${OPENVDB_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPENVDB_HASH_TYPE}=${OPENVDB_HASH}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
PREFIX ${BUILD_DIR}/openvdb
|
||||
PATCH_COMMAND ${OPENVDB_PATCH}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${OPENVDB_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/openvdb
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_openvdb
|
||||
external_tbb
|
||||
external_zlib
|
||||
external_blosc
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(OPENVDB_ARCH arm64)
|
||||
else()
|
||||
set(OPENVDB_ARCH amd64)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_openvdb after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/openvdb/include
|
||||
${HARVEST_TARGET}/openvdb/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openvdb/lib/openvdb.lib
|
||||
${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openvdb/bin/openvdb.dll
|
||||
${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/openvdb.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_${OPENVDB_ARCH}.pyd
|
||||
${HARVEST_TARGET}/openvdb/python/openvdb.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_${OPENVDB_ARCH}.pyd
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_openvdb after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openvdb/lib/openvdb_d.lib
|
||||
${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openvdb/bin/openvdb_d.dll
|
||||
${HARVEST_TARGET}/openvdb/bin/openvdb_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/openvdb_d.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_${OPENVDB_ARCH}.pyd
|
||||
${HARVEST_TARGET}/openvdb/python/openvdb_d.cp${PYTHON_SHORT_VERSION_NO_DOTS}-win_${OPENVDB_ARCH}.pyd
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_openvdb openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||
harvest(external_openvdb openvdb/include/nanovdb openvdb/include/nanovdb "*.h")
|
||||
harvest_rpath_lib(external_openvdb openvdb/lib openvdb/lib "lib*${SHAREDLIBEXT}*")
|
||||
harvest_rpath_python(
|
||||
external_openvdb
|
||||
openvdb/lib/python${PYTHON_SHORT_VERSION}
|
||||
python/lib/python${PYTHON_SHORT_VERSION}
|
||||
"openvdb*"
|
||||
)
|
||||
endif()
|
||||
324
blender-5.2.0/build_files/build_environment/cmake/options.cmake
Normal file
324
blender-5.2.0/build_files/build_environment/cmake/options.cmake
Normal file
@@ -0,0 +1,324 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
option(ENABLE_MSYS2 "Enable building of ffmpeg/libsndfile/fftw3/gmp by installing msys2" ON)
|
||||
option(MSYS2_USE_UPSTREAM_PACKAGES "Use upstream packages to bootstrap msys2, when OFF the blender mirror will be used" OFF)
|
||||
endif()
|
||||
option(FORCE_CHECK_HASH "Force a check of all hashes during CMake the configure phase" OFF)
|
||||
|
||||
cmake_host_system_information(RESULT NUM_CORES QUERY NUMBER_OF_LOGICAL_CORES)
|
||||
set(MAKE_THREADS ${NUM_CORES} CACHE STRING "Number of threads to run make with")
|
||||
|
||||
# Any python module building with setup.py cannot use multiple threads on windows
|
||||
# as they will try to write to the same .pdb file simultaneously which causes
|
||||
# build errors.
|
||||
if(WIN32)
|
||||
set(PYTHON_MAKE_THREADS 1)
|
||||
else()
|
||||
set(PYTHON_MAKE_THREADS ${MAKE_THREADS})
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_MODE)
|
||||
set(BUILD_MODE "Release")
|
||||
message(STATUS "Build type not specified: defaulting to a release build.")
|
||||
endif()
|
||||
message(STATUS "BuildMode = ${BUILD_MODE}")
|
||||
|
||||
if(BUILD_MODE STREQUAL "Debug")
|
||||
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Debug)
|
||||
set(MESON_BUILD_TYPE -Dbuildtype=debug)
|
||||
else()
|
||||
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Release)
|
||||
set(MESON_BUILD_TYPE -Dbuildtype=release)
|
||||
endif()
|
||||
|
||||
set(DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads" CACHE STRING "Path for downloaded files")
|
||||
|
||||
set(PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}/packages" CACHE PATH "default path for downloaded packages")
|
||||
option(PACKAGE_USE_UPSTREAM_SOURCES "Use sources upstream to download the package sources, when OFF the blender mirror will be used" ON)
|
||||
|
||||
file(TO_CMAKE_PATH ${DOWNLOAD_DIR} DOWNLOAD_DIR)
|
||||
file(TO_CMAKE_PATH ${PACKAGE_DIR} PACKAGE_DIR)
|
||||
set(PATCH_DIR ${CMAKE_CURRENT_SOURCE_DIR}/patches)
|
||||
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/build)
|
||||
|
||||
message(STATUS "LIBDIR = ${LIBDIR}")
|
||||
message(STATUS "DOWNLOAD_DIR = ${DOWNLOAD_DIR}")
|
||||
message(STATUS "PACKAGE_DIR = ${PACKAGE_DIR}")
|
||||
message(STATUS "PATCH_DIR = ${PATCH_DIR}")
|
||||
message(STATUS "BUILD_DIR = ${BUILD_DIR}")
|
||||
|
||||
if(WIN32)
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
|
||||
set(BLENDER_PLATFORM_ARM ON)
|
||||
set(BLENDER_PLATFORM_WINDOWS_ARM ON)
|
||||
endif()
|
||||
set(PATCH_CMD ${DOWNLOAD_DIR}/msys2/msys64/usr/bin/patch.exe)
|
||||
set(LIBEXT ".lib")
|
||||
set(SHAREDLIBEXT ".lib")
|
||||
set(LIBPREFIX "")
|
||||
set(MESON ${LIBDIR}/python/Scripts/meson)
|
||||
# For OIIO and OSL
|
||||
set(COMMON_DEFINES /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
|
||||
|
||||
if(MSVC_VERSION GREATER 1909)
|
||||
# Some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
||||
set(COMMON_MSVC_FLAGS "/Wv:18")
|
||||
endif()
|
||||
string(APPEND COMMON_MSVC_FLAGS " /bigobj /experimental:deterministic /utf-8")
|
||||
if(NOT BLENDER_PLATFORM_WINDOWS_ARM) #x64
|
||||
string(APPEND COMMON_MSVC_FLAGS " /arch:SSE4.2")
|
||||
endif()
|
||||
# To keep MSVC from oversubscribing the CPU, force it to single threaded mode
|
||||
# msbuild/ninja will queue as many compile units as there are cores, no need for
|
||||
# MSVC to be internally threading as well.
|
||||
string(APPEND COMMON_MSVC_FLAGS " /cgthreads1 ")
|
||||
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D_DEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
else()
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
endif()
|
||||
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /O2 /Ob2 /D_DEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
else()
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
endif()
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
|
||||
# Set similar flags for CLANG compilation.
|
||||
set(COMMON_CLANG_FLAGS "-D_DLL -D_MT") # Equivalent to MSVC /MD
|
||||
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CLANG_CMAKE_C_FLAGS_DEBUG "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrtd -O2 -D_DEBUG -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
else()
|
||||
set(BLENDER_CLANG_CMAKE_C_FLAGS_DEBUG "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrtd -g -D_DEBUG -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
endif()
|
||||
set(BLENDER_CLANG_CMAKE_C_FLAGS_MINSIZEREL "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -Os -DNDEBUG -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CLANG_CMAKE_C_FLAGS_RELEASE "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -O2 -DNDEBUG -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CLANG_CMAKE_C_FLAGS_RELWITHDEBINFO "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -g -O2 -DNDEBUG -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CLANG_CMAKE_CXX_FLAGS_DEBUG "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrtd -D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS -O2 -D_DEBUG -DPLATFORM_WINDOWS -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
else()
|
||||
set(BLENDER_CLANG_CMAKE_CXX_FLAGS_DEBUG "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrtd -D_DEBUG -DPLATFORM_WINDOWS -D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS -g -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
endif()
|
||||
set(BLENDER_CLANG_CMAKE_CXX_FLAGS_MINSIZEREL "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS -O2 -DNDEBUG -DPLATFORM_WINDOWS -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CLANG_CMAKE_CXX_FLAGS_RELEASE "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS -O2 -DNDEBUG -DPLATFORM_WINDOWS -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
set(BLENDER_CLANG_CMAKE_CXX_FLAGS_RELWITHDEBINFO "${COMMON_CLANG_FLAGS} -Xclang --dependent-lib=msvcrt -D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS -g -O2 -DNDEBUG -DPLATFORM_WINDOWS -DPSAPI_VERSION=2 -DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||
|
||||
set(DEFAULT_CLANG_CMAKE_FLAGS
|
||||
-DCMAKE_BUILD_TYPE=${BUILD_MODE}
|
||||
-DCMAKE_C_FLAGS_DEBUG=${BLENDER_CLANG_CMAKE_C_FLAGS_DEBUG}
|
||||
-DCMAKE_C_FLAGS_MINSIZEREL=${BLENDER_CLANG_CMAKE_C_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_C_FLAGS_RELEASE=${BLENDER_CLANG_CMAKE_C_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO=${BLENDER_CLANG_CMAKE_C_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${BLENDER_CLANG_CMAKE_CXX_FLAGS_DEBUG}
|
||||
-DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CLANG_CMAKE_CXX_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CLANG_CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${BLENDER_CLANG_CMAKE_CXX_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_CXX_STANDARD=20
|
||||
)
|
||||
|
||||
set(PLATFORM_FLAGS "")
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
# In some cases on ARM64 (unsure why), dep builds using the "Ninja" generator appear to use
|
||||
# the x86 host tools (ie, x86 cl.exe producing ARM64 binaries). This is problematic when
|
||||
# building things like LLVM, as memory is limited to 3GB, giving internal compiler errors.
|
||||
# Here, we set CMAKE_C_COMPILER et al via PLATFORM_CMAKE_FLAGS to point to the ARM64 native
|
||||
# binary, which doesn't have this issue.
|
||||
# We make an assumption that the tools (ie, right now in the code) are the ones we want
|
||||
set(PLATFORM_CMAKE_FLAGS
|
||||
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||
-DCMAKE_AR=${CMAKE_AR}
|
||||
-DCMAKE_LINKER=${CMAKE_LINKER}
|
||||
-DCMAKE_MT=${CMAKE_MT}
|
||||
-DCMAKE_RC_COMPILER=${CMAKE_RC_COMPILER}
|
||||
)
|
||||
else()
|
||||
set(PLATFORM_CMAKE_FLAGS "")
|
||||
endif()
|
||||
|
||||
set(MINGW_PATH ${DOWNLOAD_DIR}/msys2/msys64/)
|
||||
set(MINGW_SHELL ming64sh.cmd)
|
||||
set(PERL_SHELL ${DOWNLOAD_DIR}/perl/portableshell.bat)
|
||||
set(MINGW_HOST x86_64-w64-mingw32)
|
||||
|
||||
set(MINGW_CFLAGS "")
|
||||
set(MINGW_LDFLAGS "")
|
||||
|
||||
# some build systems like meson will respect the *nix like environment vars
|
||||
# like CFLAGS and LDFlags but will still build with the MSVC compiler, so for
|
||||
# those we need to empty out the gcc style flags that are normally in there.
|
||||
set(CONFIGURE_ENV_MSVC
|
||||
cd ${MINGW_PATH} &&
|
||||
call ${PERL_SHELL} &&
|
||||
call ${MINGW_SHELL} &&
|
||||
set path &&
|
||||
set CFLAGS= &&
|
||||
set LDFLAGS=
|
||||
)
|
||||
|
||||
set(CONFIGURE_ENV
|
||||
cd ${MINGW_PATH} &&
|
||||
call ${PERL_SHELL} &&
|
||||
call ${MINGW_SHELL} &&
|
||||
set path &&
|
||||
set CC=cl &&
|
||||
set CXX=cl &&
|
||||
set CFLAGS=${MINGW_CFLAGS} &&
|
||||
set LDFLAGS=${MINGW_LDFLAGS}
|
||||
)
|
||||
|
||||
set(CONFIGURE_ENV_NO_PERL
|
||||
cd ${MINGW_PATH} &&
|
||||
call ${MINGW_SHELL} &&
|
||||
set path &&
|
||||
set CC=cl &&
|
||||
set CXX=cl &&
|
||||
set LD=link &&
|
||||
set CFLAGS=${MINGW_CFLAGS} &&
|
||||
set LDFLAGS=${MINGW_LDFLAGS}
|
||||
)
|
||||
|
||||
set(CONFIGURE_ENV_CLANG_CL_NO_PERL
|
||||
cd ${MINGW_PATH} &&
|
||||
call ${MINGW_SHELL} &&
|
||||
set path &&
|
||||
set CC=${LIBDIR}/llvm/bin/clang-cl.exe &&
|
||||
set CXX=${LIBDIR}/llvm/bin/clang-cl.exe &&
|
||||
set RANLIB=${LIBDIR}/llvm/bin/llvm-ranlib.exe &&
|
||||
set RC=${LIBDIR}/llvm/bin/llvm-rc.exe &&
|
||||
set AR=${LIBDIR}/llvm/bin/llvm-ar.exe &&
|
||||
set CFLAGS=${MINGW_CFLAGS} &&
|
||||
set LDFLAGS=${MINGW_LDFLAGS}
|
||||
)
|
||||
|
||||
set(CONFIGURE_COMMAND sh ./configure)
|
||||
set(CONFIGURE_COMMAND_NO_TARGET ${CONFIGURE_COMMAND})
|
||||
else()
|
||||
set(PATCH_CMD patch)
|
||||
set(LIBEXT ".a")
|
||||
set(LIBPREFIX "lib")
|
||||
set(MESON ${LIBDIR}/python/bin/meson)
|
||||
if(APPLE)
|
||||
set(SHAREDLIBEXT ".dylib")
|
||||
|
||||
# Use same Xcode detection as Blender itself.
|
||||
include(../cmake/platform/platform_apple_xcode.cmake)
|
||||
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(BLENDER_PLATFORM_ARM ON)
|
||||
endif()
|
||||
|
||||
set(PLATFORM_CFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||
set(PLATFORM_CXXFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -std=c++20 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||
set(PLATFORM_LDFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES} -headerpad_max_install_names")
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin19.0.0) # OS X 10.15
|
||||
else()
|
||||
set(PLATFORM_BUILD_TARGET --build=aarch64-apple-darwin20.0.0) # macOS 11.00
|
||||
endif()
|
||||
set(PLATFORM_CMAKE_FLAGS
|
||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
||||
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
|
||||
-DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT}
|
||||
)
|
||||
else()
|
||||
set(SHAREDLIBEXT ".so")
|
||||
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
|
||||
set(BLENDER_PLATFORM_ARM ON)
|
||||
endif()
|
||||
|
||||
set(PLATFORM_CFLAGS "-fPIC")
|
||||
set(PLATFORM_CXXFLAGS "-std=c++20 -fPIC")
|
||||
set(PLATFORM_LDFLAGS "")
|
||||
set(PLATFORM_BUILD_TARGET "")
|
||||
set(PLATFORM_CMAKE_FLAGS -DCMAKE_INSTALL_LIBDIR=lib)
|
||||
|
||||
# Target ARMv8.2-A with dot product and half float.
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -march=armv8.2-a+dotprod+fp16+lse")
|
||||
set(PLATFORM_CXXFLAGS "${PLATFORM_CXXFLAGS} -fPIC -march=armv8.2-a+dotprod+fp16+lse")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CFLAGS}")
|
||||
else()
|
||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "-g ${PLATFORM_CFLAGS}")
|
||||
endif()
|
||||
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG ${PLATFORM_CFLAGS}")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${PLATFORM_CFLAGS}")
|
||||
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CFLAGS}")
|
||||
|
||||
if(WITH_OPTIMIZED_DEBUG)
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "-O2 -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
||||
else()
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "-g ${PLATFORM_CXXFLAGS}")
|
||||
endif()
|
||||
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
||||
|
||||
set(CONFIGURE_ENV
|
||||
export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} &&
|
||||
export MACOSX_SDK_VERSION=${CMAKE_OSX_DEPLOYMENT_TARGET} &&
|
||||
export CFLAGS=${PLATFORM_CFLAGS} &&
|
||||
export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
|
||||
export LDFLAGS=${PLATFORM_LDFLAGS}
|
||||
)
|
||||
set(CONFIGURE_ENV_NO_PERL ${CONFIGURE_ENV})
|
||||
set(CONFIGURE_COMMAND ./configure ${PLATFORM_BUILD_TARGET})
|
||||
set(CONFIGURE_COMMAND_NO_TARGET ./configure)
|
||||
endif()
|
||||
|
||||
set(DEFAULT_CMAKE_FLAGS
|
||||
-DCMAKE_BUILD_TYPE=${BUILD_MODE}
|
||||
-DCMAKE_C_FLAGS_DEBUG=${BLENDER_CMAKE_C_FLAGS_DEBUG}
|
||||
-DCMAKE_C_FLAGS_MINSIZEREL=${BLENDER_CMAKE_C_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_C_FLAGS_RELEASE=${BLENDER_CMAKE_C_FLAGS_RELEASE}
|
||||
-DCMAKE_C_FLAGS_RELWITHDEBINFO=${BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_CXX_FLAGS_DEBUG=${BLENDER_CMAKE_CXX_FLAGS_DEBUG}
|
||||
-DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL}
|
||||
-DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CMAKE_CXX_FLAGS_RELEASE}
|
||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO}
|
||||
-DCMAKE_CXX_STANDARD=20
|
||||
${PLATFORM_CMAKE_FLAGS}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(ZLIB_LIBRARY zlibstaticd${LIBEXT})
|
||||
else()
|
||||
set(ZLIB_LIBRARY zlibstatic${LIBEXT})
|
||||
endif()
|
||||
else()
|
||||
set(ZLIB_LIBRARY libz${LIBEXT})
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
endif()
|
||||
|
||||
set(CMAKE_INSTALL_MESSAGE LAZY)
|
||||
|
||||
# On windows we sometimes want to build with ninja, but not all projects quite
|
||||
# yet, so for select project we pass PLATFORM_ALT_GENERATOR as the generator
|
||||
if(WIN32)
|
||||
set(PLATFORM_ALT_GENERATOR "Ninja")
|
||||
else()
|
||||
set(PLATFORM_ALT_GENERATOR "Unix Makefiles")
|
||||
endif()
|
||||
59
blender-5.2.0/build_files/build_environment/cmake/opus.cmake
Normal file
59
blender-5.2.0/build_files/build_environment/cmake/opus.cmake
Normal file
@@ -0,0 +1,59 @@
|
||||
# SPDX-FileCopyrightText: 2002-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(MSVC)
|
||||
set(OPUS_CMAKE_ARGS
|
||||
-DPACKAGE_VERSION=${OPUS_VERSION}
|
||||
-DOPUS_BUILD_PROGRAMS=OFF
|
||||
-DOPUS_BUILD_TESTING=OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT WIN32)
|
||||
ExternalProject_Add(external_opus
|
||||
URL file://${PACKAGE_DIR}/${OPUS_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPUS_HASH_TYPE}=${OPUS_HASH}
|
||||
PREFIX ${BUILD_DIR}/opus
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/opus/src/external_opus/ &&
|
||||
${CONFIGURE_COMMAND}
|
||||
--prefix=${LIBDIR}/opus
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
--disable-maintainer-mode
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/opus/src/external_opus/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/opus/src/external_opus/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/opus
|
||||
)
|
||||
|
||||
harvest(external_opus opus/lib ffmpeg/lib "*.a")
|
||||
else()
|
||||
ExternalProject_Add(external_opus
|
||||
URL file://${PACKAGE_DIR}/${OPUS_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${OPUS_HASH_TYPE}=${OPUS_HASH}
|
||||
PREFIX ${BUILD_DIR}/opus
|
||||
|
||||
PATCH_COMMAND COMMAND
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/opus/src/external_opus <
|
||||
${PATCH_DIR}/opus_windows.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/opus
|
||||
${OPUS_CMAKE_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/opus
|
||||
)
|
||||
endif()
|
||||
176
blender-5.2.0/build_files/build_environment/cmake/osl.cmake
Normal file
176
blender-5.2.0/build_files/build_environment/cmake/osl.cmake
Normal file
@@ -0,0 +1,176 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
string(REPLACE "-DCMAKE_CXX_STANDARD=20" " " OSL_CMAKE_FLAGS "${DEFAULT_CMAKE_FLAGS}")
|
||||
|
||||
if(WIN32)
|
||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
||||
set(OSL_CMAKE_LINKER_FLAGS "")
|
||||
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
|
||||
else()
|
||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "")
|
||||
# llvm-config will add -lxml2. Make sure it can be found and that no system
|
||||
# library is used instead.
|
||||
set(OSL_CMAKE_LINKER_FLAGS "-L${LIBDIR}/xml2/lib")
|
||||
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/OpenImageIO${SHAREDLIBEXT};${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}")
|
||||
|
||||
if(APPLE)
|
||||
# Explicitly specify Homebrew path, so we don't use the old system one.
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(OSL_FLEX_BISON -DBISON_EXECUTABLE=/opt/homebrew/opt/bison/bin/bison)
|
||||
else()
|
||||
set(OSL_FLEX_BISON -DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison)
|
||||
endif()
|
||||
else()
|
||||
set(OSL_FLEX_BISON "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(OSL_EXTRA_ARGS
|
||||
-DOpenImageIO_ROOT=${LIBDIR}/openimageio/
|
||||
-DOSL_BUILD_TESTS=OFF
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
${OSL_FLEX_BISON}
|
||||
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
|
||||
-DCMAKE_EXE_LINKER_FLAGS=${OSL_CMAKE_LINKER_FLAGS}
|
||||
-DCMAKE_SHARED_LINKER_FLAGS=${OSL_CMAKE_LINKER_FLAGS}
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DLINKSTATIC=OFF
|
||||
-DOSL_BUILD_PLUGINS=OFF
|
||||
-DSTOP_ON_WARNING=OFF
|
||||
-DUSE_LLVM_BITCODE=ON
|
||||
-DLLVM_ROOT=${LIBDIR}/llvm/
|
||||
-DLLVM_STATIC=ON
|
||||
-DUSE_PARTIO=OFF
|
||||
-DUSE_QT=OFF
|
||||
-DINSTALL_DOCS=OFF
|
||||
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
||||
-DUSE_PYTHON=ON
|
||||
-DImath_ROOT=${LIBDIR}/imath
|
||||
-DCMAKE_DEBUG_POSTFIX=_d
|
||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
||||
-DPython_ROOT=${LIBDIR}/python
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
-Dlibdeflate_DIR=${LIBDIR}/deflate/lib/cmake/libdeflate
|
||||
)
|
||||
|
||||
if(NOT (APPLE OR BLENDER_PLATFORM_WINDOWS_ARM))
|
||||
list(APPEND OSL_EXTRA_ARGS
|
||||
-DOSL_USE_OPTIX=ON
|
||||
-DCUDA_TARGET_ARCH=sm_50
|
||||
-DCUDA_TOOLKIT_ROOT_DIR=${CUDAToolkit_ROOT}
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_osl
|
||||
URL file://${PACKAGE_DIR}/${OSL_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
LIST_SEPARATOR ^^
|
||||
URL_HASH ${OSL_HASH_TYPE}=${OSL_HASH}
|
||||
PREFIX ${BUILD_DIR}/osl
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/osl/src/external_osl <
|
||||
${PATCH_DIR}/osl.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/osl/src/external_osl <
|
||||
${PATCH_DIR}/osl_ptx_version.diff &&
|
||||
${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/osl/src/external_osl <
|
||||
${PATCH_DIR}/osl_relative_inc_cmake.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl
|
||||
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
${OSL_CMAKE_FLAGS}
|
||||
${OSL_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/osl
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_osl
|
||||
external_llvm
|
||||
external_openexr
|
||||
external_zlib
|
||||
external_openimageio
|
||||
external_pugixml
|
||||
external_python
|
||||
external_pybind11
|
||||
)
|
||||
if(WIN32)
|
||||
add_dependencies(
|
||||
external_osl
|
||||
external_flexbison
|
||||
)
|
||||
elseif(UNIX AND NOT APPLE)
|
||||
add_dependencies(
|
||||
external_osl
|
||||
external_flex
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_osl after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/osl/
|
||||
${HARVEST_TARGET}/osl
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_osl after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/lib/cmake/OSL/OSLTargets-debug.cmake
|
||||
${HARVEST_TARGET}/osl/lib/cmake/OSL/OSLTargets-debug.cmake
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/lib/oslcomp_d.lib
|
||||
${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/lib/oslexec_d.lib
|
||||
${HARVEST_TARGET}/osl/lib/oslexec_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/lib/oslquery_d.lib
|
||||
${HARVEST_TARGET}/osl/lib/oslquery_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/lib/oslnoise_d.lib
|
||||
${HARVEST_TARGET}/osl/lib/oslnoise_d.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/bin/oslcomp_d.dll
|
||||
${HARVEST_TARGET}/osl/bin/oslcomp_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/bin/oslexec_d.dll
|
||||
${HARVEST_TARGET}/osl/bin/oslexec_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/bin/oslquery_d.dll
|
||||
${HARVEST_TARGET}/osl/bin/oslquery_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/osl/bin/oslnoise_d.dll
|
||||
${HARVEST_TARGET}/osl/bin/oslnoise_d.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/osl/lib/python${PYTHON_SHORT_VERSION}/
|
||||
${HARVEST_TARGET}/osl/lib/python${PYTHON_SHORT_VERSION}_debug/
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest_rpath_bin(external_osl osl/bin osl/bin "*")
|
||||
harvest(external_osl osl/include osl/include "*.h")
|
||||
# Cmake files first because harvest_rpath_lib edits them.
|
||||
harvest(external_osl osl/lib/cmake/OSL osl/lib/cmake/OSL "*.cmake")
|
||||
harvest_rpath_lib(external_osl osl/lib osl/lib "*${SHAREDLIBEXT}*")
|
||||
harvest(external_osl osl/share/OSL/shaders osl/share/OSL/shaders "*.h")
|
||||
harvest_rpath_python(external_osl
|
||||
osl/lib/python${PYTHON_SHORT_VERSION}
|
||||
python/lib/python${PYTHON_SHORT_VERSION}
|
||||
"*"
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,106 @@
|
||||
# SPDX-FileCopyrightText: 2019-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(MSVC)
|
||||
set(PYTARGET ${HARVEST_TARGET}/python/${PYTHON_SHORT_VERSION_NO_DOTS})
|
||||
set(PYSRC ${LIBDIR}/python/)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
add_custom_command(
|
||||
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||
|
||||
COMMAND echo packaging python
|
||||
COMMAND echo this should output at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
||||
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python.exe
|
||||
${PYTARGET}/bin/python.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}.dll
|
||||
${PYTARGET}/bin/python${PYTHON_SHORT_VERSION_NO_DOTS}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python3${PYTHON_POSTFIX}.dll
|
||||
${PYTARGET}/bin/python3${PYTHON_POSTFIX}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}.pdb
|
||||
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.pdb
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${PYSRC}/include/
|
||||
${PYTARGET}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${PYSRC}/lib/
|
||||
${PYTARGET}/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${PYSRC}/DLLs/
|
||||
${PYTARGET}/DLLs/
|
||||
|
||||
COMMAND cd ${PYTARGET}/lib/ &&
|
||||
for /d /r . %%d in (__pycache__) do @if exist "%%d" echo "%%d" &&
|
||||
rd /s/q "%%d"
|
||||
)
|
||||
add_custom_target(Package_Python
|
||||
ALL
|
||||
DEPENDS
|
||||
external_python
|
||||
external_numpy
|
||||
external_python_site_packages
|
||||
external_zstandard
|
||||
external_cython
|
||||
OUTPUT
|
||||
${HARVEST_TARGET}/python/${PYTHON_SHORT_VERSION_NO_DOTS}/bin/python${PYTHON_POSTFIX}.exe
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
add_custom_command(
|
||||
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||
|
||||
COMMAND echo packaging python
|
||||
COMMAND echo this should output at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
|
||||
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python${PYTHON_POSTFIX}.exe
|
||||
${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll
|
||||
${PYTARGET}/bin/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python3${PYTHON_POSTFIX}.dll
|
||||
${PYTARGET}/bin/python3${PYTHON_POSTFIX}.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PYSRC}/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb
|
||||
${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.pdb
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${PYSRC}/include/
|
||||
${PYTARGET}/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${PYSRC}/lib/
|
||||
${PYTARGET}/lib/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${PYSRC}/DLLs/
|
||||
${PYTARGET}/DLLs/
|
||||
|
||||
COMMAND cd ${PYTARGET}/lib/ &&
|
||||
for /d /r . %%d in (__pycache__) do @if exist "%%d" echo "%%d" &&
|
||||
rd /s/q "%%d"
|
||||
)
|
||||
add_custom_target(Package_Python
|
||||
ALL
|
||||
DEPENDS
|
||||
external_python
|
||||
external_numpy
|
||||
external_python_site_packages
|
||||
external_zstandard
|
||||
external_cython
|
||||
OUTPUT
|
||||
${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,19 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PARALLELHASHMAP_EXTRA_ARGS
|
||||
-DPHMAP_BUILD_TESTS=OFF
|
||||
-DPHMAP_BUILD_EXAMPLES=OFF
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_parallelhashmap
|
||||
URL file://${PACKAGE_DIR}/${PARALLEL_HASHMAP_FILE}
|
||||
URL_HASH ${PARALLEL_HASHMAP_HASH_TYPE}=${PARALLEL_HASHMAP_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/parallelhashmap
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/parallelhashmap
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${PARALLELHASHMAP_EXTRA_ARGS}
|
||||
)
|
||||
65
blender-5.2.0/build_files/build_environment/cmake/png.cmake
Normal file
65
blender-5.2.0/build_files/build_environment/cmake/png.cmake
Normal file
@@ -0,0 +1,65 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PNG_EXTRA_ARGS
|
||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||
-DPNG_STATIC=ON
|
||||
)
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(PNG_EXTRA_ARGS
|
||||
${PNG_EXTRA_ARGS}
|
||||
-DPNG_HARDWARE_OPTIMIZATIONS=ON
|
||||
-DPNG_ARM_NEON=on
|
||||
-DCMAKE_SYSTEM_PROCESSOR="aarch64"
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_png
|
||||
URL file://${PACKAGE_DIR}/${PNG_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PNG_HASH_TYPE}=${PNG_HASH}
|
||||
PREFIX ${BUILD_DIR}/png
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/png
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${PNG_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/png
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_png
|
||||
external_zlib
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_png after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/png/include/
|
||||
${HARVEST_TARGET}/png/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/png/lib/libpng16_static${LIBEXT}
|
||||
${HARVEST_TARGET}/png/lib/libpng${LIBEXT}
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_png after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/png/lib/libpng16_staticd${LIBEXT}
|
||||
${LIBDIR}/png/lib/libpng16${LIBEXT}
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_png png/include png/include "*.h")
|
||||
harvest(external_png png/lib png/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,38 @@
|
||||
# SPDX-FileCopyrightText: 2012-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(POTRACE_EXTRA_ARGS
|
||||
)
|
||||
|
||||
if((WIN32 AND BUILD_MODE STREQUAL Release) OR UNIX)
|
||||
ExternalProject_Add(external_potrace
|
||||
URL file://${PACKAGE_DIR}/${POTRACE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${POTRACE_HASH_TYPE}=${POTRACE_HASH}
|
||||
PREFIX ${BUILD_DIR}/potrace
|
||||
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PATCH_DIR}/cmakelists_potrace.txt
|
||||
${BUILD_DIR}/potrace/src/external_potrace/CMakeLists.txt
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/potrace
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${POTRACE_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/potrace
|
||||
)
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_potrace after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/potrace
|
||||
${HARVEST_TARGET}/potrace
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
harvest(external_potrace potrace/include potrace/include "*.h")
|
||||
harvest(external_potrace potrace/lib potrace/lib "*.a")
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,64 @@
|
||||
# SPDX-FileCopyrightText: 2017-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
|
||||
if(MSVC14) # vs2015 has timespec
|
||||
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H /D_TIMESPEC_DEFINED ")
|
||||
else() # everything before doesn't
|
||||
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H ")
|
||||
endif()
|
||||
|
||||
set(PTHREADS_BUILD
|
||||
cd ${BUILD_DIR}/pthreads/src/external_pthreads/ &&
|
||||
cd &&
|
||||
nmake VC-static /e CPPFLAGS=${PTHREAD_CPPFLAGS}
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_pthreads
|
||||
URL file://${PACKAGE_DIR}/${PTHREADS_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PTHREADS_HASH_TYPE}=${PTHREADS_HASH}
|
||||
PREFIX ${BUILD_DIR}/pthreads
|
||||
CONFIGURE_COMMAND echo .
|
||||
|
||||
PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/pthreads/src/external_pthreads <
|
||||
${PATCH_DIR}/pthreads.diff
|
||||
|
||||
BUILD_COMMAND ${PTHREADS_BUILD}
|
||||
|
||||
INSTALL_COMMAND COMMAND
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/pthreads/src/external_pthreads/libpthreadVC3${LIBEXT}
|
||||
${LIBDIR}/pthreads/lib/pthreadVC3${LIBEXT} &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/pthreads/src/external_pthreads/pthread.h
|
||||
${LIBDIR}/pthreads/inc/pthread.h &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/pthreads/src/external_pthreads/sched.h
|
||||
${LIBDIR}/pthreads/inc/sched.h &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/pthreads/src/external_pthreads/semaphore.h
|
||||
${LIBDIR}/pthreads/inc/semaphore.h &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${BUILD_DIR}/pthreads/src/external_pthreads/_ptw32.h
|
||||
${LIBDIR}/pthreads/inc/_ptw32.h
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/pthreads
|
||||
)
|
||||
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_pthreads after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/pthreads/inc/
|
||||
${HARVEST_TARGET}/pthreads/include/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/pthreads/lib/
|
||||
${HARVEST_TARGET}/pthreads/lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,43 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PUGIXML_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_pugixml
|
||||
URL file://${PACKAGE_DIR}/${PUGIXML_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PUGIXML_HASH_TYPE}=${PUGIXML_HASH}
|
||||
PREFIX ${BUILD_DIR}/pugixml
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/pugixml
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${PUGIXML_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/pugixml
|
||||
)
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_pugixml after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/pugixml
|
||||
${HARVEST_TARGET}/pugixml
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_pugixml after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/pugixml/lib/pugixml.lib
|
||||
${HARVEST_TARGET}/pugixml/lib/pugixml_d.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_pugixml pugixml/include pugixml/include "*.hpp")
|
||||
harvest(external_pugixml pugixml/lib pugixml/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,28 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PYBIND11_EXTRA_ARGS
|
||||
-DPYBIND11_TEST=OFF
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_pybind11
|
||||
URL file://${PACKAGE_DIR}/${PYBIND11_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PYBIND11_HASH_TYPE}=${PYBIND11_HASH}
|
||||
PREFIX ${BUILD_DIR}/pybind11
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/pybind11
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${PYBIND11_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/pybind11
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_pybind11
|
||||
external_python
|
||||
)
|
||||
@@ -0,0 +1,37 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PYSTRING_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_pystring
|
||||
URL file://${PACKAGE_DIR}/${PYSTRING_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PYSTRING_HASH_TYPE}=${PYSTRING_HASH}
|
||||
PREFIX ${BUILD_DIR}/pystring
|
||||
|
||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PATCH_DIR}/cmakelists_pystring.txt
|
||||
${BUILD_DIR}/pystring/src/external_pystring/CMakeLists.txt
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/pystring
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${PYSTRING_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/pystring
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
ExternalProject_Add_Step(external_pystring after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/pystring/lib
|
||||
${HARVEST_TARGET}/pystring/lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/pystring/include
|
||||
${HARVEST_TARGET}/pystring/include
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
254
blender-5.2.0/build_files/build_environment/cmake/python.cmake
Normal file
254
blender-5.2.0/build_files/build_environment/cmake/python.cmake
Normal file
@@ -0,0 +1,254 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(PYTHON_POSTFIX "")
|
||||
set(PYTHON_EXTRA_INSTALL_FLAGS "")
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
set(PYTHON_POSTFIX _d)
|
||||
set(PYTHON_EXTRA_INSTALL_FLAGS -d)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(PYTHON_BINARY ${LIBDIR}/python/python${PYTHON_POSTFIX}.exe)
|
||||
set(PYTHON_SRC ${BUILD_DIR}/python/src/external_python/)
|
||||
# Return values:
|
||||
# - `${ResultingPath}`: the DOS-style path.
|
||||
function(cmake_to_dos_path MsysPath ResultingPath)
|
||||
string(REPLACE "/" "\\" _result "${MsysPath}")
|
||||
set(${ResultingPath} "${_result}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(PYTHON_BINARY_INTERNAL ${BUILD_DIR}/python/src/external_python/PCBuild/arm64/python${PYTHON_POSTFIX}.exe)
|
||||
set(PYTHON_BAT_ARCH arm64)
|
||||
set(PYTHON_INSTALL_ARCH_FOLDER ${PYTHON_SRC}/PCbuild/arm64)
|
||||
set(PYTHON_PATCH_FILE python_windows_arm64.diff)
|
||||
else()
|
||||
set(PYTHON_BINARY_INTERNAL ${BUILD_DIR}/python/src/external_python/PCBuild/amd64/python${PYTHON_POSTFIX}.exe)
|
||||
set(PYTHON_BAT_ARCH x64)
|
||||
set(PYTHON_INSTALL_ARCH_FOLDER ${PYTHON_SRC}/PCbuild/amd64)
|
||||
set(PYTHON_PATCH_FILE python_windows_x64.diff)
|
||||
endif()
|
||||
|
||||
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
|
||||
set(ZLIB_SOURCE_FOLDER ${BUILD_DIR}/zlib/src/external_zlib)
|
||||
set(SSL_SOURCE_FOLDER ${BUILD_DIR}/ssl/src/external_ssl)
|
||||
set(FFI_SOURCE_FOLDER ${LIBDIR}/ffi)
|
||||
set(SQLITE_SOURCE_FOLDER ${BUILD_DIR}/sqlite/src/external_sqlite)
|
||||
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
|
||||
|
||||
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS)
|
||||
cmake_to_dos_path(${ZLIB_SOURCE_FOLDER} ZLIB_SOURCE_FOLDER_DOS)
|
||||
cmake_to_dos_path(${FFI_SOURCE_FOLDER} FFI_SOURCE_FOLDER_DOS)
|
||||
cmake_to_dos_path(${SSL_SOURCE_FOLDER} SSL_SOURCE_FOLDER_DOS)
|
||||
cmake_to_dos_path(${SQLITE_SOURCE_FOLDER} SQLITE_SOURCE_FOLDER_DOS)
|
||||
cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
|
||||
|
||||
ExternalProject_Add(external_python
|
||||
URL file://${PACKAGE_DIR}/${PYTHON_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PYTHON_HASH_TYPE}=${PYTHON_HASH}
|
||||
PREFIX ${BUILD_DIR}/python
|
||||
|
||||
# Python will download its own deps and there's very little we can do about
|
||||
# that beyond placing some code in their externals dir before it tries.
|
||||
# the foldernames *HAVE* to match the ones inside pythons get_externals.cmd.
|
||||
# regardless of the version actually in there.
|
||||
PATCH_COMMAND mkdir ${PYTHON_EXTERNALS_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\libffi-3.4.4 ${FFI_SOURCE_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\zlib-1.3.1 ${ZLIB_SOURCE_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\openssl-3.0.19 ${SSL_SOURCE_FOLDER_DOS} &&
|
||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\sqlite-3.50.4.0 ${SQLITE_SOURCE_FOLDER_DOS} &&
|
||||
${CMAKE_COMMAND} -E copy
|
||||
${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h
|
||||
${PYTHON_EXTERNALS_FOLDER}/zlib-1.3.1/zconf.h &&
|
||||
${PATCH_CMD} --verbose -p1 -d
|
||||
${BUILD_DIR}/python/src/external_python <
|
||||
${PATCH_DIR}/${PYTHON_PATCH_FILE}
|
||||
|
||||
CONFIGURE_COMMAND echo "."
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV_MSVC} &&
|
||||
cd ${BUILD_DIR}/python/src/external_python/pcbuild/ &&
|
||||
set IncludeTkinter=false &&
|
||||
set LDFLAGS=/DEBUG &&
|
||||
call prepare_ssl.bat &&
|
||||
call build.bat -e -p ${PYTHON_BAT_ARCH} -c ${BUILD_MODE}
|
||||
|
||||
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py
|
||||
-b ${PYTHON_INSTALL_ARCH_FOLDER}
|
||||
-s ${PYTHON_SRC}
|
||||
-t ${PYTHON_SRC}/tmp/
|
||||
--include-stable
|
||||
--include-pip
|
||||
--include-dev
|
||||
--include-launchers
|
||||
--include-venv
|
||||
--include-symbols
|
||||
${PYTHON_EXTRA_INSTALL_FLAGS}
|
||||
--copy
|
||||
${LIBDIR}/python
|
||||
)
|
||||
add_dependencies(
|
||||
external_python
|
||||
external_zlib
|
||||
)
|
||||
else()
|
||||
if(APPLE)
|
||||
# Disable functions that can be in 10.13 sdk but aren't available on 10.9 target.
|
||||
#
|
||||
# Disable libintl (gettext library) as it might come from Homebrew, which makes
|
||||
# it so test program compiles, but the Python does not. This is because for Python
|
||||
# we use isysroot, which seems to forbid using libintl.h.
|
||||
# The gettext functionality seems to come from CoreFoundation, so should be all fine.
|
||||
set(PYTHON_FUNC_CONFIGS
|
||||
export ac_cv_func_futimens=no &&
|
||||
export ac_cv_func_utimensat=no &&
|
||||
export ac_cv_func_basename_r=no &&
|
||||
export ac_cv_func_clock_getres=no &&
|
||||
export ac_cv_func_clock_gettime=no &&
|
||||
export ac_cv_func_clock_settime=no &&
|
||||
export ac_cv_func_dirname_r=no &&
|
||||
export ac_cv_func_getentropy=no &&
|
||||
export ac_cv_func_mkostemp=no &&
|
||||
export ac_cv_func_mkostemps=no &&
|
||||
export ac_cv_func_timingsafe_bcmp=no &&
|
||||
export ac_cv_header_libintl_h=no &&
|
||||
export ac_cv_lib_intl_textdomain=no
|
||||
)
|
||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||
set(PYTHON_FUNC_CONFIGS ${PYTHON_FUNC_CONFIGS} && export PYTHON_DECIMAL_WITH_MACHINE=ansi64)
|
||||
endif()
|
||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
|
||||
else()
|
||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
endif()
|
||||
set(PYTHON_BINARY ${LIBDIR}/python/bin/python${PYTHON_SHORT_VERSION})
|
||||
|
||||
set(PYTHON_CFLAGS "${PLATFORM_CFLAGS} ")
|
||||
# We need to add the zlib static lib path here as even if python itself links the static zlib correctly,
|
||||
# the "_sqlite" cpython library needs to know where to get it from.
|
||||
set(PYTHON_LDFLAGS "-L${LIBDIR}/zlib/lib ${PLATFORM_LDFLAGS} ")
|
||||
|
||||
set(PYTHON_CONFIGURE_EXTRA_ARGS
|
||||
# Using pkg-config is supported for most libs besides bzip2, so make sure it is on.
|
||||
--with-pkg-config=yes
|
||||
--enable-loadable-sqlite-extensions
|
||||
# Don't build or ship the python test suite
|
||||
--disable-test-modules
|
||||
)
|
||||
|
||||
set(PYTHON_CONFIGURE_PKG_CONFIG_PATH "\
|
||||
${LIBDIR}/ffi/lib/pkgconfig:${LIBDIR}/sqlite/lib/pkgconfig:${LIBDIR}/ssl/lib/pkgconfig:\
|
||||
${LIBDIR}/ssl/lib64/pkgconfig:${LIBDIR}/lzma/lib/pkgconfig:${LIBDIR}/zlib/share/pkgconfig")
|
||||
|
||||
set(PYTHON_CONFIGURE_EXTRA_ENV
|
||||
export CFLAGS=${PYTHON_CFLAGS} &&
|
||||
export CPPFLAGS=${PYTHON_CFLAGS} &&
|
||||
export LDFLAGS=${PYTHON_LDFLAGS} &&
|
||||
|
||||
# Use pkg-config for libraries that support it, and ensure that it used static libraries.
|
||||
export PKG_CONFIG=pkg-config\ --static
|
||||
export PKG_CONFIG_PATH=${PYTHON_CONFIGURE_PKG_CONFIG_PATH}
|
||||
|
||||
# Use flags documented by ./configure for other libs.
|
||||
export BZIP2_CFLAGS=-I${LIBDIR}/bzip2/include
|
||||
export BZIP2_LIBS=${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}
|
||||
|
||||
# Prevent Python configuration script from enabling modules that might be enabled due to the
|
||||
# presence of system-wide libraries.
|
||||
# There is no official way of explicitly disabling modules via command line arguments to the
|
||||
# configuration script, so instead use CFLAGS that are passed to the try-compile utilities that
|
||||
# probe libraries to ensure the test program does not compile.
|
||||
export TCLTK_CFLAGS="--non-existing-flag"
|
||||
)
|
||||
|
||||
if(APPLE)
|
||||
# Prevent linking against Homebrew's libmpdec if it exists.
|
||||
set(PYTHON_CONFIGURE_EXTRA_ARGS
|
||||
${PYTHON_CONFIGURE_EXTRA_ARGS}
|
||||
--without-system-libmpdec
|
||||
)
|
||||
|
||||
# Override library paths for SQLite and zlib on macOS (which are normally provided by pkg-config).
|
||||
# Redefining these prevents Python from wrongly trying to dynamically link zlib in SQLite and various built-in modules.
|
||||
set(PYTHON_CONFIGURE_EXTRA_ENV
|
||||
${PYTHON_CONFIGURE_EXTRA_ENV}
|
||||
export LIBSQLITE3_CFLAGS=-I${LIBDIR}/sqlite/include
|
||||
export LIBSQLITE3_LIBS=${LIBDIR}/sqlite/lib/${LIBPREFIX}sqlite3${LIBEXT}
|
||||
export ZLIB_CFLAGS=-I${LIBDIR}/zlib/include
|
||||
export ZLIB_LIBS=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||
)
|
||||
endif()
|
||||
|
||||
# NOTE: untested on APPLE so far.
|
||||
if(NOT APPLE)
|
||||
set(PYTHON_CONFIGURE_EXTRA_ARGS
|
||||
${PYTHON_CONFIGURE_EXTRA_ARGS}
|
||||
# We disable optimizations as this flag turns on PGO which leads to non-reproducible builds.
|
||||
--disable-optimizations
|
||||
# While LTO is OK when building on the same system, it's incompatible across GCC versions,
|
||||
# making it impractical for developers to build against, so keep it disabled.
|
||||
# `--with-lto`
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_python
|
||||
URL file://${PACKAGE_DIR}/${PYTHON_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${PYTHON_HASH_TYPE}=${PYTHON_HASH}
|
||||
PREFIX ${BUILD_DIR}/python
|
||||
PATCH_COMMAND ${PYTHON_PATCH}
|
||||
|
||||
CONFIGURE_COMMAND ${PYTHON_CONFIGURE_ENV} &&
|
||||
${PYTHON_CONFIGURE_EXTRA_ENV} &&
|
||||
cd ${BUILD_DIR}/python/src/external_python/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/python ${PYTHON_CONFIGURE_EXTRA_ARGS}
|
||||
|
||||
BUILD_COMMAND ${PYTHON_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/python/src/external_python/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${PYTHON_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/python/src/external_python/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/python)
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
external_python
|
||||
external_ssl
|
||||
external_zlib
|
||||
external_sqlite
|
||||
external_ffi
|
||||
)
|
||||
if(UNIX)
|
||||
add_dependencies(
|
||||
external_python
|
||||
external_bzip2
|
||||
external_lzma
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Debug)
|
||||
ExternalProject_Add_Step(external_python after_install
|
||||
# Boost can't keep itself from linking release python
|
||||
# in a debug configuration even if all options are set
|
||||
# correctly to instruct it to use the debug version
|
||||
# of python. So just copy the debug imports file over
|
||||
# and call it a day...
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
|
||||
${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_python python/bin python/bin "python${PYTHON_SHORT_VERSION}")
|
||||
harvest(external_python python/include python/include "*h")
|
||||
harvest(external_python python/lib python/lib "*")
|
||||
endif()
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
global:
|
||||
Py*;
|
||||
_Py*;
|
||||
_py*;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
||||
# zstandard is determined to build and link release mode libs in a debug
|
||||
# configuration, the only way to make it happy is to bend to its will
|
||||
# and give it a library to link with.
|
||||
set(
|
||||
PIP_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.lib
|
||||
${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
||||
)
|
||||
else()
|
||||
set(PIP_CONFIGURE_COMMAND echo ".")
|
||||
endif()
|
||||
|
||||
set(PIP_CONSTRAINT_FILE ${BUILD_DIR}/constraints.txt)
|
||||
# setuptools-scm is causing issues with their latest version
|
||||
# issue: https://github.com/pypa/setuptools-scm/issues/1316
|
||||
# but pinning it doesn't work since downstream package dependencies
|
||||
# also seem to resolve the later versions
|
||||
# we can alter this behaviour by using pip constraints
|
||||
file(WRITE ${PIP_CONSTRAINT_FILE}
|
||||
"setuptools-scm==${SETUPTOOLS_SCM_VERSION}\n"
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_python_site_packages
|
||||
DOWNLOAD_COMMAND ""
|
||||
CONFIGURE_COMMAND ${PIP_CONFIGURE_COMMAND}
|
||||
BUILD_COMMAND ""
|
||||
PREFIX ${BUILD_DIR}/site_packages
|
||||
|
||||
# We do not build numpy, cython, or zstandard here as the pip builds are not reproducible.
|
||||
INSTALL_COMMAND
|
||||
${CMAKE_COMMAND} -E env
|
||||
PIP_CONSTRAINT=${PIP_CONSTRAINT_FILE}
|
||||
${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA}
|
||||
setuptools==${SETUPTOOLS_VERSION}
|
||||
meson-python==${MESON_PYTHON_VERSION}
|
||||
packaging==${PACKAGING_VERSION}
|
||||
pyproject-metadata==${PYPROJECT_METADATA_VERSION}
|
||||
idna==${IDNA_VERSION}
|
||||
charset-normalizer==${CHARSET_NORMALIZER_VERSION}
|
||||
urllib3==${URLLIB3_VERSION}
|
||||
certifi==${CERTIFI_VERSION}
|
||||
requests==${REQUESTS_VERSION}
|
||||
autopep8==${AUTOPEP8_VERSION}
|
||||
pycodestyle==${PYCODESTYLE_VERSION}
|
||||
docutils==${DOCUTILS_VERSION}
|
||||
meson==${MESON_VERSION}
|
||||
attrs==${ATTRS_VERSION}
|
||||
cattrs==${CATTRS_VERSION}
|
||||
fastjsonschema==${FASTJSONSCHEMA_VERSION}
|
||||
typing-extensions==${TYPING_EXTENSIONS_VERSION}
|
||||
tomli-w==${TOMLI_W_VERSION}
|
||||
--no-binary :all:
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_python_site_packages
|
||||
external_python
|
||||
)
|
||||
@@ -0,0 +1,20 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(ROBINMAP_EXTRA_ARGS
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_robinmap
|
||||
URL file://${PACKAGE_DIR}/${ROBINMAP_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${ROBINMAP_HASH_TYPE}=${ROBINMAP_HASH}
|
||||
PREFIX ${BUILD_DIR}/robinmap
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/robinmap
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${ROBINMAP_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/robinmap
|
||||
)
|
||||
@@ -0,0 +1,81 @@
|
||||
# # SPDX-FileCopyrightText: 2025 Blender Authors
|
||||
# #
|
||||
# # SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
if(WIN32)
|
||||
set(RUBBERBAND_CONFIGURE_ENV ${CONFIGURE_ENV_MSVC})
|
||||
set(FFTW_DIR ${LIBDIR}/fftw3/lib/pkgconfig)
|
||||
file(TO_NATIVE_PATH "${FFTW_DIR}" FFTW_DIR)
|
||||
set(RUBBERBAND_PKG_ENV PKG_CONFIG_PATH=${FFTW_DIR})
|
||||
else()
|
||||
set(RUBBERBAND_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||
set(RUBBERBAND_PKG_ENV "PKG_CONFIG_PATH=\
|
||||
${LIBDIR}/fftw3/lib/pkgconfig:\
|
||||
$PKG_CONFIG_PATH"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(RUBBERBAND_EXTRA_OPTIONS
|
||||
-Dauto_features=disabled
|
||||
-Ddefault_library=static
|
||||
-Dfft=fftw
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_rubberband
|
||||
URL file://${PACKAGE_DIR}/${RUBBERBAND_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${RUBBERBAND_HASH_TYPE}=${RUBBERBAND_HASH}
|
||||
PREFIX ${BUILD_DIR}/rubberband
|
||||
|
||||
PATCH_COMMAND
|
||||
${PATCH_CMD} -p 1
|
||||
-d ${BUILD_DIR}/rubberband/src/external_rubberband
|
||||
-i ${PATCH_DIR}/rubberband_remove_dll_exports.diff &&
|
||||
${PATCH_CMD} -p 1
|
||||
-d ${BUILD_DIR}/rubberband/src/external_rubberband
|
||||
-i ${PATCH_DIR}/rubberband_missing_cstdlib.diff
|
||||
|
||||
CONFIGURE_COMMAND ${RUBBERBAND_CONFIGURE_ENV} &&
|
||||
${CMAKE_COMMAND} -E env ${RUBBERBAND_PKG_ENV} ${MESON} setup
|
||||
--prefix ${LIBDIR}/rubberband
|
||||
--libdir lib
|
||||
${MESON_BUILD_TYPE}
|
||||
${RUBBERBAND_EXTRA_OPTIONS}
|
||||
${BUILD_DIR}/rubberband/src/external_rubberband-build
|
||||
${BUILD_DIR}/rubberband/src/external_rubberband
|
||||
|
||||
BUILD_COMMAND ninja
|
||||
INSTALL_COMMAND ninja install
|
||||
INSTALL_DIR ${LIBDIR}/rubberband
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_rubberband
|
||||
external_fftw
|
||||
# Needed for `MESON`.
|
||||
external_python_site_packages
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_rubberband after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/rubberband/include
|
||||
${HARVEST_TARGET}/rubberband/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/rubberband/lib/rubberband-static.lib
|
||||
${HARVEST_TARGET}/rubberband/lib/rubberband-static.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
else()
|
||||
ExternalProject_Add_Step(external_rubberband after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/rubberband/lib/rubberband-static.lib
|
||||
${HARVEST_TARGET}/rubberband/lib/rubberband-static_d.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_rubberband rubberband/include rubberband/include "*.h")
|
||||
harvest(external_rubberband rubberband/lib rubberband/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"bomFormat": "CycloneDX",
|
||||
"specVersion": "1.4",
|
||||
"version": 1,
|
||||
"components": [
|
||||
@SBOMCONTENTS@
|
||||
]
|
||||
}
|
||||
51
blender-5.2.0/build_files/build_environment/cmake/sdl.cmake
Normal file
51
blender-5.2.0/build_files/build_environment/cmake/sdl.cmake
Normal file
@@ -0,0 +1,51 @@
|
||||
# SPDX-FileCopyrightText: 2012-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(SDL_EXTRA_ARGS
|
||||
-DSDL_STATIC=OFF
|
||||
-DSDL_SHARED=ON
|
||||
-DSDL_TESTS=OFF
|
||||
-DSDL_TEST_LIBRARY=OFF
|
||||
-DSDL_SNDIO=OFF
|
||||
)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(SDL_EXTRA_ARGS
|
||||
${SDL_EXTRA_ARGS}
|
||||
-DSDL_X11_XSCRNSAVER=OFF
|
||||
-DSDL_X11_XTEST=OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_sdl
|
||||
URL file://${PACKAGE_DIR}/${SDL_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SDL_HASH_TYPE}=${SDL_HASH}
|
||||
PREFIX ${BUILD_DIR}/sdl
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/sdl
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${SDL_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/sdl
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_sdl after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/sdl
|
||||
${HARVEST_TARGET}/sdl
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_sdl sdl/include sdl/include "*.h")
|
||||
# CMake files first because harvest_rpath_lib edits them.
|
||||
harvest(external_sdl sdl/lib/cmake/SDL3 sdl/lib/cmake/SDL3 "*.cmake")
|
||||
harvest_rpath_lib(external_sdl sdl/lib sdl/lib "*${SHAREDLIBEXT}*")
|
||||
endif()
|
||||
@@ -0,0 +1,231 @@
|
||||
# SPDX-FileCopyrightText: 2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
##################################################################################################
|
||||
# msys2 Builds
|
||||
##################################################################################################
|
||||
# This installs msys to compile ffmpeg/libsndfile/fftw3/gmp
|
||||
##################################################################################################
|
||||
# Note - no compiler is actually installed here, we just use the tools
|
||||
##################################################################################################
|
||||
|
||||
# Modifies in parent scope:
|
||||
# - `MSYS2_${package_name}_FILE`: path to the downloaded file.
|
||||
function(download_package package_name)
|
||||
# This will:
|
||||
# 1 - Download the required package from either the upstream location or blender mirror
|
||||
# depending on `MSYS2_USE_UPSTREAM_PACKAGES`.
|
||||
# 2 - Set a global variable [package_name]_FILE to point to the downloaded file.
|
||||
# 3 - Verify the hash if FORCE_CHECK_HASH is on.
|
||||
set(URL ${MSYS2_${package_name}_URL})
|
||||
set(HASH ${MSYS2_${package_name}_HASH})
|
||||
string(REPLACE "/" ";" _url_list ${URL})
|
||||
list(GET _url_list -1 _file_name)
|
||||
set(_final_filename "${DOWNLOAD_DIR}/${_file_name}")
|
||||
set(MSYS2_${package_name}_FILE ${_final_filename} PARENT_SCOPE)
|
||||
if(NOT EXISTS "${_final_filename}")
|
||||
if(MSYS2_USE_UPSTREAM_PACKAGES)
|
||||
set(_final_url ${URL})
|
||||
else()
|
||||
set(_final_url "https://projects.blender.org/blender/lib-windows_x64/media/branch/build_environment/${_file_name}")
|
||||
endif()
|
||||
message(STATUS "Downloading ${_final_filename} from ${_final_url}")
|
||||
file(
|
||||
DOWNLOAD ${_final_url} ${_final_filename}
|
||||
TIMEOUT 1800 # seconds
|
||||
EXPECTED_HASH SHA1=${HASH}
|
||||
TLS_VERIFY ON
|
||||
SHOW_PROGRESS
|
||||
)
|
||||
endif()
|
||||
if(EXISTS "${_final_filename}")
|
||||
if(FORCE_CHECK_HASH)
|
||||
file(SHA1 ${_final_filename} LOCAL_HASH)
|
||||
if(NOT ${HASH} STREQUAL ${LOCAL_HASH})
|
||||
message(FATAL_ERROR "${_final_filename} SHA1 mismatch\nExpected\t: ${HASH}\nActual\t: ${LOCAL_HASH}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Note we use URL here rather than URI as the dependencies checker will check all `*_URI`
|
||||
# variables for package/license/homepage requirements since none of this will end up
|
||||
# on end users systems the requirements are not as strict.
|
||||
set(MSYS2_BASE_URL https://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20221028.tar.xz)
|
||||
set(MSYS2_BASE_HASH 545cc6a4c36bb98058f2b2945c5d06de523516db)
|
||||
|
||||
set(MSYS2_NASM_URL https://www.nasm.us/pub/nasm/releasebuilds/3.01/win64/nasm-3.01-win64.zip)
|
||||
set(MSYS2_NASM_HASH f11c96089462db07cb42de03ebb11dcb101b5154)
|
||||
|
||||
set(MSYS2_PERL_URL https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_5380_5361/strawberry-perl-5.38.0.1-64bit-portable.zip)
|
||||
set(MSYS2_PERL_HASH 987c870cc2401e481e3ddbdd1462d2a52da34187)
|
||||
|
||||
set(MSYS2_GAS_URL https://raw.githubusercontent.com/FFmpeg/gas-preprocessor/7380ac24e1cd23a5e6d76c6af083d8fc5ab9e943/gas-preprocessor.pl)
|
||||
set(MSYS2_GAS_HASH 313c45e9ae7e4b6c13475e65ee4063593dac2cbe)
|
||||
|
||||
set(MSYS2_AR_URL https://raw.githubusercontent.com/gcc-mirror/gcc/releases/gcc-12.2.0/ar-lib)
|
||||
set(MSYS2_AR_HASH 77194f45708a80f502102fa881a8a5cb048b03af)
|
||||
|
||||
download_package(BASE)
|
||||
download_package(NASM)
|
||||
download_package(PERL)
|
||||
download_package(GAS)
|
||||
download_package(AR)
|
||||
|
||||
message(STATUS "LIBDIR = ${LIBDIR}")
|
||||
# Return values:
|
||||
# - `${ResultingPath}`: the MSYS2-style path.
|
||||
function(cmake_to_msys_path MsysPath ResultingPath)
|
||||
string(REPLACE ":" "" TmpPath "${MsysPath}")
|
||||
string(SUBSTRING ${TmpPath} 0 1 Drive)
|
||||
string(SUBSTRING ${TmpPath} 1 255 PathPart)
|
||||
string(TOLOWER ${Drive} LowerDrive)
|
||||
string(CONCAT _result "/" ${LowerDrive} ${PathPart})
|
||||
set(${ResultingPath} "${_result}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
cmake_to_msys_path(${LIBDIR} msys2_LIBDIR)
|
||||
message(STATUS "msys2_LIBDIR = ${msys2_LIBDIR}")
|
||||
|
||||
# Make msys2 root directory
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/msys2")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/msys2
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
# Extract msys2
|
||||
if((NOT EXISTS "${DOWNLOAD_DIR}/msys2/msys64/msys2_shell.cmd") AND
|
||||
(EXISTS "${MSYS2_BASE_FILE}"))
|
||||
message(STATUS "Extracting msys2 base")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E tar jxf ${MSYS2_BASE_FILE}
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2
|
||||
)
|
||||
|
||||
# Start msys2 with command "exit" - does initial setup etc then exits
|
||||
message(STATUS "Performing first-time load for msys2")
|
||||
execute_process(
|
||||
COMMAND ${DOWNLOAD_DIR}/msys2/msys64/msys2_shell.cmd -defterm -no-start -clang64 -c exit
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2/msys64
|
||||
)
|
||||
|
||||
# Do initial upgrade of pacman packages (only required for initial setup, to get
|
||||
# latest packages as opposed to what the installer comes with).
|
||||
execute_process(
|
||||
COMMAND ${DOWNLOAD_DIR}/msys2/msys64/msys2_shell.cmd -defterm -no-start -clang64 -c
|
||||
"pacman -Sy --noconfirm && exit"
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2/msys64
|
||||
)
|
||||
endif()
|
||||
|
||||
# If m4 isn't there, the others probably aren't either
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/msys2/msys64/usr/bin/m4.exe")
|
||||
# Refresh pacman repositories (similar to debian's `apt update`)
|
||||
message(STATUS "Refreshing pacman")
|
||||
execute_process(
|
||||
COMMAND ${DOWNLOAD_DIR}/msys2/msys64/msys2_shell.cmd -defterm -no-start -clang64 -c
|
||||
"pacman -Syy --noconfirm && exit"
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2/msys64
|
||||
)
|
||||
|
||||
message(STATUS "Installing required packages")
|
||||
|
||||
if(NOT BLENDER_PLATFORM_WINDOWS_ARM)
|
||||
# A newer runtime package is required since the tools downloaded in the next step
|
||||
# depend on it, we however cannot update the runtime from a msys2_shell.cmd since
|
||||
# bash.exe will lock the runtime dlls so we execute pacman directly.
|
||||
#
|
||||
# For now only run this on X64 as there are some known issues (but unknown to me)
|
||||
# with newer msys2 on Windows on ARM.
|
||||
execute_process(
|
||||
COMMAND ${DOWNLOAD_DIR}/msys2/msys64/usr/bin/pacman -S msys2-runtime --noconfirm
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2/msys64
|
||||
)
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND ${DOWNLOAD_DIR}/msys2/msys64/msys2_shell.cmd -defterm -no-start -clang64 -c
|
||||
"pacman -S patch m4 coreutils pkgconf make diffutils autoconf-wrapper --noconfirm && exit"
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2/msys64
|
||||
)
|
||||
endif()
|
||||
|
||||
# Strip out the copy of perl that comes with msys2 if it exists, otherwise python builds break
|
||||
if(EXISTS "${DOWNLOAD_DIR}/msys2/msys64/usr/bin/perl.exe")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E rm ${DOWNLOAD_DIR}/msys2/msys64/usr/bin/perl.exe
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2/msys64
|
||||
)
|
||||
endif()
|
||||
|
||||
# Strip out the copy of link that comes with some packages if it exists,
|
||||
# otherwise meson builds break.
|
||||
if(EXISTS "${DOWNLOAD_DIR}/msys2/msys64/usr/bin/link.exe")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E rm ${DOWNLOAD_DIR}/msys2/msys64/usr/bin/link.exe
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/msys2/msys64
|
||||
)
|
||||
endif()
|
||||
|
||||
# extract nasm
|
||||
if((NOT EXISTS "${DOWNLOAD_DIR}/msys2/msys64/usr/bin/nasm.exe") AND (EXISTS "${MSYS2_NASM_FILE}"))
|
||||
message(STATUS "Extracting nasm")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E tar jxf "${MSYS2_NASM_FILE}"
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/
|
||||
)
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
"${DOWNLOAD_DIR}/nasm-3.01/nasm.exe"
|
||||
"${DOWNLOAD_DIR}/msys2/msys64/usr/bin/nasm.exe"
|
||||
)
|
||||
endif()
|
||||
set(NASM_PATH "${DOWNLOAD_DIR}/msys2/msys64/usr/bin/nasm.exe")
|
||||
|
||||
# make perl root directory
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/perl")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOWNLOAD_DIR}/perl
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
# extract perl
|
||||
if((NOT EXISTS "${DOWNLOAD_DIR}/perl/portable.perl") AND (EXISTS "${MSYS2_PERL_FILE}"))
|
||||
message(STATUS "Extracting perl")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E tar jxf ${MSYS2_PERL_FILE}
|
||||
WORKING_DIRECTORY ${DOWNLOAD_DIR}/perl
|
||||
)
|
||||
endif()
|
||||
|
||||
# Get gas-preprocessor for ffmpeg
|
||||
# This is required for Windows ARM64 builds
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/msys2/msys64/usr/bin/gas-preprocessor.pl")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${MSYS2_GAS_FILE}
|
||||
"${DOWNLOAD_DIR}/msys2/msys64/usr/bin/gas-preprocessor.pl"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Get ar-lib
|
||||
message(STATUS "Checking for ar-lib")
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/msys2/msys64/usr/bin/ar-lib")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${MSYS2_AR_FILE}
|
||||
"${DOWNLOAD_DIR}/msys2/msys64/usr/bin/ar-lib"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${DOWNLOAD_DIR}/msys2/msys64/ming64sh.cmd")
|
||||
message(STATUS "Installing ming64sh.cmd")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${PATCH_DIR}/ming64sh.cmd
|
||||
${DOWNLOAD_DIR}/msys2/msys64/ming64sh.cmd
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,57 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(SHADERC_EXTRA_ARGS
|
||||
-DSHADERC_SKIP_TESTS=On
|
||||
-DSHADERC_SPIRV_TOOLS_DIR=${BUILD_DIR}/spirv_tools/src/external_spirv_tools
|
||||
-DSHADERC_SPIRV_HEADERS_DIR=${BUILD_DIR}/spirv_headers/src/external_spirv_headers
|
||||
-DSHADERC_GLSLANG_DIR=${BUILD_DIR}/shaderc_glslang/src/external_shaderc_glslang
|
||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
||||
-DSHADERC_ENABLE_SHARED_CRT=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_shaderc
|
||||
URL file://${PACKAGE_DIR}/${SHADERC_FILE}
|
||||
URL_HASH ${SHADERC_HASH_TYPE}=${SHADERC_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/shaderc
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/shaderc
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${SHADERC_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/shaderc
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_shaderc
|
||||
external_spirv_tools
|
||||
external_spirv_headers
|
||||
external_shaderc_glslang
|
||||
external_python
|
||||
)
|
||||
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_shaderc after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
||||
${LIBDIR}/shaderc/include
|
||||
${HARVEST_TARGET}/shaderc/include
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/shaderc/bin/shaderc_shared.dll
|
||||
${HARVEST_TARGET}/shaderc/bin/shaderc_shared.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/shaderc/lib/shaderc_shared.lib
|
||||
${HARVEST_TARGET}/shaderc/lib/shaderc_shared.lib
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_shaderc shaderc shaderc "*")
|
||||
endif()
|
||||
@@ -0,0 +1,16 @@
|
||||
# SPDX-FileCopyrightText: 2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# These are build time requirements for shaderc. We only have to unpack these
|
||||
# shaderc will build them.
|
||||
|
||||
ExternalProject_Add(external_shaderc_glslang
|
||||
URL file://${PACKAGE_DIR}/${SHADERC_GLSLANG_FILE}
|
||||
URL_HASH ${SHADERC_GLSLANG_HASH_TYPE}=${SHADERC_GLSLANG_HASH}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
PREFIX ${BUILD_DIR}/shaderc_glslang
|
||||
CONFIGURE_COMMAND echo .
|
||||
BUILD_COMMAND echo .
|
||||
INSTALL_COMMAND echo .
|
||||
)
|
||||
@@ -0,0 +1,86 @@
|
||||
# SPDX-FileCopyrightText: 2017-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(SNDFILE_EXTRA_ARGS
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0074=NEW
|
||||
-DOgg_ROOT=${LIBDIR}/ogg
|
||||
-DVorbis_ROOT=${LIBDIR}/vorbis
|
||||
-DOpus_ROOT=${LIBDIR}/opus
|
||||
-DFLAC_ROOT=${LIBDIR}/flac
|
||||
# Use two roots because of apparent mistake in sndfile.
|
||||
-DLAME_ROOT=${LIBDIR}/lame/include
|
||||
-DMP3LAME_ROOT=${LIBDIR}/lame/lib
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_ALSA=ON
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_mpg123=ON
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Speex=ON
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_SQLite3=ON
|
||||
-DBUILD_PROGRAMS=OFF
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
# We set FLAC__NO_DLL, otherwise we cannot statically link FLAC
|
||||
set(SNDFILE_C_FLAGS "${CMAKE_C_FLAGS} -DFLAC__NO_DLL=1")
|
||||
set(SNDFILE_EXTRA_ARGS
|
||||
${SNDFILE_EXTRA_ARGS}
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DCMAKE_C_FLAGS=${SNDFILE_C_FLAGS}
|
||||
)
|
||||
else()
|
||||
set(SNDFILE_EXTRA_ARGS
|
||||
${SNDFILE_EXTRA_ARGS}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
)
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_sndfile
|
||||
URL file://${PACKAGE_DIR}/${SNDFILE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SNDFILE_HASH_TYPE}=${SNDFILE_HASH}
|
||||
PREFIX ${BUILD_DIR}/sndfile
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d
|
||||
${BUILD_DIR}/sndfile/src/external_sndfile <
|
||||
${PATCH_DIR}/sndfile_1045.diff
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/sndfile
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${SNDFILE_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/sndfile
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_sndfile after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/sndfile/bin/sndfile.dll
|
||||
${HARVEST_TARGET}/sndfile/lib/sndfile.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/sndfile/lib/sndfile.lib
|
||||
${HARVEST_TARGET}/sndfile/lib/sndfile.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBDIR}/sndfile/include/sndfile.h
|
||||
${HARVEST_TARGET}/sndfile/include/sndfile.h
|
||||
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_sndfile sndfile/include sndfile/include "*.h")
|
||||
harvest(external_sndfile sndfile/lib sndfile/lib "*.a")
|
||||
endif()
|
||||
|
||||
add_dependencies(
|
||||
external_sndfile
|
||||
external_ogg
|
||||
external_vorbis
|
||||
external_opus
|
||||
external_flac
|
||||
external_lame
|
||||
)
|
||||
@@ -0,0 +1,28 @@
|
||||
# SPDX-FileCopyrightText: 2022-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(SPIRV_REFLECT_EXTRA_ARGS
|
||||
-DSPIRV_REFLECT_EXECUTABLE=OFF
|
||||
-DSPIRV_REFLECT_STATIC_LIB=ON
|
||||
)
|
||||
|
||||
ExternalProject_Add(external_spirv_reflect
|
||||
URL file://${PACKAGE_DIR}/${SPIRV_REFLECT_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SPIRV_REFLECT_HASH_TYPE}=${SPIRV_REFLECT_HASH}
|
||||
PREFIX ${BUILD_DIR}/spirv_reflect
|
||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
||||
|
||||
CMAKE_ARGS
|
||||
-DCMAKE_INSTALL_PREFIX=${LIBDIR}/spirv_reflect
|
||||
${DEFAULT_CMAKE_FLAGS}
|
||||
${SPIRV_REFLECT_EXTRA_ARGS}
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/spirv_reflect
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
external_spirv_reflect
|
||||
external_spirv_headers
|
||||
)
|
||||
@@ -0,0 +1,37 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
ExternalProject_Add(external_spnav
|
||||
URL file://${PACKAGE_DIR}/${SPNAV_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SPNAV_HASH_TYPE}=${SPNAV_HASH}
|
||||
PREFIX ${BUILD_DIR}/spnav
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/spnav/src/external_spnav/ &&
|
||||
${CONFIGURE_COMMAND}
|
||||
--prefix=${LIBDIR}/spnav
|
||||
# X11 is not needed as Blender polls the device as part of the GHOST event loop.
|
||||
# This is used to support `3dxserv`, however this is no longer supported by 3DCONNEXION.
|
||||
# Disable so building without X11 is supported (WAYLAND only).
|
||||
--disable-x11
|
||||
--disable-shared
|
||||
--enable-static
|
||||
--with-pic
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/spnav/src/external_spnav/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/spnav/src/external_spnav/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/spnav
|
||||
)
|
||||
|
||||
if(NOT WIN32)
|
||||
harvest(external_spnav spnav/include spnav/include "*.h")
|
||||
harvest(external_spnav spnav/lib spnav/lib "*.a")
|
||||
endif()
|
||||
@@ -0,0 +1,81 @@
|
||||
# SPDX-FileCopyrightText: 2018-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(SQLITE_CONFIGURE_ENV echo .)
|
||||
set(SQLITE_CONFIGURATION_ARGS "")
|
||||
|
||||
if(WIN32)
|
||||
# Python will build this with its preferred build options.
|
||||
# We only need to unpack sqlite.
|
||||
ExternalProject_Add(external_sqlite
|
||||
URL file://${PACKAGE_DIR}/${SQLITE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
||||
PREFIX ${BUILD_DIR}/sqlite
|
||||
CONFIGURE_COMMAND echo "."
|
||||
BUILD_COMMAND echo "."
|
||||
INSTALL_COMMAND echo "."
|
||||
INSTALL_DIR ${LIBDIR}/sqlite
|
||||
)
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
if(NOT APPLE)
|
||||
set(SQLITE_LDFLAGS -Wl,--as-needed)
|
||||
endif()
|
||||
set(SQLITE_CFLAGS "\
|
||||
-DSQLITE_SECURE_DELETE \
|
||||
-DSQLITE_ENABLE_COLUMN_METADATA \
|
||||
-DSQLITE_ENABLE_FTS3 \
|
||||
-DSQLITE_ENABLE_FTS3_PARENTHESIS \
|
||||
-DSQLITE_SOUNDEX \
|
||||
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
|
||||
-DSQLITE_OMIT_LOOKASIDE=1 \
|
||||
-DSQLITE_ENABLE_DBSTAT_VTAB \
|
||||
-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT=1 \
|
||||
-DSQLITE_ENABLE_LOAD_EXTENSION \
|
||||
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
|
||||
-DSQLITE_MAX_SCHEMA_RETRY=25 \
|
||||
-DSQLITE_ENABLE_PREUPDATE_HOOK \
|
||||
-DSQLITE_ENABLE_SESSION \
|
||||
-DSQLITE_ENABLE_STMTVTAB \
|
||||
-DSQLITE_MAX_VARIABLE_NUMBER=250000 \
|
||||
-fPIC"
|
||||
)
|
||||
set(SQLITE_CONFIGURE_ENV
|
||||
${SQLITE_CONFIGURE_ENV} &&
|
||||
export LDFLAGS=${SQLITE_LDFLAGS} &&
|
||||
export CFLAGS=${SQLITE_CFLAGS}
|
||||
)
|
||||
set(SQLITE_CONFIGURATION_ARGS
|
||||
${SQLITE_CONFIGURATION_ARGS}
|
||||
--enable-rtree
|
||||
--enable-geopoly
|
||||
--enable-threadsafe
|
||||
--enable-load-extension
|
||||
--enable-fts4
|
||||
--enable-fts5
|
||||
--disable-shared
|
||||
)
|
||||
ExternalProject_Add(external_sqlite
|
||||
URL file://${PACKAGE_DIR}/${SQLITE_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
||||
PREFIX ${BUILD_DIR}/sqlite
|
||||
|
||||
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/sqlite/src/external_sqlite/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/sqlite
|
||||
)
|
||||
endif()
|
||||
@@ -0,0 +1,25 @@
|
||||
# SPDX-FileCopyrightText: 2002-2022 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
ExternalProject_Add(external_sse2neon
|
||||
URL file://${PACKAGE_DIR}/${SSE2NEON_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SSE2NEON_HASH_TYPE}=${SSE2NEON_HASH}
|
||||
PREFIX ${BUILD_DIR}/sse2neon
|
||||
CONFIGURE_COMMAND echo sse2neon - Nothing to configure
|
||||
BUILD_COMMAND echo sse2neon - nothing to build
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/sse2neon/src/external_sse2neon/sse2neon.h ${LIBDIR}/sse2neon
|
||||
INSTALL_DIR ${LIBDIR}/sse2neon
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
if(BUILD_MODE STREQUAL Release)
|
||||
ExternalProject_Add_Step(external_sse2neon after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/sse2neon ${HARVEST_TARGET}/sse2neon
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
harvest(external_sse2neon sse2neon sse2neon "*.h")
|
||||
endif()
|
||||
68
blender-5.2.0/build_files/build_environment/cmake/ssl.cmake
Normal file
68
blender-5.2.0/build_files/build_environment/cmake/ssl.cmake
Normal file
@@ -0,0 +1,68 @@
|
||||
# SPDX-FileCopyrightText: 2018-2023 Blender Authors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(SSL_CONFIGURE_COMMAND ./Configure)
|
||||
|
||||
if(WIN32)
|
||||
# Python will build this with its preferred build options and patches.
|
||||
# We only need to unpack openssl.
|
||||
ExternalProject_Add(external_ssl
|
||||
URL file://${PACKAGE_DIR}/${SSL_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
|
||||
PREFIX ${BUILD_DIR}/ssl
|
||||
CONFIGURE_COMMAND echo "."
|
||||
BUILD_COMMAND echo "."
|
||||
INSTALL_COMMAND echo "."
|
||||
INSTALL_DIR ${LIBDIR}/ssl
|
||||
)
|
||||
else()
|
||||
if(APPLE)
|
||||
set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
|
||||
else()
|
||||
if(BLENDER_PLATFORM_ARM)
|
||||
set(SSL_OS_COMPILER "blender-linux-aarch64")
|
||||
elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
|
||||
set(SSL_OS_COMPILER "blender-linux-x86_64")
|
||||
else()
|
||||
set(SSL_OS_COMPILER "blender-linux-x86")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_ssl
|
||||
URL file://${PACKAGE_DIR}/${SSL_FILE}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
|
||||
PREFIX ${BUILD_DIR}/ssl
|
||||
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/ssl/src/external_ssl/ &&
|
||||
${SSL_CONFIGURE_COMMAND}
|
||||
--prefix=${LIBDIR}/ssl
|
||||
--openssldir=${LIBDIR}/ssl
|
||||
# Without this: Python will use the build directories.
|
||||
# using the system directory `/etc/ssl` might seem the obvious choice,
|
||||
# there is no guarantee the version of SSL used with Blender is compatible with the systems,
|
||||
# where changes to the SSL configuration format can cause SSL not to load (see #114452).
|
||||
# So reference a directory known not to exist. Ideally Blender could distribute its own SSL
|
||||
# directory, but this isn't compatible with hard coded paths.
|
||||
# See #111132 & https://github.com/openssl/openssl/issues/20185 for details.
|
||||
-DOPENSSLDIR=\\"/dev/null\\"
|
||||
no-shared
|
||||
no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms
|
||||
--config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf
|
||||
${SSL_OS_COMPILER}
|
||||
|
||||
BUILD_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/ssl/src/external_ssl/ &&
|
||||
make -j${MAKE_THREADS}
|
||||
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV} &&
|
||||
cd ${BUILD_DIR}/ssl/src/external_ssl/ &&
|
||||
make install
|
||||
|
||||
INSTALL_DIR ${LIBDIR}/ssl
|
||||
)
|
||||
endif()
|
||||
25
blender-5.2.0/build_files/build_environment/cmake/ssl.conf
Normal file
25
blender-5.2.0/build_files/build_environment/cmake/ssl.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
my %targets = (
|
||||
|
||||
"blender-linux-x86" => {
|
||||
inherit_from => [ "linux-x86" ],
|
||||
cflags => add("-fPIC"),
|
||||
},
|
||||
"blender-linux-x86_64" => {
|
||||
inherit_from => [ "linux-x86_64" ],
|
||||
cflags => add("-fPIC"),
|
||||
},
|
||||
"blender-linux-aarch64" => {
|
||||
inherit_from => [ "linux-aarch64" ],
|
||||
cxxflags => add("-fPIC"),
|
||||
cflags => add("-fPIC"),
|
||||
},
|
||||
"blender-darwin-x86_64" => {
|
||||
inherit_from => [ "darwin64-x86_64-cc" ],
|
||||
cflags => add("-fPIC"),
|
||||
},
|
||||
"blender-darwin-arm64" => {
|
||||
inherit_from => [ "darwin-common" ],
|
||||
cxxflags => add("-fPIC -arch arm64"),
|
||||
cflags => add("-fPIC -arch arm64"),
|
||||
},
|
||||
);
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user