Nodes: new interactive operator to slide nodes #121981

Open
Jacques Lucke wants to merge 24 commits from JacquesLucke/blender:slide-nodes into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
5355 changed files with 356129 additions and 330587 deletions
Showing only changes of commit 50d0480ab1 - Show all commits

View File

@ -1,9 +1,9 @@
name: Bug Report
about: Use Help > Report a Bug from the top of Blender to automatically fill out part of this form.
labels:
- "Type/Report"
- "Type/Bug"
- "Status/Needs Triage"
- "Priority/Normal"
- "Severity/Normal"
body:
- type: markdown
attributes:

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
custom: https://fund.blender.org/

35
AUTHORS
View File

@ -54,12 +54,14 @@ Alexander Revkov <arevkov>
Alexander Romanov <a.romanov@blend4web.com>
Alexander Wilms <alexanderwilms@noreply.localhost>
Alexandr Kuznetsov <ak3636@nyu.edu>
Alexis-19 <alexis-19@noreply.localhost>
Aleš Jelovčan <frogstomp>
Alfredo de Greef <eeshlo@yahoo.com>
Ali-Erdinc-Koroglu <ali-erdinc-koroglu@noreply.localhost>
Aliaksandr Sharstniou <kartiz0l@noreply.localhost>
Alistair Sealy <alisealy>
Almaz Shinbay <almaz.shinbay@nu.edu.kz>
Amine Bensalem <bensalem.amine321@gmail.com>
Amélie Fondevilla <amelie.fondevilla@les-fees-speciales.coop>
Anatoly TechTonik <techtonik@gmail.com>
Andras-Borsanyi <andras-borsanyi@noreply.localhost>
@ -103,18 +105,21 @@ Aurel Wildfellner <aurel.w@gmail.com>
Aurelien Jarno <aurel32>
Azeem Bande-Ali <azeemba>
Baardaap <blender@aaltjegron.nl>
Bart van der Braak <bart@blender.org>
Bartosz Kosiorek <gang65@poczta.onet.pl>
Bartosz Moniewski <monio>
Bassam Kurdali <bassam@urchn.org>
Bastien Montagne <bastien@blender.org>
Bataev Artem <shader>
Ben Batt <benbatt@gmail.com>
Ben-7 <ben-7@noreply.localhost>
Benjamin N. Summerton <def.pri.pub@gmail.com>
Benjamin Schmithüsen <UX3D-schmithuesen>
Benjy Cook <benjycook@hotmail.com>
Benoit Bolsee <benoit.bolsee@online.be>
Bernhard M. Wiedemann <bwiedemann@suse.de>
Bill Currie <bill@taniwha.org>
Bill Spitzak <bills@sidefx.com>
Bogdan Nagirniak <bodyan@gmail.com>
Brad Clark <RiggingDojo>
Brad Smith <brad@comstyle.com>
@ -149,6 +154,7 @@ Christopher Peerman <chris_82>
Cian Jinks <cjinks99@gmail.com>
Clément Busschaert <clement.busschaert@gmail.com>
Clément Foucault <foucault.clem@gmail.com>
CoDEmanX <codemanx@gmx.de>
Cody Winchester <CodyWinch>
Colby Klein <shakesoda>
Colin Basnett <cmbasnett@gmail.com>
@ -179,12 +185,14 @@ Danrae Pray <blink.ornitier@gmail.com>
Dave Pagurek <davepagurek>
David Ballesteros <dballesg>
David Friedli <hlorus>
David Murmann <david@23x5.net>
David Vogel <Dadido3>
Daybreak <daybreak-2@noreply.localhost>
Deep Majumder <dmcoder>
Demeter Dzadik <Mets>
Demeter Dzadik <demeterdzadik@gmail.com>
Denis Kovacs <den.products@gmail.com>
Dennis Ranish <Codec>
DevinBayly <baylyd@email.arizona.edu>
Diego Borghetti <bdiego@gmail.com>
Diego Gangl <dnicolas@gmail.com>
Diego Garcia <diego@sinestesia.co>
@ -211,6 +219,7 @@ EitanSomething <eitant13@gmail.com>
Ejner Fergo <ejnersan@gmail.com>
Elia Sarti <vekoon@gmail.com>
Emanuel Claesson <emanuel.claesson@gmail.com>
Emmett Lalish <elalish@google.com>
Enrico Fracasso <enrico.fracasso@email.it>
Enrique-de-la-Calle <encalle@ucm.es>
Eric Bickle <ShadowChaser>
@ -222,10 +231,13 @@ Ethan Hall <Ethan1080>
Eugene Kuznetsov <eugene.kuznetsov@amd.com>
Evan Wilson <EAW>
Fabian Schempp <fabianschempp@googlemail.com>
Fabian-Herb <fabian-herb@noreply.localhost>
Fabrício Luis <ce3po>
Falk David <falk@blender.org>
Fen <chemicalcrux>
Fermin <ferminlozanorodriguez@gmail.com>
Florian Eggenberger <florian.eggenberger@o-x.ch>
Florian Meyer <florianfelix@web.de>
Folkert de Vries <flokkievids@gmail.com>
Francesco Siddi <francesco@blender.org>
Francis Laurence <laurencebourn@hotmail.com>
@ -291,6 +303,7 @@ Jacques Guignot <guignot@wanadoo.fr>
Jacques Lucke <jacques@blender.org>
Jagannadhan Ravi <easythrees>
Jaggz H <jaggz>
Jakub Marcowski <chubercikbattle@gmail.com>
Jakub Steiner <jimmac@gmail.com>
Jamell Moore <JamellMoore>
James <devpalestrina>
@ -326,15 +339,18 @@ Johan Walles <walles>
Johannes J <johannesj@noreply.localhost>
Johannes Jakob <johjakob>
Johannes Meng <info@jmeng.de>
John Kiril Swenson <kirilswenson@gmail.com>
John Quillan <jquillan>
Johnny Matthews <johnny.matthews@gmail.com>
Joilnen Leite <joilnen.leite@gmail.com>
Jonas Holzman <jonas@holzman.fr>
JonasDichelle <jonasdichelle@gmail.com>
Jonathan Smith <j.jaydez@gmail.com>
Jonathan Williamson <jonathan@cgcookie.com>
Jorge Bernal <jbernalmartinez@gmail.com>
Jorijn de Graaf <bonj@noreply.localhost>
Jose Molina Garcia <jose_molinag@yahoo.es>
Jose Vicente Barrachina <jbarrachinab@tutanota.com>
Josef Raschen <JosefR>
Joseph Brandenburg <TheAngerSpecialist>
Joseph Eagar <joeedh@gmail.com>
@ -352,6 +368,7 @@ Juho Vepsalainen <bebraw@gmail.com>
Julian Eisel <julian@blender.org>
Julian Plak <julian.plak@live.nl>
Julian Squires <julian@cipht.net>
Julien Duroure <julien.duroure@gmail.com>
Julien Kaspar <julien@blender.org>
Jun Mizutani <mizutani.jun@nifty.ne.jp>
Jung Jaeyun <cube-c>
@ -361,6 +378,7 @@ Justin Jones <jjones780>
Jörg Müller <nexyon@gmail.com>
Jürgen Herrmann <shadowrom@me.com>
Kai Jægersen <kaio>
Kamil Galik <kgalik@3dconnexion.com>
Karsten Schwenk <macnihilist@gmx.net>
Karthik Rangasai Sivaraman <rangasai>
Kaspian Jakobsson <kaspian.jakobsson@gmail.com>
@ -384,8 +402,11 @@ Konrad Puklicki <puklicki>
Koranir <101683475+Koranir@users.noreply.github.com>
Kris <Metricity>
Krzysztof Recko <yetioszek@gmail.com>
Kyler Kelly <Kylerk@gmail.com>
Kévin Dietrich <kevin.dietrich@mailoo.org>
L. E. Segovia <leonardo.segovia@cs.uns.edu.ar>
Lalit Shankar Chowdhury <lalitshankarch@gmail.com>
Laurynas Duburas <laduem@gmail.com>
Lawrence D'Oliveiro <from-blender@geek-central.gen.nz>
Leha <leha>
Leon Schittek <leon.schittek@gmx.net>
@ -411,6 +432,7 @@ Léo Depoix <PiloeGAO>
M.G. Kishalmi <lmg@kishalmi.net>
Maarten Gribnau <mail@maartengribnau.com>
Macelaru Tiberiu <ButcherTibi>
Mahid Sheikh <standingpad-animations@noreply.localhost>
Mai Lavelle <mai.lavelle@gmail.com>
Maikon Araujo <Nokiam>
Mal Duffin <malachyduffin@gmail.com>
@ -445,6 +467,7 @@ Matt Hill <theothermatt>
Matt Rossman <mattrossman>
Matteo F. Vescovi <mfvescovi@gmail.com>
Matteo Falduto <matteolegna>
Matthew Krueger <contact@matthewkrueger.com>
Matthew Smith <mjdietel@gmail.com>
Matthias Ellerbeck <voyager25>
Matti-Ranta <matti-ranta@noreply.localhost>
@ -455,6 +478,7 @@ Maxim Vasiliev <qmax>
Maxime Casas <maxime_casas@orange.fr>
Maxime Chambonnet <Maxzor_2_what_the_fuck_blenderid>
Maxime Curioni <maxime.curioni@gmail.com>
Melissa <Melissa-Goon>
Michael <michael64>
Michael Fox <mfoxdogg@gmail.com>
Michael Kowalski <makowalski@nvidia.com>
@ -482,6 +506,7 @@ Morten Mikkelsen <mikkelsen7@gmail.com>
Myles Walcott <myles_walcott>
Myron Carey <myroncarey>
Nate Rupsis <nrupsis@gmail.com>
Nathan Burnham <nathan@nathanburnham.uk>
Nathan Craddock <nzcraddock@gmail.com>
Nathan Letwory <nathan@blender.org>
Nathan Lovato <nathan@gdquest.com>
@ -567,6 +592,7 @@ Reinier de Blois <rddeblois@gmail.com>
Remigiusz Fiedler <migius@gmx.net>
Remy Fayet <rems64des@gmail.com>
Richard Antalik <richardantalik@gmail.com>
Rick Astley <mrbimax>
Ricki Myers <antihc3@gmail.com>
Rob Haarsma <phaseIV@zonnet.nl>
Robert Fornof <amdbcg>
@ -675,11 +701,13 @@ Valdemar Lindberg <Voldie>
Valentin <Poulpator>
Vasilis-Milios <vasilis-milios@noreply.localhost>
Vasyl Pidhirskyi <vpidhirskyi@gmail.com>
Victor Chedeville <victor-09@noreply.localhost>
Victor Seiji Hariki <seijihariki>
Victor-Louis De Gusseme <victorlouis>
Viktoriia Safiullina <safiuvik>
Ville Kivistö <vkivisto>
Vincent Blankfield <vvv>
Vitalijs Komasilovs <vitalijs.komasilovs@gmail.com>
Vitor Boschi <vitorboschi@gmail.com>
Vuk Gardašević <lijenstina>
Wael El Oraiby <wael.eloraiby@gmail.com>
@ -713,6 +741,8 @@ Yuntoko <yuntokon@gmail.com>
Z-Map <blendfan@gmail.com>
Zev Eisenberg <ZevEisenberg>
Zijun Zhou <eary@noreply.localhost>
Zopolis4 <creatorsmithmdt@gmail.com>
alxdsptr <helloworld6489mdp@gmail.com>
andreas atteneder <atti>
ariva00 <ariva00.it@gmail.com>
b-init <b-init>
@ -733,9 +763,11 @@ listout <listout@protonmail.com>
lolloz98 <lorenzocarpaneto@yahoo.it>
luzpaz <luzpaz>
matc <matc>
megakite <hello@megakite.icu>
menda <alguien@aqui.es>
n-kall <noa@tutamail.com>
nBurn <nbwashburn@gmail.com>
noodlebox <noodlebox.art@gmail.com>
nutti <nutti.metro@gmail.com>
ok_what <ip1149a@gmail.com>
persun <perplexing.sun@gmail.com>
@ -743,6 +775,7 @@ rifai.id <arifai.dev@gmail.com>
swann <slumber>
unclezeiv <davide.vercelli@gmail.com>
yves <valfeur>
zhanghe9702 <zhanghe9702@163.com>
Élie Michel <elie>
Łukasz Kwoska <Szakulus>
# Please DO NOT APPEND here. See comments at the top of the file.

View File

@ -410,6 +410,10 @@ option(WITH_OPENMP "Enable OpenMP (has to be supported by the compiler)" ON)
if(UNIX AND NOT APPLE)
option(WITH_OPENMP_STATIC "Link OpenMP statically (only used by the release environment)" OFF)
mark_as_advanced(WITH_OPENMP_STATIC)
elseif(WIN32 AND CMAKE_C_COMPILER_ID MATCHES "Clang" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
# At time of testing (LLVM 18.1.6) OMP is not included in public LLVM builds for Windows ARM64
set(WITH_OPENMP OFF)
set(WITH_OPENMP_STATIC OFF)
endif()
if(WITH_GHOST_X11)
@ -649,12 +653,17 @@ Build Cycles kernels with address sanitizer when WITH_COMPILER_ASAN is on, even
set(CYCLES_TEST_DEVICES CPU CACHE STRING "\
Run regression tests on the specified device types (CPU CUDA OPTIX HIP)"
)
option(WITH_CYCLES_TEST_OSL "\
Run additional Cycles test with OSL enabled"
OFF
)
mark_as_advanced(WITH_CYCLES_KERNEL_ASAN)
mark_as_advanced(WITH_CYCLES_LOGGING)
mark_as_advanced(WITH_CYCLES_DEBUG_NAN)
mark_as_advanced(WITH_CYCLES_NATIVE_ONLY)
mark_as_advanced(WITH_CYCLES_PRECOMPUTE)
mark_as_advanced(CYCLES_TEST_DEVICES)
mark_as_advanced(WITH_CYCLES_TEST_OSL)
# NVIDIA CUDA & OptiX
if(NOT APPLE AND NOT (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64"))
@ -700,7 +709,7 @@ if(NOT APPLE AND NOT (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64"))
gfx900 gfx90c gfx902
gfx1010 gfx1011 gfx1012
gfx1030 gfx1031 gfx1032 gfx1034 gfx1035 gfx1036
gfx1100 gfx1101 gfx1102 gfx1103
gfx1100 gfx1101 gfx1102 gfx1103 gfx1150 gfx1151
CACHE STRING "AMD HIP architectures to build binaries for"
)
mark_as_advanced(WITH_CYCLES_DEVICE_HIP)
@ -794,7 +803,7 @@ Enable multi-threading. TBB is also required for features such as Cycles, OpenVD
)
# TBB malloc is only supported on for windows currently
if(WIN32)
if(WIN32 AND NOT CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
option(WITH_TBB_MALLOC_PROXY "Enable the TBB malloc replacement" ON)
endif()
@ -956,6 +965,28 @@ Can cause linking issues due to too large binary size."
)
mark_as_advanced(WITH_COMPILER_ASAN_EXTERN)
option(WITH_COMPILER_CODE_COVERAGE "\
Build and link with code coverage support (only for Debug targets)."
OFF
)
mark_as_advanced(WITH_COMPILER_CODE_COVERAGE)
if(WITH_COMPILER_CODE_COVERAGE)
if(NOT CMAKE_COMPILER_IS_GNUCC)
message("WITH_COMPILER_CODE_COVERAGE only works with GCC currently.")
set(WITH_COMPILER_CODE_COVERAGE OFF)
endif()
endif()
if(WITH_COMPILER_CODE_COVERAGE)
set(_code_coverage_defaults "--coverage")
set(COMPILER_CODE_COVERAGE_CFLAGS ${_code_coverage_defaults} CACHE STRING "C flags for code coverage")
mark_as_advanced(COMPILER_CODE_COVERAGE_CFLAGS)
set(COMPILER_CODE_COVERAGE_CXXFLAGS ${_code_coverage_defaults} CACHE STRING "C++ flags for code coverage")
mark_as_advanced(COMPILER_CODE_COVERAGE_CXXFLAGS)
unset(_code_coverage_defaults)
endif()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
if(WITH_COMPILER_ASAN)
set(_asan_defaults "\
@ -1212,6 +1243,7 @@ set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
if(WITH_CYCLES)
set_and_warn_dependency(WITH_BOOST WITH_CYCLES_OSL OFF)
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
set_and_warn_dependency(WITH_CYCLES_OSL WITH_CYCLES_TEST_OSL OFF)
endif()
set_and_warn_dependency(WITH_TBB WITH_CYCLES OFF)
@ -1230,6 +1262,9 @@ set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_CYCLES_OSL OFF)
# Hydra requires USD.
set_and_warn_dependency(WITH_USD WITH_HYDRA OFF)
# The Ocean modifier requires FFTW3.
set_and_warn_dependency(WITH_FFTW3 WITH_MOD_OCEANSIM OFF)
if(NOT WITH_CYCLES)
set(WITH_CYCLES_OSL OFF)
endif()
@ -1347,6 +1382,11 @@ set(PLATFORM_LINKFLAGS_DEBUG "")
set(PLATFORM_LINKFLAGS_RELEASE "")
set(PLATFORM_LINKFLAGS_EXECUTABLE "")
if(WITH_COMPILER_CODE_COVERAGE)
string(APPEND CMAKE_C_FLAGS_DEBUG " ${COMPILER_CODE_COVERAGE_CFLAGS}")
string(APPEND CMAKE_CXX_FLAGS_DEBUG " ${COMPILER_CODE_COVERAGE_CXXFLAGS}")
endif()
if(NOT CMAKE_BUILD_TYPE MATCHES "Release")
if(WITH_COMPILER_ASAN)
if(NOT APPLE)
@ -1433,10 +1473,6 @@ endif()
# -----------------------------------------------------------------------------
# Common Checks for Compatible Options
if(NOT WITH_FFTW3 AND WITH_MOD_OCEANSIM)
message(FATAL_ERROR "WITH_MOD_OCEANSIM requires WITH_FFTW3 to be ON")
endif()
if(WITH_INTERNATIONAL)
if(NOT WITH_BOOST)
message(
@ -1680,6 +1716,10 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
endif()
endif()
# -----------------------------------------------------------------------------
# Common dependency targets
include(dependency_targets)
# -----------------------------------------------------------------------------
# Ninja Job Limiting
@ -2164,6 +2204,9 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
C_WARN_CLANG_CL_BITFIELD_ENUM_CONVERSION -Wno-bitfield-enum-conversion # 1
C_WARN_CLANG_CL_UNUSED_LAMBDA_CAPTURE -Wno-unused-lambda-capture # 1
C_WARN_CLANG_CL_SHADOW_FIELD_IN_CONSTRUCTOR_MODIFIED -Wno-shadow-field-in-constructor-modified # 1
# And some additional ones that came up when using LLVM 18.1.8 on Windows ARM64
C_WARN_CLANG_CL_SWITCH_DEFAULT -Wno-switch-default
C_WARN_CLANG_CL_NAN_INFINITY_DISABLED -Wno-nan-infinity-disabled
)
add_check_cxx_compiler_flags(
@ -2295,6 +2338,9 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
CXX_WARN_CLANG_CL_BITFIELD_ENUM_CONVERSION -Wno-bitfield-enum-conversion # 1
CXX_WARN_CLANG_CL_UNUSED_LAMBDA_CAPTURE -Wno-unused-lambda-capture # 1
CXX_WARN_CLANG_CL_SHADOW_FIELD_IN_CONSTRUCTOR_MODIFIED -Wno-shadow-field-in-constructor-modified # 1
# And some additional ones that came up when using LLVM 18.1.8 on Windows ARM64
CXX_WARN_CLANG_CL_SWITCH_DEFAULT -Wno-switch-default
CXX_WARN_CLANG_CL_NAN_INFINITY_DISABLED -Wno-nan-infinity-disabled
)
endif()
@ -2585,6 +2631,7 @@ if(WITH_BLENDER)
# internal and external library information first, for test linking
add_subdirectory(source)
elseif(WITH_CYCLES_STANDALONE OR WITH_CYCLES_HYDRA_RENDER_DELEGATE)
add_subdirectory(intern/atomic)
add_subdirectory(intern/guardedalloc)
add_subdirectory(intern/libc_compat)
add_subdirectory(intern/sky)

View File

@ -96,15 +96,6 @@ Spell Checkers
Utilities
Not associated with building Blender.
* icons:
Updates PNG icons from SVG files.
Optionally pass in variables: 'BLENDER_BIN', 'INKSCAPE_BIN'
otherwise default paths are used.
Example
make icons INKSCAPE_BIN=/path/to/inkscape
* icons_geom:
Updates Geometry icons from BLEND file.
@ -192,11 +183,11 @@ endif
DEPS_SOURCE_DIR:=$(BLENDER_DIR)/build_files/build_environment
ifndef DEPS_BUILD_DIR
DEPS_BUILD_DIR:=$(BUILD_DIR)/deps
DEPS_BUILD_DIR:=$(BUILD_DIR)/deps_$(CPU)
endif
ifndef DEPS_INSTALL_DIR
DEPS_INSTALL_DIR:=$(shell dirname "$(BLENDER_DIR)")/lib/$(OS_LIBDIR)_$(CPU)
DEPS_INSTALL_DIR:=$(BLENDER_DIR)/lib/$(OS_LIBDIR)_$(CPU)
endif
# Set the LIBDIR, an empty string when not found.
@ -565,11 +556,6 @@ source_archive_complete: .FORCE
# This assumes CMake is still using a default `PACKAGE_DIR` variable:
@$(PYTHON) ./build_files/utils/make_source_archive.py --include-packages "$(BUILD_DIR)/source_archive/packages"
icons: .FORCE
@BLENDER_BIN=$(BLENDER_BIN) "$(BLENDER_DIR)/release/datafiles/blender_icons_update.py"
"$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
"$(BLENDER_DIR)/release/datafiles/alert_icons_update.py"
icons_geom: .FORCE
@BLENDER_BIN=$(BLENDER_BIN) \
"$(BLENDER_DIR)/release/datafiles/blender_icons_geom_update.py"

View File

@ -4,25 +4,13 @@
##################################################################################################
#
# This is a build system used by platform maintainers to build library dependencies on
# Windows, macOS and Linux.
# This is a build system used by platform maintainers to build library dependencies.
# For users building Blender, we recommend using the precompiled libraries from lib/
# on all platforms.
#
# For users building Blender, we recommend using the precompiled libraries from lib/ on
# Windows and macOS, and install_deps.sh on Linux.
#
# WINDOWS USAGE:
# Don't call this cmake file yourself, use build_deps.cmd
# build_deps 2013 x64 / build_deps 2013 x86
# build_deps 2015 x64 / build_deps 2015 x86
#
# MAC OS X USAGE:
# Install with homebrew: brew install autoconf automake bison cmake libtool pkg-config yasm
# Additional requirements for macOS arm64: brew install flex
# Run "make deps" from main Blender directory
#
# LINUX USAGE:
# Install compiler cmake autoconf automake libtool yasm tcl
# Run "make deps" from main Blender directory
# 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
#
##################################################################################################
@ -44,6 +32,7 @@ include(cmake/boost_build_options.cmake)
include(cmake/download.cmake)
include(cmake/macros.cmake)
include(cmake/check_compilers.cmake)
include(cmake/harvest.cmake)
if(ENABLE_MSYS2)
include(cmake/setup_msys2.cmake)
@ -153,6 +142,7 @@ if(NOT WIN32 OR ENABLE_MSYS2)
include(cmake/opus.cmake)
include(cmake/vpx.cmake)
include(cmake/x264.cmake)
include(cmake/x265.cmake)
include(cmake/aom.cmake)
include(cmake/ffmpeg.cmake)
include(cmake/fftw.cmake)
@ -187,6 +177,5 @@ include(cmake/shaderc_deps.cmake)
include(cmake/shaderc.cmake)
include(cmake/vulkan.cmake)
include(cmake/pybind11.cmake)
include(cmake/harvest.cmake)
include(cmake/deps_html.cmake)
include(cmake/cve_check.cmake)

View File

@ -50,6 +50,10 @@ if(WIN32)
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()

View File

@ -43,3 +43,7 @@ ExternalProject_Add(external_aom
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install
INSTALL_DIR ${LIBDIR}/aom
)
if(NOT WIN32)
harvest(external_aom aom/lib ffmpeg/lib "*.a")
endif()

View File

@ -39,9 +39,14 @@ add_dependencies(
external_blosc
external_zlib
)
if(WIN32)
add_dependencies(
external_blosc
external_pthreads
)
endif()
if(APPLE)
harvest(external_blosc blosc/lib openvdb/lib "*.a")
endif()

View File

@ -115,3 +115,8 @@ add_dependencies(
external_python
external_numpy
)
if(NOT WIN32)
harvest(external_boost boost/include boost/include "*")
harvest_rpath_lib(external_boost boost/lib boost/lib "*${SHAREDLIBEXT}*")
endif()

View File

@ -19,18 +19,23 @@ ExternalProject_Add(external_brotli
INSTALL_DIR ${LIBDIR}/brotli
)
if(BUILD_MODE STREQUAL Release AND WIN32)
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}
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
)
DEPENDEES install
)
endif()
else()
harvest(external_brotli brotli/include brotli/include "*.h")
harvest(external_brotli brotli/lib brotli/lib "*.a")
endif()

View File

@ -1,38 +1,39 @@
vendor,product,version,cve_number,remarks,comment
@OPENJPEG_ID@,CVE-2016-9675,Ignored,issue in convert command line tool not used by blender
@PYTHON_ID@,CVE-2009-2940,Ignored,issue in pygresql not used by blender
@PYTHON_ID@,CVE-2020-29396,Ignored,issue in odoo not used by blender
@PYTHON_ID@,CVE-2021-32052,Ignored,issue in django not used by blender
@PYTHON_ID@,CVE-2009-3720,Ignored,already fixed in libexpat version used
@PYTHON_ID@,CVE-2023-36632,Ignored,not used in blender and not considered a bug upstream
@PYTHON_ID@,CVE-2023-27043,Ignored,not used in blender
@SSL_ID@,CVE-2009-1390,Ignored,issue in mutt not used by blender
@SSL_ID@,CVE-2009-3765,Ignored,issue in mutt not used by blender
@SSL_ID@,CVE-2009-3766,Ignored,issue in mutt not used by blender
@SSL_ID@,CVE-2009-3767,Ignored,issue in ldap not used by blender
@SSL_ID@,CVE-2019-0190,Ignored,issue in apache not used by blender
@TIFF_ID@,CVE-2022-2056,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2057,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2058,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2519,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2520,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2521,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2953,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-34526,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3570,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3597,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3598,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3599,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3626,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3627,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2023-40745,Ignored,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2023-41175,Ignored,issue in tiff command line tool not used by blender
@XML2_ID@,CVE-2016-3709,Ignored,not affecting blender and not considered a security issue upstream
@XML2_ID@,CVE-2023-39615,Ignored,not affecting blender and not considered a security issue upstream
@XML2_ID@,CVE-2020-7595,Ignored,already fixed in the libxml2 version used
@OPENJPEG_ID@,CVE-2016-9675,NotAffected,issue in convert command line tool not used by blender
@PYTHON_ID@,CVE-2009-2940,NotAffected,issue in pygresql not used by blender
@PYTHON_ID@,CVE-2020-29396,NotAffected,issue in odoo not used by blender
@PYTHON_ID@,CVE-2021-32052,NotAffected,issue in django not used by blender
@PYTHON_ID@,CVE-2009-3720,NotAffected,already fixed in libexpat version used
@PYTHON_ID@,CVE-2023-36632,NotAffected,not used in blender and not considered a bug upstream
@PYTHON_ID@,CVE-2023-27043,NotAffected,not used in blender
@PYTHON_PIP_ID@,CVE-2018-20225,NotAffected,not a blender specific issue and pip is inherently affected by malicious packages
@SSL_ID@,CVE-2009-1390,NotAffected,issue in mutt not used by blender
@SSL_ID@,CVE-2009-3765,NotAffected,issue in mutt not used by blender
@SSL_ID@,CVE-2009-3766,NotAffected,issue in mutt not used by blender
@SSL_ID@,CVE-2009-3767,NotAffected,issue in ldap not used by blender
@SSL_ID@,CVE-2019-0190,NotAffected,issue in apache not used by blender
@TIFF_ID@,CVE-2022-2056,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2057,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2058,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2519,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2520,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2521,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-2953,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-34526,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3570,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3597,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3598,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3599,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3626,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2022-3627,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2023-40745,NotAffected,issue in tiff command line tool not used by blender
@TIFF_ID@,CVE-2023-41175,NotAffected,issue in tiff command line tool not used by blender
@XML2_ID@,CVE-2016-3709,NotAffected,not affecting blender and not considered a security issue upstream
@XML2_ID@,CVE-2023-39615,NotAffected,not affecting blender and not considered a security issue upstream
@XML2_ID@,CVE-2020-7595,NotAffected,already fixed in the libxml2 version used
@GMP_ID@,CVE-2021-43618,Mitigated,patched using upstream commit 561a9c25298e
@SQLITE_ID@,CVE-2022-35737,Ignored,only affects SQLITE_ENABLE_STAT4 compile option not used by blender or python
@SQLITE_ID@,CVE-2023-7104,Ignored,does not affect blender use of sqlite
@SQLITE_ID@,CVE-2024-0232,Ignored,does not affect blender use of sqlite
@ZLIB_ID@,CVE-2023-45853,Ignored,only affects minizip not used by blender
@SQLITE_ID@,CVE-2022-35737,NotAffected,only affects SQLITE_ENABLE_STAT4 compile option not used by blender or python
@SQLITE_ID@,CVE-2023-7104,NotAffected,does not affect blender use of sqlite
@SQLITE_ID@,CVE-2024-0232,NotAffected,does not affect blender use of sqlite
@ZLIB_ID@,CVE-2023-45853,NotAffected,only affects minizip not used by blender
@SBOMCONTENTS@

View File

@ -5,6 +5,8 @@
set(DEFLATE_EXTRA_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DLIBDEFLATE_BUILD_STATIC_LIB=ON
-DLIBDEFLATE_BUILD_SHARED_LIB=OFF
)
ExternalProject_Add(external_deflate

View File

@ -107,6 +107,7 @@ download_source(FLAC)
download_source(VPX)
download_source(OPUS)
download_source(X264)
download_source(X265)
download_source(OPENJPEG)
download_source(FFMPEG)
download_source(FFTW)
@ -158,6 +159,7 @@ download_source(ICDLOADER)
download_source(MP11)
download_source(SPIRV_HEADERS)
download_source(UNIFIED_RUNTIME)
download_source(UNIFIED_MEMORY_FRAMEWORK)
download_source(IGC)
download_source(IGC_LLVM)
download_source(IGC_OPENCL_CLANG)

View File

@ -41,9 +41,11 @@ set(DPCPP_EXTRA_ARGS
-DOpenCL_LIBRARY_SRC=file://${PACKAGE_DIR}/${ICDLOADER_FILE}
-DBOOST_MP11_SOURCE_DIR=${BUILD_DIR}/mp11/src/external_mp11/
-DLEVEL_ZERO_LIBRARY=${LIBDIR}/level-zero/lib/${LIBPREFIX}ze_loader${SHAREDLIBEXT}
-DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include
-DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include/level_zero
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${BUILD_DIR}/spirvheaders/src/external_spirvheaders/
-DUNIFIED_RUNTIME_SOURCE_DIR=${BUILD_DIR}/unifiedruntime/src/external_unifiedruntime/
-DSYCL_PI_UR_USE_FETCH_CONTENT=OFF
-DSYCL_PI_UR_SOURCE_DIR=${BUILD_DIR}/unifiedruntime/src/external_unifiedruntime/
-DFETCHCONTENT_SOURCE_DIR_UNIFIED-MEMORY-FRAMEWORK=${BUILD_DIR}/unifiedmemoryframework/src/external_unifiedmemoryframework/
# Below here is copied from an invocation of buildbot/config.py
-DLLVM_ENABLE_ASSERTIONS=ON
-DLLVM_TARGETS_TO_BUILD=X86
@ -69,6 +71,8 @@ set(DPCPP_EXTRA_ARGS
-DXPTI_ENABLE_WERROR=OFF
-DSYCL_CLANG_EXTRA_FLAGS=
-DSYCL_ENABLE_PLUGINS=level_zero
-DSYCL_ENABLE_KERNEL_FUSION=OFF
-DSYCL_ENABLE_MAJOR_RELEASE_PREVIEW_LIB=OFF
-DCMAKE_INSTALL_RPATH=\$ORIGIN
-DPython3_ROOT_DIR=${LIBDIR}/python/
-DPython3_EXECUTABLE=${PYTHON_BINARY}
@ -120,19 +124,32 @@ add_dependencies(
external_level-zero
external_spirvheaders
external_unifiedruntime
external_unifiedmemoryframework
)
if(BUILD_MODE STREQUAL Release AND WIN32)
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/clang.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
)
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/clang.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
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/pi_unified_runtime.dll
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/ur_adapter_level_zero.dll
COMMAND ${CMAKE_COMMAND} -E rm -f ${HARVEST_TARGET}/dpcpp/bin/ur_loader.dll
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*")
# avoid harvesting libpi_unified_runtime and libur_ as they're optional.
harvest(external_dpcpp dpcpp/lib dpcpp/lib "libpi_level_zero*")
harvest(external_dpcpp dpcpp/lib/clang dpcpp/lib/clang "*")
endif()

View File

@ -71,3 +71,13 @@ ExternalProject_Add(external_unifiedruntime
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
CONFIGURE_COMMAND echo .
BUILD_COMMAND echo .
INSTALL_COMMAND echo .
)

View File

@ -145,4 +145,8 @@ if(WIN32)
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()

View File

@ -30,23 +30,28 @@ ExternalProject_Add(external_epoxy
INSTALL_COMMAND ninja install
)
if(BUILD_MODE STREQUAL Release AND WIN32)
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()
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()

View File

@ -20,7 +20,8 @@ set(FFMPEG_CFLAGS "\
-I${temp_LIBDIR}/vpx/include \
-I${temp_LIBDIR}/x264/include \
-I${temp_LIBDIR}/zlib/include \
-I${temp_LIBDIR}/aom/include"
-I${temp_LIBDIR}/aom/include \
-I${temp_LIBDIR}/x265/include"
)
set(FFMPEG_LDFLAGS "\
${LIBDIR_FLAG}${temp_LIBDIR}/lame/lib \
@ -31,6 +32,7 @@ ${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"
)
@ -81,7 +83,8 @@ ${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}/aom/lib/pkgconfig:\
${temp_LIBDIR}/x265/lib/pkgconfig:"
)
endif()
@ -180,6 +183,7 @@ ExternalProject_Add(external_ffmpeg
--enable-libmp3lame
--disable-librtmp
--enable-libx264
--enable-libx265
--enable-libaom
--disable-libopencore-amrnb
--disable-libopencore-amrwb
@ -230,6 +234,7 @@ add_dependencies(
external_ffmpeg
external_zlib
external_x264
external_x265
external_opus
external_vpx
external_theora
@ -255,15 +260,20 @@ if(UNIX)
)
endif()
if(BUILD_MODE STREQUAL Release AND WIN32)
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
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
)
DEPENDEES install
)
endif()
else()
harvest(external_ffmpeg ffmpeg/include ffmpeg/include "*.h")
harvest(external_ffmpeg ffmpeg/lib ffmpeg/lib "*.a")
endif()

View File

@ -55,7 +55,7 @@ endmacro()
fftw_build(double)
fftw_build(float --enable-float)
if(MSVC)
if(WIN32)