Compare commits
3 Commits
temp-ui-cp
...
temp-chunk
Author | SHA1 | Date | |
---|---|---|---|
bc8f37a21d | |||
ff42240ea2 | |||
1060f4a6ad |
@@ -162,7 +162,6 @@ PenaltyBreakString: 1000000
|
|||||||
ForEachMacros:
|
ForEachMacros:
|
||||||
- BEGIN_ANIMFILTER_SUBCHANNELS
|
- BEGIN_ANIMFILTER_SUBCHANNELS
|
||||||
- BKE_pbvh_vertex_iter_begin
|
- BKE_pbvh_vertex_iter_begin
|
||||||
- BKE_pbvh_face_iter_begin
|
|
||||||
- BLI_FOREACH_SPARSE_RANGE
|
- BLI_FOREACH_SPARSE_RANGE
|
||||||
- BLI_SMALLSTACK_ITER_BEGIN
|
- BLI_SMALLSTACK_ITER_BEGIN
|
||||||
- BMO_ITER
|
- BMO_ITER
|
||||||
@@ -274,5 +273,5 @@ StatementMacros:
|
|||||||
- PyObject_VAR_HEAD
|
- PyObject_VAR_HEAD
|
||||||
- ccl_gpu_kernel_postfix
|
- ccl_gpu_kernel_postfix
|
||||||
|
|
||||||
MacroBlockBegin: "^OSL_CLOSURE_STRUCT_BEGIN$"
|
MacroBlockBegin: "^BSDF_CLOSURE_CLASS_BEGIN$"
|
||||||
MacroBlockEnd: "^OSL_CLOSURE_STRUCT_END$"
|
MacroBlockEnd: "^BSDF_CLOSURE_CLASS_END$"
|
||||||
|
640
CMakeLists.txt
640
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
28
GNUmakefile
28
GNUmakefile
@@ -162,7 +162,6 @@ CPU:=$(shell uname -m)
|
|||||||
# Source and Build DIR's
|
# Source and Build DIR's
|
||||||
BLENDER_DIR:=$(shell pwd -P)
|
BLENDER_DIR:=$(shell pwd -P)
|
||||||
BUILD_TYPE:=Release
|
BUILD_TYPE:=Release
|
||||||
BLENDER_IS_PYTHON_MODULE:=
|
|
||||||
|
|
||||||
# CMake arguments, assigned to local variable to make it mutable.
|
# CMake arguments, assigned to local variable to make it mutable.
|
||||||
CMAKE_CONFIG_ARGS := $(BUILD_CMAKE_ARGS)
|
CMAKE_CONFIG_ARGS := $(BUILD_CMAKE_ARGS)
|
||||||
@@ -230,18 +229,9 @@ endif
|
|||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Additional targets for the build configuration
|
# additional targets for the build configuration
|
||||||
|
|
||||||
# NOTE: These targets can be combined and are applied in reverse order listed here.
|
# support 'make debug'
|
||||||
# So it's important that `bpy` comes before `release` (for example)
|
|
||||||
# `make bpy release` first loads `release` configuration, then `bpy`.
|
|
||||||
# This is important as `bpy` will turn off some settings enabled by release.
|
|
||||||
|
|
||||||
ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
|
|
||||||
BUILD_DIR:=$(BUILD_DIR)_bpy
|
|
||||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake" $(CMAKE_CONFIG_ARGS)
|
|
||||||
BLENDER_IS_PYTHON_MODULE:=1
|
|
||||||
endif
|
|
||||||
ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
|
ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
|
||||||
BUILD_DIR:=$(BUILD_DIR)_debug
|
BUILD_DIR:=$(BUILD_DIR)_debug
|
||||||
BUILD_TYPE:=Debug
|
BUILD_TYPE:=Debug
|
||||||
@@ -266,6 +256,10 @@ ifneq "$(findstring headless, $(MAKECMDGOALS))" ""
|
|||||||
BUILD_DIR:=$(BUILD_DIR)_headless
|
BUILD_DIR:=$(BUILD_DIR)_headless
|
||||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_headless.cmake" $(CMAKE_CONFIG_ARGS)
|
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_headless.cmake" $(CMAKE_CONFIG_ARGS)
|
||||||
endif
|
endif
|
||||||
|
ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
|
||||||
|
BUILD_DIR:=$(BUILD_DIR)_bpy
|
||||||
|
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake" $(CMAKE_CONFIG_ARGS)
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq "$(findstring developer, $(MAKECMDGOALS))" ""
|
ifneq "$(findstring developer, $(MAKECMDGOALS))" ""
|
||||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_developer.cmake" $(CMAKE_CONFIG_ARGS)
|
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_developer.cmake" $(CMAKE_CONFIG_ARGS)
|
||||||
@@ -303,10 +297,8 @@ endif
|
|||||||
# use the default build path can still use utility helpers.
|
# use the default build path can still use utility helpers.
|
||||||
ifeq ($(OS), Darwin)
|
ifeq ($(OS), Darwin)
|
||||||
BLENDER_BIN?="$(BUILD_DIR)/bin/Blender.app/Contents/MacOS/Blender"
|
BLENDER_BIN?="$(BUILD_DIR)/bin/Blender.app/Contents/MacOS/Blender"
|
||||||
BLENDER_BIN_DIR?="$(BUILD_DIR)/bin/Blender.app/Contents/MacOS/Blender"
|
|
||||||
else
|
else
|
||||||
BLENDER_BIN?="$(BUILD_DIR)/bin/blender"
|
BLENDER_BIN?="$(BUILD_DIR)/bin/blender"
|
||||||
BLENDER_BIN_DIR?="$(BUILD_DIR)/bin"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -363,12 +355,8 @@ all: .FORCE
|
|||||||
@echo Building Blender ...
|
@echo Building Blender ...
|
||||||
$(BUILD_COMMAND) -C "$(BUILD_DIR)" -j $(NPROCS) install
|
$(BUILD_COMMAND) -C "$(BUILD_DIR)" -j $(NPROCS) install
|
||||||
@echo
|
@echo
|
||||||
@echo Edit build configuration with: \"$(BUILD_DIR)/CMakeCache.txt\" run make again to rebuild.
|
@echo edit build configuration with: "$(BUILD_DIR)/CMakeCache.txt" run make again to rebuild.
|
||||||
@if test -z "$(BLENDER_IS_PYTHON_MODULE)"; then \
|
@echo Blender successfully built, run from: $(BLENDER_BIN)
|
||||||
echo Blender successfully built, run from: $(BLENDER_BIN); \
|
|
||||||
else \
|
|
||||||
echo Blender successfully built as a Python module, \"bpy\" can be imported from: $(BLENDER_BIN_DIR); \
|
|
||||||
fi
|
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
debug: all
|
debug: all
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
##################################################################################################
|
####################################################################################################
|
||||||
#
|
#
|
||||||
# This is a build system used by platform maintainers to build library dependencies on
|
# This is a build system used by platform maintainers to build library dependencies on
|
||||||
# Windows, macOS and Linux.
|
# Windows, macOS and Linux.
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
# Install compiler cmake autoconf automake libtool yasm tcl
|
# Install compiler cmake autoconf automake libtool yasm tcl
|
||||||
# Run "make deps" from main Blender directory
|
# Run "make deps" from main Blender directory
|
||||||
#
|
#
|
||||||
##################################################################################################
|
####################################################################################################
|
||||||
|
|
||||||
project("BlenderDependencies")
|
project("BlenderDependencies")
|
||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
@@ -30,8 +30,7 @@ cmake_minimum_required(VERSION 3.5)
|
|||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
include(cmake/check_software.cmake)
|
include(cmake/check_software.cmake)
|
||||||
include(cmake/options.cmake)
|
include(cmake/options.cmake)
|
||||||
# `versions.cmake` needs to be included after `options.cmake`
|
# versions.cmake needs to be included after options.cmake due to the BLENDER_PLATFORM_ARM variable being needed.
|
||||||
# due to the `BLENDER_PLATFORM_ARM` variable being needed.
|
|
||||||
include(cmake/versions.cmake)
|
include(cmake/versions.cmake)
|
||||||
include(cmake/boost_build_options.cmake)
|
include(cmake/boost_build_options.cmake)
|
||||||
include(cmake/download.cmake)
|
include(cmake/download.cmake)
|
||||||
@@ -89,17 +88,14 @@ include(cmake/package_python.cmake)
|
|||||||
include(cmake/usd.cmake)
|
include(cmake/usd.cmake)
|
||||||
include(cmake/potrace.cmake)
|
include(cmake/potrace.cmake)
|
||||||
include(cmake/haru.cmake)
|
include(cmake/haru.cmake)
|
||||||
# Boost needs to be included after `python.cmake` due to the PYTHON_BINARY variable being needed.
|
# Boost needs to be included after python.cmake due to the PYTHON_BINARY variable being needed.
|
||||||
include(cmake/boost.cmake)
|
include(cmake/boost.cmake)
|
||||||
include(cmake/pugixml.cmake)
|
include(cmake/pugixml.cmake)
|
||||||
include(cmake/ispc.cmake)
|
include(cmake/ispc.cmake)
|
||||||
include(cmake/openimagedenoise.cmake)
|
include(cmake/openimagedenoise.cmake)
|
||||||
include(cmake/embree.cmake)
|
include(cmake/embree.cmake)
|
||||||
include(cmake/openpgl.cmake)
|
|
||||||
include(cmake/fmt.cmake)
|
include(cmake/fmt.cmake)
|
||||||
include(cmake/robinmap.cmake)
|
include(cmake/robinmap.cmake)
|
||||||
include(cmake/xml2.cmake)
|
|
||||||
|
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
include(cmake/xr_openxr.cmake)
|
include(cmake/xr_openxr.cmake)
|
||||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||||
@@ -152,6 +148,7 @@ if(NOT WIN32 OR ENABLE_MINGW64)
|
|||||||
endif()
|
endif()
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
include(cmake/flac.cmake)
|
include(cmake/flac.cmake)
|
||||||
|
include(cmake/xml2.cmake)
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
include(cmake/spnav.cmake)
|
include(cmake/spnav.cmake)
|
||||||
include(cmake/jemalloc.cmake)
|
include(cmake/jemalloc.cmake)
|
||||||
@@ -172,10 +169,6 @@ if(UNIX AND NOT APPLE)
|
|||||||
include(cmake/libglu.cmake)
|
include(cmake/libglu.cmake)
|
||||||
include(cmake/mesa.cmake)
|
include(cmake/mesa.cmake)
|
||||||
include(cmake/wayland_protocols.cmake)
|
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_libdecor.cmake)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(cmake/harvest.cmake)
|
include(cmake/harvest.cmake)
|
||||||
include(cmake/cve_check.cmake)
|
|
||||||
|
@@ -8,6 +8,11 @@ if(WIN32)
|
|||||||
# building with mingw, it'll have an unhappy time with that and
|
# building with mingw, it'll have an unhappy time with that and
|
||||||
# we need to clear them out.
|
# we need to clear them out.
|
||||||
set(AOM_CMAKE_FLAGS )
|
set(AOM_CMAKE_FLAGS )
|
||||||
|
# CMake will correctly identify phreads being available, however
|
||||||
|
# we do not want to use them, as that gains a dependency on
|
||||||
|
# libpthreadswin.dll which we do not want. when pthreads is not
|
||||||
|
# available oam will use a pthreads emulation layer using win32 threads
|
||||||
|
set(AOM_EXTRA_ARGS_WIN32 -DCMAKE_HAVE_PTHREAD_H=OFF)
|
||||||
else()
|
else()
|
||||||
set(AOM_GENERATOR "Unix Makefiles")
|
set(AOM_GENERATOR "Unix Makefiles")
|
||||||
set(AOM_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
set(AOM_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
||||||
@@ -31,7 +36,6 @@ ExternalProject_Add(external_aom
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${AOM_HASH_TYPE}=${AOM_HASH}
|
URL_HASH ${AOM_HASH_TYPE}=${AOM_HASH}
|
||||||
PREFIX ${BUILD_DIR}/aom
|
PREFIX ${BUILD_DIR}/aom
|
||||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/aom/src/external_aom < ${PATCH_DIR}/aom.diff
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||||
cd ${BUILD_DIR}/aom/src/external_aom-build/ &&
|
cd ${BUILD_DIR}/aom/src/external_aom-build/ &&
|
||||||
${CMAKE_COMMAND} -G "${AOM_GENERATOR}" -DCMAKE_INSTALL_PREFIX=${LIBDIR}/aom ${AOM_CMAKE_FLAGS} ${AOM_EXTRA_ARGS} ${BUILD_DIR}/aom/src/external_aom/
|
${CMAKE_COMMAND} -G "${AOM_GENERATOR}" -DCMAKE_INSTALL_PREFIX=${LIBDIR}/aom ${AOM_CMAKE_FLAGS} ${AOM_EXTRA_ARGS} ${BUILD_DIR}/aom/src/external_aom/
|
||||||
|
@@ -46,7 +46,7 @@ if(UNIX)
|
|||||||
" ${_software_missing}\n"
|
" ${_software_missing}\n"
|
||||||
"\n"
|
"\n"
|
||||||
"On Debian and Ubuntu:\n"
|
"On Debian and Ubuntu:\n"
|
||||||
" apt install autoconf automake bison libtool yasm tcl ninja-build meson python3-mako\n"
|
" apt install autoconf automake libtool yasm tcl ninja-build meson python3-mako\n"
|
||||||
"\n"
|
"\n"
|
||||||
"On macOS (with homebrew):\n"
|
"On macOS (with homebrew):\n"
|
||||||
" brew install autoconf automake bison flex libtool meson ninja pkg-config yasm\n"
|
" brew install autoconf automake bison flex libtool meson ninja pkg-config yasm\n"
|
||||||
|
@@ -1,75 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# CVE Check requirements
|
|
||||||
#
|
|
||||||
# - A working installation of intels cve-bin-tool [1] has to be available in
|
|
||||||
# your path
|
|
||||||
#
|
|
||||||
# - Not strictly required, but highly recommended is obtaining a NVD key from
|
|
||||||
# nist since it significantly speeds up downloading/updating the required
|
|
||||||
# databases one can request a key on the following website:
|
|
||||||
# https://nvd.nist.gov/developers/request-an-api-key
|
|
||||||
|
|
||||||
# Bill of Materials construction
|
|
||||||
#
|
|
||||||
# This constructs a CSV cve-bin-tool [1] can read and process. Sadly
|
|
||||||
# cve-bin-tool at this point does not take a list of CPE's and output a check
|
|
||||||
# based on that list. so we need to pick apart the CPE retrieve the vendor,
|
|
||||||
# product and version tokens and generate a CSV.
|
|
||||||
#
|
|
||||||
# [1] https://github.com/intel/cve-bin-tool
|
|
||||||
|
|
||||||
# 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)
|
|
||||||
get_cmake_property(_variableNames VARIABLES)
|
|
||||||
foreach (_variableName ${_variableNames})
|
|
||||||
if(_variableName MATCHES "CPE$")
|
|
||||||
string(REPLACE ":" ";" CPE_LIST ${${_variableName}})
|
|
||||||
string(REPLACE "_CPE" "_ID" CPE_DEPNAME ${_variableName})
|
|
||||||
list(GET CPE_LIST 3 CPE_VENDOR)
|
|
||||||
list(GET CPE_LIST 4 CPE_NAME)
|
|
||||||
list(GET CPE_LIST 5 CPE_VERSION)
|
|
||||||
set(${CPE_DEPNAME} "${CPE_VENDOR},${CPE_NAME},${CPE_VERSION}")
|
|
||||||
set(SBOMCONTENTS "${SBOMCONTENTS}${CPE_VENDOR},${CPE_NAME},${CPE_VERSION},,,\n")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/cve_check.csv.in ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv @ONLY)
|
|
||||||
|
|
||||||
# Custom Targets
|
|
||||||
#
|
|
||||||
# This defines two new custom targets one could run in the build folder
|
|
||||||
# `cve_check` which will output the report to the console, and `cve_check_html`
|
|
||||||
# which will write out blender_dependencies.html in the build folder that one
|
|
||||||
# could share with other people or be used to get more information on the
|
|
||||||
# reported CVE's.
|
|
||||||
#
|
|
||||||
# cve-bin-tool takes data from the nist nvd database which rate limits
|
|
||||||
# unauthenticated requests to 1 requests per 6 seconds making the database
|
|
||||||
# download take "quite a bit" of time.
|
|
||||||
#
|
|
||||||
# When adding -DCVE_CHECK_NVD_KEY=your_api_key_here to your cmake invocation
|
|
||||||
# this key will be passed on to cve-bin-tool speeding up the process.
|
|
||||||
#
|
|
||||||
if(DEFINED CVE_CHECK_NVD_KEY)
|
|
||||||
set(NVD_ARGS --nvd-api-key ${CVE_CHECK_NVD_KEY})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# This will just report to the console
|
|
||||||
add_custom_target(cve_check
|
|
||||||
COMMAND cve-bin-tool
|
|
||||||
${NVD_ARGS}
|
|
||||||
-i ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
--affected-versions
|
|
||||||
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
)
|
|
||||||
|
|
||||||
# This will write out blender_dependencies.html
|
|
||||||
add_custom_target(cve_check_html
|
|
||||||
COMMAND cve-bin-tool
|
|
||||||
${NVD_ARGS}
|
|
||||||
-i ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
-f html
|
|
||||||
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
)
|
|
@@ -1,29 +0,0 @@
|
|||||||
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
|
|
||||||
@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
|
|
||||||
@XML2_ID@,CVE-2016-3709,Ignored,not affecting blender and not considered a security issue upstream
|
|
||||||
@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
|
|
||||||
@SBOMCONTENTS@
|
|
@@ -14,20 +14,6 @@ function(download_source dep)
|
|||||||
else()
|
else()
|
||||||
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/trunk/lib/packages/${TARGET_FILE})
|
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/trunk/lib/packages/${TARGET_FILE})
|
||||||
endif()
|
endif()
|
||||||
# Validate all required variables are set and give an explicit error message
|
|
||||||
# rather than CMake erroring out later on with a more ambigious 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})
|
set(TARGET_FILE ${PACKAGE_DIR}/${TARGET_FILE})
|
||||||
message("Checking source : ${dep} (${TARGET_FILE})")
|
message("Checking source : ${dep} (${TARGET_FILE})")
|
||||||
if(NOT EXISTS ${TARGET_FILE})
|
if(NOT EXISTS ${TARGET_FILE})
|
||||||
@@ -39,36 +25,6 @@ function(download_source dep)
|
|||||||
SHOW_PROGRESS
|
SHOW_PROGRESS
|
||||||
)
|
)
|
||||||
endif()
|
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 maintenaince 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\nExpected\t: ${TARGET_HASH}\nActual\t: ${LOCAL_HASH}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endfunction(download_source)
|
endfunction(download_source)
|
||||||
|
|
||||||
download_source(ZLIB)
|
download_source(ZLIB)
|
||||||
@@ -95,6 +51,7 @@ download_source(OSL)
|
|||||||
download_source(PYTHON)
|
download_source(PYTHON)
|
||||||
download_source(TBB)
|
download_source(TBB)
|
||||||
download_source(OPENVDB)
|
download_source(OPENVDB)
|
||||||
|
download_source(NANOVDB)
|
||||||
download_source(NUMPY)
|
download_source(NUMPY)
|
||||||
download_source(LAME)
|
download_source(LAME)
|
||||||
download_source(OGG)
|
download_source(OGG)
|
||||||
@@ -114,6 +71,7 @@ download_source(WEBP)
|
|||||||
download_source(SPNAV)
|
download_source(SPNAV)
|
||||||
download_source(JEMALLOC)
|
download_source(JEMALLOC)
|
||||||
download_source(XML2)
|
download_source(XML2)
|
||||||
|
download_source(TINYXML)
|
||||||
download_source(YAMLCPP)
|
download_source(YAMLCPP)
|
||||||
download_source(EXPAT)
|
download_source(EXPAT)
|
||||||
download_source(PUGIXML)
|
download_source(PUGIXML)
|
||||||
@@ -131,8 +89,6 @@ download_source(MESA)
|
|||||||
download_source(NASM)
|
download_source(NASM)
|
||||||
download_source(XR_OPENXR_SDK)
|
download_source(XR_OPENXR_SDK)
|
||||||
download_source(WL_PROTOCOLS)
|
download_source(WL_PROTOCOLS)
|
||||||
download_source(WAYLAND)
|
|
||||||
download_source(WAYLAND_LIBDECOR)
|
|
||||||
download_source(ISPC)
|
download_source(ISPC)
|
||||||
download_source(GMP)
|
download_source(GMP)
|
||||||
download_source(POTRACE)
|
download_source(POTRACE)
|
||||||
@@ -145,7 +101,6 @@ download_source(FMT)
|
|||||||
download_source(ROBINMAP)
|
download_source(ROBINMAP)
|
||||||
download_source(IMATH)
|
download_source(IMATH)
|
||||||
download_source(PYSTRING)
|
download_source(PYSTRING)
|
||||||
download_source(OPENPGL)
|
|
||||||
download_source(LEVEL_ZERO)
|
download_source(LEVEL_ZERO)
|
||||||
download_source(DPCPP)
|
download_source(DPCPP)
|
||||||
download_source(VCINTRINSICS)
|
download_source(VCINTRINSICS)
|
||||||
|
@@ -68,7 +68,7 @@ set(DPCPP_EXTRA_ARGS
|
|||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
list(APPEND DPCPP_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
list(APPEND DPCPP_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_dpcpp
|
ExternalProject_Add(external_dpcpp
|
||||||
@@ -80,11 +80,8 @@ ExternalProject_Add(external_dpcpp
|
|||||||
SOURCE_SUBDIR llvm
|
SOURCE_SUBDIR llvm
|
||||||
LIST_SEPARATOR ^^
|
LIST_SEPARATOR ^^
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/dpcpp ${DEFAULT_CMAKE_FLAGS} ${DPCPP_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/dpcpp ${DEFAULT_CMAKE_FLAGS} ${DPCPP_EXTRA_ARGS}
|
||||||
# CONFIGURE_COMMAND
|
#CONFIGURE_COMMAND ${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/configure.py ${DPCPP_CONFIGURE_ARGS}
|
||||||
# ${PYTHON_BINARY}
|
#BUILD_COMMAND echo "." #${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/compile.py
|
||||||
# ${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
|
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_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/dpcpp/src/external_dpcpp < ${PATCH_DIR}/dpcpp.diff
|
||||||
INSTALL_DIR ${LIBDIR}/dpcpp
|
INSTALL_DIR ${LIBDIR}/dpcpp
|
||||||
|
@@ -16,6 +16,12 @@ if(WIN32)
|
|||||||
--enable-libopenjpeg
|
--enable-libopenjpeg
|
||||||
--disable-mediafoundation
|
--disable-mediafoundation
|
||||||
)
|
)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
|
||||||
|
set(FFMPEG_EXTRA_FLAGS
|
||||||
|
${FFMPEG_EXTRA_FLAGS}
|
||||||
|
--x86asmexe=yasm
|
||||||
|
)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
set(FFMPEG_EXTRA_FLAGS
|
set(FFMPEG_EXTRA_FLAGS
|
||||||
${FFMPEG_EXTRA_FLAGS}
|
${FFMPEG_EXTRA_FLAGS}
|
||||||
|
@@ -7,11 +7,8 @@ set(FREETYPE_EXTRA_ARGS
|
|||||||
-DFT_DISABLE_HARFBUZZ=ON
|
-DFT_DISABLE_HARFBUZZ=ON
|
||||||
-DFT_DISABLE_PNG=ON
|
-DFT_DISABLE_PNG=ON
|
||||||
-DFT_REQUIRE_BROTLI=ON
|
-DFT_REQUIRE_BROTLI=ON
|
||||||
-DFT_REQUIRE_ZLIB=ON
|
|
||||||
-DPC_BROTLIDEC_INCLUDEDIR=${LIBDIR}/brotli/include
|
-DPC_BROTLIDEC_INCLUDEDIR=${LIBDIR}/brotli/include
|
||||||
-DPC_BROTLIDEC_LIBDIR=${LIBDIR}/brotli/lib
|
-DPC_BROTLIDEC_LIBDIR=${LIBDIR}/brotli/lib
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_freetype
|
ExternalProject_Add(external_freetype
|
||||||
@@ -26,7 +23,6 @@ ExternalProject_Add(external_freetype
|
|||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_freetype
|
external_freetype
|
||||||
external_brotli
|
external_brotli
|
||||||
external_zlib
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||||
|
@@ -27,7 +27,6 @@ ExternalProject_Add(external_gmp
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${GMP_HASH_TYPE}=${GMP_HASH}
|
URL_HASH ${GMP_HASH_TYPE}=${GMP_HASH}
|
||||||
PREFIX ${BUILD_DIR}/gmp
|
PREFIX ${BUILD_DIR}/gmp
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/gmp/src/external_gmp < ${PATCH_DIR}/gmp.diff
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/gmp ${GMP_OPTIONS} ${GMP_EXTRA_ARGS}
|
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && 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}
|
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_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make install
|
||||||
|
@@ -11,194 +11,188 @@ message("HARVEST_TARGET = ${HARVEST_TARGET}")
|
|||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
add_custom_target(Harvest_Release_Results
|
add_custom_target(Harvest_Release_Results
|
||||||
COMMAND # jpeg rename libfile + copy include
|
COMMAND # jpeg rename libfile + copy include
|
||||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
|
${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/ &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpeg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
|
||||||
# png
|
# png
|
||||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
|
${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/ &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
|
||||||
# freeglut-> opengl
|
# freeglut-> opengl
|
||||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
|
${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||||
DEPENDS
|
DEPENDS
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
else(WIN32)
|
||||||
|
|
||||||
|
function(harvest 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
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
harvest(alembic/include alembic/include "*.h")
|
||||||
|
harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
|
||||||
|
harvest(alembic/bin alembic/bin "*")
|
||||||
|
harvest(brotli/include brotli/include "*.h")
|
||||||
|
harvest(brotli/lib brotli/lib "*.a")
|
||||||
|
harvest(boost/include boost/include "*")
|
||||||
|
harvest(boost/lib boost/lib "*.a")
|
||||||
|
harvest(imath/include imath/include "*.h")
|
||||||
|
harvest(imath/lib imath/lib "*.a")
|
||||||
|
harvest(ffmpeg/include ffmpeg/include "*.h")
|
||||||
|
harvest(ffmpeg/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(fftw3/include fftw3/include "*.h")
|
||||||
|
harvest(fftw3/lib fftw3/lib "*.a")
|
||||||
|
harvest(flac/lib sndfile/lib "libFLAC.a")
|
||||||
|
harvest(freetype/include freetype/include "*.h")
|
||||||
|
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
||||||
|
harvest(epoxy/include epoxy/include "*.h")
|
||||||
|
harvest(epoxy/lib epoxy/lib "*.a")
|
||||||
|
harvest(gmp/include gmp/include "*.h")
|
||||||
|
harvest(gmp/lib gmp/lib "*.a")
|
||||||
|
harvest(jemalloc/include jemalloc/include "*.h")
|
||||||
|
harvest(jemalloc/lib jemalloc/lib "*.a")
|
||||||
|
harvest(jpeg/include jpeg/include "*.h")
|
||||||
|
harvest(jpeg/lib jpeg/lib "libjpeg.a")
|
||||||
|
harvest(lame/lib ffmpeg/lib "*.a")
|
||||||
|
if(NOT APPLE)
|
||||||
|
harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
|
||||||
|
harvest(level-zero/lib level-zero/lib "*.so*")
|
||||||
|
endif()
|
||||||
|
harvest(llvm/bin llvm/bin "clang-format")
|
||||||
|
if(BUILD_CLANG_TOOLS)
|
||||||
|
harvest(llvm/bin llvm/bin "clang-tidy")
|
||||||
|
harvest(llvm/share/clang llvm/share "run-clang-tidy.py")
|
||||||
|
endif()
|
||||||
|
harvest(llvm/include llvm/include "*")
|
||||||
|
harvest(llvm/bin llvm/bin "llvm-config")
|
||||||
|
harvest(llvm/lib llvm/lib "libLLVM*.a")
|
||||||
|
harvest(llvm/lib llvm/lib "libclang*.a")
|
||||||
|
harvest(llvm/lib/clang llvm/lib/clang "*.h")
|
||||||
|
if(APPLE)
|
||||||
|
harvest(openmp/lib openmp/lib "*")
|
||||||
|
harvest(openmp/include openmp/include "*.h")
|
||||||
|
endif()
|
||||||
|
if(BLENDER_PLATFORM_ARM)
|
||||||
|
harvest(sse2neon sse2neon "*.h")
|
||||||
|
endif()
|
||||||
|
harvest(ogg/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(openal/include openal/include "*.h")
|
||||||
|
if(UNIX AND NOT APPLE)
|
||||||
|
harvest(openal/lib openal/lib "*.a")
|
||||||
|
|
||||||
|
harvest(blosc/include blosc/include "*.h")
|
||||||
|
harvest(blosc/lib blosc/lib "*.a")
|
||||||
|
|
||||||
|
harvest(zlib/include zlib/include "*.h")
|
||||||
|
harvest(zlib/lib zlib/lib "*.a")
|
||||||
|
|
||||||
|
harvest(xml2/include xml2/include "*.h")
|
||||||
|
harvest(xml2/lib xml2/lib "*.a")
|
||||||
|
|
||||||
|
harvest(wayland-protocols/share/wayland-protocols wayland-protocols/share/wayland-protocols/ "*.xml")
|
||||||
else()
|
else()
|
||||||
|
harvest(blosc/lib openvdb/lib "*.a")
|
||||||
|
harvest(xml2/lib opencollada/lib "*.a")
|
||||||
|
endif()
|
||||||
|
harvest(opencollada/include/opencollada opencollada/include "*.h")
|
||||||
|
harvest(opencollada/lib/opencollada opencollada/lib "*.a")
|
||||||
|
harvest(opencolorio/include opencolorio/include "*.h")
|
||||||
|
harvest(opencolorio/lib opencolorio/lib "*.a")
|
||||||
|
harvest(opencolorio/lib/static opencolorio/lib "*.a")
|
||||||
|
harvest(openexr/include openexr/include "*.h")
|
||||||
|
harvest(openexr/lib openexr/lib "*.a")
|
||||||
|
harvest(openimageio/bin openimageio/bin "idiff")
|
||||||
|
harvest(openimageio/bin openimageio/bin "maketx")
|
||||||
|
harvest(openimageio/bin openimageio/bin "oiiotool")
|
||||||
|
harvest(openimageio/include openimageio/include "*")
|
||||||
|
harvest(openimageio/lib openimageio/lib "*.a")
|
||||||
|
harvest(openimagedenoise/include openimagedenoise/include "*")
|
||||||
|
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||||
|
harvest(embree/include embree/include "*.h")
|
||||||
|
harvest(embree/lib embree/lib "*.a")
|
||||||
|
harvest(openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
|
||||||
|
harvest(openjpeg/lib openjpeg/lib "*.a")
|
||||||
|
harvest(opensubdiv/include opensubdiv/include "*.h")
|
||||||
|
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
||||||
|
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||||
|
harvest(openvdb/include/nanovdb openvdb/include/nanovdb "*.h")
|
||||||
|
harvest(openvdb/lib openvdb/lib "*.a")
|
||||||
|
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
||||||
|
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||||
|
harvest(osl/bin osl/bin "oslc")
|
||||||
|
harvest(osl/include osl/include "*.h")
|
||||||
|
harvest(osl/lib osl/lib "*.a")
|
||||||
|
harvest(osl/share/OSL/shaders osl/share/OSL/shaders "*.h")
|
||||||
|
harvest(png/include png/include "*.h")
|
||||||
|
harvest(png/lib png/lib "*.a")
|
||||||
|
harvest(pugixml/include pugixml/include "*.hpp")
|
||||||
|
harvest(pugixml/lib pugixml/lib "*.a")
|
||||||
|
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}")
|
||||||
|
harvest(python/include python/include "*h")
|
||||||
|
harvest(python/lib python/lib "*")
|
||||||
|
harvest(sdl/include/SDL2 sdl/include "*.h")
|
||||||
|
harvest(sdl/lib sdl/lib "libSDL2.a")
|
||||||
|
harvest(sndfile/include sndfile/include "*.h")
|
||||||
|
harvest(sndfile/lib sndfile/lib "*.a")
|
||||||
|
harvest(spnav/include spnav/include "*.h")
|
||||||
|
harvest(spnav/lib spnav/lib "*.a")
|
||||||
|
harvest(tbb/include tbb/include "*.h")
|
||||||
|
harvest(tbb/lib/libtbb_static.a tbb/lib/libtbb.a)
|
||||||
|
harvest(theora/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(tiff/include tiff/include "*.h")
|
||||||
|
harvest(tiff/lib tiff/lib "*.a")
|
||||||
|
harvest(vorbis/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(opus/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(vpx/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(x264/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(aom/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(webp/lib webp/lib "*.a")
|
||||||
|
harvest(webp/include webp/include "*.h")
|
||||||
|
harvest(usd/include usd/include "*.h")
|
||||||
|
harvest(usd/lib/usd usd/lib/usd "*")
|
||||||
|
harvest(usd/plugin usd/plugin "*")
|
||||||
|
harvest(potrace/include potrace/include "*.h")
|
||||||
|
harvest(potrace/lib potrace/lib "*.a")
|
||||||
|
harvest(haru/include haru/include "*.h")
|
||||||
|
harvest(haru/lib haru/lib "*.a")
|
||||||
|
harvest(zstd/include zstd/include "*.h")
|
||||||
|
harvest(zstd/lib zstd/lib "*.a")
|
||||||
|
|
||||||
function(harvest from to)
|
if(UNIX AND NOT APPLE)
|
||||||
set(pattern "")
|
harvest(libglu/lib mesa/lib "*.so*")
|
||||||
foreach(f ${ARGN})
|
harvest(mesa/lib64 mesa/lib "*.so*")
|
||||||
set(pattern ${f})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(pattern STREQUAL "")
|
harvest(dpcpp dpcpp "*")
|
||||||
get_filename_component(dirpath ${to} DIRECTORY)
|
harvest(igc dpcpp/lib/igc "*")
|
||||||
get_filename_component(filename ${to} NAME)
|
harvest(ocloc dpcpp/lib/ocloc "*")
|
||||||
install(
|
endif()
|
||||||
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
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
harvest(alembic/include alembic/include "*.h")
|
|
||||||
harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
|
|
||||||
harvest(alembic/bin alembic/bin "*")
|
|
||||||
harvest(brotli/include brotli/include "*.h")
|
|
||||||
harvest(brotli/lib brotli/lib "*.a")
|
|
||||||
harvest(boost/include boost/include "*")
|
|
||||||
harvest(boost/lib boost/lib "*.a")
|
|
||||||
harvest(imath/include imath/include "*.h")
|
|
||||||
harvest(imath/lib imath/lib "*.a")
|
|
||||||
harvest(ffmpeg/include ffmpeg/include "*.h")
|
|
||||||
harvest(ffmpeg/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(fftw3/include fftw3/include "*.h")
|
|
||||||
harvest(fftw3/lib fftw3/lib "*.a")
|
|
||||||
harvest(flac/lib sndfile/lib "libFLAC.a")
|
|
||||||
harvest(freetype/include freetype/include "*.h")
|
|
||||||
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
|
||||||
harvest(epoxy/include epoxy/include "*.h")
|
|
||||||
harvest(epoxy/lib epoxy/lib "*.a")
|
|
||||||
harvest(gmp/include gmp/include "*.h")
|
|
||||||
harvest(gmp/lib gmp/lib "*.a")
|
|
||||||
harvest(jemalloc/include jemalloc/include "*.h")
|
|
||||||
harvest(jemalloc/lib jemalloc/lib "*.a")
|
|
||||||
harvest(jpeg/include jpeg/include "*.h")
|
|
||||||
harvest(jpeg/lib jpeg/lib "libjpeg.a")
|
|
||||||
harvest(lame/lib ffmpeg/lib "*.a")
|
|
||||||
if(NOT APPLE)
|
|
||||||
harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
|
|
||||||
harvest(level-zero/lib level-zero/lib "*.so*")
|
|
||||||
endif()
|
|
||||||
harvest(llvm/bin llvm/bin "clang-format")
|
|
||||||
if(BUILD_CLANG_TOOLS)
|
|
||||||
harvest(llvm/bin llvm/bin "clang-tidy")
|
|
||||||
harvest(llvm/share/clang llvm/share "run-clang-tidy.py")
|
|
||||||
endif()
|
|
||||||
harvest(llvm/include llvm/include "*")
|
|
||||||
harvest(llvm/bin llvm/bin "llvm-config")
|
|
||||||
harvest(llvm/lib llvm/lib "libLLVM*.a")
|
|
||||||
harvest(llvm/lib llvm/lib "libclang*.a")
|
|
||||||
harvest(llvm/lib/clang llvm/lib/clang "*.h")
|
|
||||||
if(APPLE)
|
|
||||||
harvest(openmp/lib openmp/lib "*")
|
|
||||||
harvest(openmp/include openmp/include "*.h")
|
|
||||||
endif()
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
|
||||||
harvest(sse2neon sse2neon "*.h")
|
|
||||||
endif()
|
|
||||||
harvest(ogg/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(openal/include openal/include "*.h")
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
harvest(openal/lib openal/lib "*.a")
|
|
||||||
|
|
||||||
harvest(blosc/include blosc/include "*.h")
|
|
||||||
harvest(blosc/lib blosc/lib "*.a")
|
|
||||||
|
|
||||||
harvest(zlib/include zlib/include "*.h")
|
|
||||||
harvest(zlib/lib zlib/lib "*.a")
|
|
||||||
|
|
||||||
harvest(xml2/include xml2/include "*.h")
|
|
||||||
harvest(xml2/lib xml2/lib "*.a")
|
|
||||||
|
|
||||||
harvest(wayland-protocols/share/wayland-protocols wayland-protocols/share/wayland-protocols/ "*.xml")
|
|
||||||
harvest(wayland/bin wayland/bin "wayland-scanner")
|
|
||||||
harvest(wayland/include wayland/include "*.h")
|
|
||||||
harvest(wayland_libdecor/include wayland_libdecor/include "*.h")
|
|
||||||
else()
|
|
||||||
harvest(blosc/lib openvdb/lib "*.a")
|
|
||||||
harvest(xml2/lib opencollada/lib "*.a")
|
|
||||||
endif()
|
|
||||||
harvest(opencollada/include/opencollada opencollada/include "*.h")
|
|
||||||
harvest(opencollada/lib/opencollada opencollada/lib "*.a")
|
|
||||||
harvest(opencolorio/include opencolorio/include "*.h")
|
|
||||||
harvest(opencolorio/lib opencolorio/lib "*.a")
|
|
||||||
harvest(opencolorio/lib/static opencolorio/lib "*.a")
|
|
||||||
harvest(openexr/include openexr/include "*.h")
|
|
||||||
harvest(openexr/lib openexr/lib "*.a")
|
|
||||||
harvest(openimageio/bin openimageio/bin "idiff")
|
|
||||||
harvest(openimageio/bin openimageio/bin "maketx")
|
|
||||||
harvest(openimageio/bin openimageio/bin "oiiotool")
|
|
||||||
harvest(openimageio/include openimageio/include "*")
|
|
||||||
harvest(openimageio/lib openimageio/lib "*.a")
|
|
||||||
harvest(openimagedenoise/include openimagedenoise/include "*")
|
|
||||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
|
||||||
harvest(embree/include embree/include "*.h")
|
|
||||||
harvest(embree/lib embree/lib "*.a")
|
|
||||||
harvest(openpgl/include openpgl/include "*.h")
|
|
||||||
harvest(openpgl/lib openpgl/lib "*.a")
|
|
||||||
harvest(openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION} openpgl/lib/cmake/openpgl "*.cmake")
|
|
||||||
harvest(openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
|
|
||||||
harvest(openjpeg/lib openjpeg/lib "*.a")
|
|
||||||
harvest(opensubdiv/include opensubdiv/include "*.h")
|
|
||||||
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
|
||||||
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
|
||||||
harvest(openvdb/include/nanovdb openvdb/include/nanovdb "*.h")
|
|
||||||
harvest(openvdb/lib openvdb/lib "*.a")
|
|
||||||
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
|
||||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
|
||||||
harvest(osl/bin osl/bin "oslc")
|
|
||||||
harvest(osl/include osl/include "*.h")
|
|
||||||
harvest(osl/lib osl/lib "*.a")
|
|
||||||
harvest(osl/share/OSL/shaders osl/share/OSL/shaders "*.h")
|
|
||||||
harvest(png/include png/include "*.h")
|
|
||||||
harvest(png/lib png/lib "*.a")
|
|
||||||
harvest(pugixml/include pugixml/include "*.hpp")
|
|
||||||
harvest(pugixml/lib pugixml/lib "*.a")
|
|
||||||
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}")
|
|
||||||
harvest(python/include python/include "*h")
|
|
||||||
harvest(python/lib python/lib "*")
|
|
||||||
harvest(sdl/include/SDL2 sdl/include "*.h")
|
|
||||||
harvest(sdl/lib sdl/lib "libSDL2.a")
|
|
||||||
harvest(sndfile/include sndfile/include "*.h")
|
|
||||||
harvest(sndfile/lib sndfile/lib "*.a")
|
|
||||||
harvest(spnav/include spnav/include "*.h")
|
|
||||||
harvest(spnav/lib spnav/lib "*.a")
|
|
||||||
harvest(tbb/include tbb/include "*.h")
|
|
||||||
harvest(tbb/lib/libtbb_static.a tbb/lib/libtbb.a)
|
|
||||||
harvest(theora/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(tiff/include tiff/include "*.h")
|
|
||||||
harvest(tiff/lib tiff/lib "*.a")
|
|
||||||
harvest(vorbis/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(opus/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(vpx/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(x264/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(aom/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(webp/lib webp/lib "*.a")
|
|
||||||
harvest(webp/include webp/include "*.h")
|
|
||||||
harvest(usd/include usd/include "*.h")
|
|
||||||
harvest(usd/lib/usd usd/lib/usd "*")
|
|
||||||
harvest(usd/plugin usd/plugin "*")
|
|
||||||
harvest(potrace/include potrace/include "*.h")
|
|
||||||
harvest(potrace/lib potrace/lib "*.a")
|
|
||||||
harvest(haru/include haru/include "*.h")
|
|
||||||
harvest(haru/lib haru/lib "*.a")
|
|
||||||
harvest(zstd/include zstd/include "*.h")
|
|
||||||
harvest(zstd/lib zstd/lib "*.a")
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
harvest(libglu/lib mesa/lib "*.so*")
|
|
||||||
harvest(mesa/lib64 mesa/lib "*.so*")
|
|
||||||
|
|
||||||
harvest(dpcpp dpcpp "*")
|
|
||||||
harvest(igc dpcpp/lib/igc "*")
|
|
||||||
harvest(ocloc dpcpp/lib/ocloc "*")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# CMAKE for MS-Windows.
|
# cmake for windows
|
||||||
set(JPEG_EXTRA_ARGS
|
set(JPEG_EXTRA_ARGS
|
||||||
-DNASM=${NASM_PATH}
|
-DNASM=${NASM_PATH}
|
||||||
-DWITH_JPEG8=ON
|
-DWITH_JPEG8=ON
|
||||||
@@ -33,8 +33,8 @@ if(WIN32)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
else()
|
else(WIN32)
|
||||||
# CMAKE for UNIX.
|
# cmake for unix
|
||||||
set(JPEG_EXTRA_ARGS
|
set(JPEG_EXTRA_ARGS
|
||||||
-DWITH_JPEG8=ON
|
-DWITH_JPEG8=ON
|
||||||
-DENABLE_STATIC=ON
|
-DENABLE_STATIC=ON
|
||||||
|
@@ -9,7 +9,6 @@ endif()
|
|||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(LLVM_XML2_ARGS
|
set(LLVM_XML2_ARGS
|
||||||
-DLIBXML2_LIBRARY=${LIBDIR}/xml2/lib/libxml2.a
|
-DLIBXML2_LIBRARY=${LIBDIR}/xml2/lib/libxml2.a
|
||||||
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
|
||||||
)
|
)
|
||||||
set(LLVM_BUILD_CLANG_TOOLS_EXTRA ^^clang-tools-extra)
|
set(LLVM_BUILD_CLANG_TOOLS_EXTRA ^^clang-tools-extra)
|
||||||
set(BUILD_CLANG_TOOLS ON)
|
set(BUILD_CLANG_TOOLS ON)
|
||||||
|
@@ -4,29 +4,6 @@ if(UNIX)
|
|||||||
set(OPENCOLLADA_EXTRA_ARGS
|
set(OPENCOLLADA_EXTRA_ARGS
|
||||||
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
||||||
-DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
|
-DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
|
||||||
|
|
||||||
# WARNING: the patch contains mixed UNIX and DOS line endings
|
|
||||||
# as does the OPENCOLLADA package, if this can be corrected upstream that would be better.
|
|
||||||
# For now use `sed` to force UNIX line endings so the patch applies.
|
|
||||||
# Needed as neither ignoring white-space or applying as a binary resolve this problem.
|
|
||||||
set(PATCH_MAYBE_DOS2UNIX_CMD
|
|
||||||
sed -i "s/\\r//"
|
|
||||||
${PATCH_DIR}/opencollada.diff
|
|
||||||
${BUILD_DIR}/opencollada/src/external_opencollada/CMakeLists.txt
|
|
||||||
${BUILD_DIR}/opencollada/src/external_opencollada/Externals/LibXML/CMakeLists.txt &&
|
|
||||||
)
|
|
||||||
|
|
||||||
else()
|
|
||||||
set(OPENCOLLADA_EXTRA_ARGS
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
|
||||||
)
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
list(APPEND OPENCOLLADA_EXTRA_ARGS -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2s.lib)
|
|
||||||
else()
|
|
||||||
list(APPEND OPENCOLLADA_EXTRA_ARGS -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2sd.lib)
|
|
||||||
endif()
|
|
||||||
set(PATCH_MAYBE_DOS2UNIX_CMD)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_opencollada
|
ExternalProject_Add(external_opencollada
|
||||||
@@ -34,19 +11,17 @@ ExternalProject_Add(external_opencollada
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENCOLLADA_HASH_TYPE}=${OPENCOLLADA_HASH}
|
URL_HASH ${OPENCOLLADA_HASH_TYPE}=${OPENCOLLADA_HASH}
|
||||||
PREFIX ${BUILD_DIR}/opencollada
|
PREFIX ${BUILD_DIR}/opencollada
|
||||||
PATCH_COMMAND
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencollada/src/external_opencollada < ${PATCH_DIR}/opencollada.diff
|
||||||
${PATCH_MAYBE_DOS2UNIX_CMD}
|
|
||||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencollada/src/external_opencollada < ${PATCH_DIR}/opencollada.diff
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencollada ${DEFAULT_CMAKE_FLAGS} ${OPENCOLLADA_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencollada ${DEFAULT_CMAKE_FLAGS} ${OPENCOLLADA_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/opencollada
|
INSTALL_DIR ${LIBDIR}/opencollada
|
||||||
)
|
)
|
||||||
|
|
||||||
unset(PATCH_MAYBE_DOS2UNIX_CMD)
|
if(UNIX)
|
||||||
|
add_dependencies(
|
||||||
add_dependencies(
|
external_opencollada
|
||||||
external_opencollada
|
external_xml2
|
||||||
external_xml2
|
)
|
||||||
)
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
@@ -57,7 +32,17 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_opencollada after_install
|
ExternalProject_Add_Step(external_opencollada after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencollada/lib ${HARVEST_TARGET}/opencollada/lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADABaseUtils.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADABaseUtils_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAFramework.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAFramework_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/pcre.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/pcre_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/UTF.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/UTF_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/xml.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/xml_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,47 +0,0 @@
|
|||||||
# 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(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_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()
|
|
||||||
endif()
|
|
@@ -3,7 +3,6 @@
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
|
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
|
||||||
endif()
|
endif()
|
||||||
option(FORCE_CHECK_HASH "Force a check of all hashses during CMake the configure phase" OFF)
|
|
||||||
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
|
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
|
||||||
cmake_host_system_information(RESULT NUM_CORES QUERY NUMBER_OF_LOGICAL_CORES)
|
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")
|
set(MAKE_THREADS ${NUM_CORES} CACHE STRING "Number of threads to run make with")
|
||||||
@@ -16,13 +15,13 @@ message("BuildMode = ${BUILD_MODE}")
|
|||||||
|
|
||||||
if(BUILD_MODE STREQUAL "Debug")
|
if(BUILD_MODE STREQUAL "Debug")
|
||||||
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Debug)
|
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Debug)
|
||||||
else()
|
else(BUILD_MODE STREQUAL "Debug")
|
||||||
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Release)
|
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Release)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads" CACHE STRING "Path for downloaded files")
|
set(DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads" CACHE STRING "Path for downloaded files")
|
||||||
|
# This path must be hard-coded like this, so that the GNUmakefile knows where it is and can pass it to make_source_archive.py:
|
||||||
set(PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}/packages" CACHE PATH "default path for downloaded packages")
|
set(PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}/packages")
|
||||||
option(PACKAGE_USE_UPSTREAM_SOURCES "Use sources upstream to download the package sources, when OFF the blender mirror will be used" ON)
|
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 ${DOWNLOAD_DIR} DOWNLOAD_DIR)
|
||||||
@@ -102,16 +101,34 @@ else()
|
|||||||
set(LIBPREFIX "lib")
|
set(LIBPREFIX "lib")
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# Use same Xcode detection as Blender itself.
|
# Let's get the current Xcode dir, to support xcode-select
|
||||||
include(../cmake/platform/platform_apple_xcode.cmake)
|
execute_process(
|
||||||
|
COMMAND xcode-select --print-path
|
||||||
|
OUTPUT_VARIABLE XCODE_DEV_PATH OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
execute_process(
|
||||||
|
COMMAND xcodebuild -version -sdk macosx SDKVersion
|
||||||
|
OUTPUT_VARIABLE MACOSX_SDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
if(NOT CMAKE_OSX_ARCHITECTURES)
|
||||||
|
execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
message(STATUS "Detected native architecture ${ARCHITECTURE}.")
|
||||||
|
set(CMAKE_OSX_ARCHITECTURES "${ARCHITECTURE}")
|
||||||
|
endif()
|
||||||
|
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||||
|
set(OSX_DEPLOYMENT_TARGET 10.13)
|
||||||
|
else()
|
||||||
|
set(OSX_DEPLOYMENT_TARGET 11.00)
|
||||||
|
endif()
|
||||||
|
set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk)
|
||||||
|
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||||
set(BLENDER_PLATFORM_ARM ON)
|
set(BLENDER_PLATFORM_ARM ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PLATFORM_CFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||||
set(PLATFORM_CXXFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||||
set(PLATFORM_LDFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
||||||
else()
|
else()
|
||||||
@@ -119,8 +136,8 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
set(PLATFORM_CMAKE_FLAGS
|
set(PLATFORM_CMAKE_FLAGS
|
||||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
||||||
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
|
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${OSX_DEPLOYMENT_TARGET}
|
||||||
-DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT}
|
-DCMAKE_OSX_SYSROOT:PATH=${OSX_SYSROOT}
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
|
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
|
||||||
@@ -154,8 +171,8 @@ else()
|
|||||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
||||||
|
|
||||||
set(CONFIGURE_ENV
|
set(CONFIGURE_ENV
|
||||||
export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} &&
|
export MACOSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} &&
|
||||||
export MACOSX_SDK_VERSION=${CMAKE_OSX_DEPLOYMENT_TARGET} &&
|
export MACOSX_SDK_VERSION=${OSX_DEPLOYMENT_TARGET} &&
|
||||||
export CFLAGS=${PLATFORM_CFLAGS} &&
|
export CFLAGS=${PLATFORM_CFLAGS} &&
|
||||||
export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
|
export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
|
||||||
export LDFLAGS=${PLATFORM_LDFLAGS}
|
export LDFLAGS=${PLATFORM_LDFLAGS}
|
||||||
|
@@ -32,8 +32,6 @@ set(OSL_EXTRA_ARGS
|
|||||||
-DUSE_Qt5=OFF
|
-DUSE_Qt5=OFF
|
||||||
-DINSTALL_DOCS=OFF
|
-DINSTALL_DOCS=OFF
|
||||||
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
||||||
-DTIFF_ROOT=${LIBDIR}/tiff
|
|
||||||
-DJPEG_ROOT=${LIBDIR}/jpeg
|
|
||||||
-DUSE_PYTHON=OFF
|
-DUSE_PYTHON=OFF
|
||||||
-DCMAKE_CXX_STANDARD=14
|
-DCMAKE_CXX_STANDARD=14
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
-DImath_ROOT=${LIBDIR}/imath
|
||||||
@@ -83,7 +81,6 @@ if(WIN32)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslnoise.lib ${HARVEST_TARGET}/osl/lib/oslnoise_d.lib
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -24,14 +24,6 @@ add_dependencies(
|
|||||||
external_zlib
|
external_zlib
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32 AND 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(WIN32 AND BUILD_MODE STREQUAL Debug)
|
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_png after_install
|
ExternalProject_Add_Step(external_png after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_staticd${LIBEXT} ${LIBDIR}/png/lib/libpng16${LIBEXT}
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_staticd${LIBEXT} ${LIBDIR}/png/lib/libpng16${LIBEXT}
|
||||||
|
@@ -15,11 +15,9 @@ if(WIN32)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
|
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
|
||||||
set(ZLIB_SOURCE_FOLDER ${BUILD_DIR}/zlib/src/external_zlib)
|
|
||||||
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
|
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
|
||||||
|
|
||||||
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS)
|
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(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
|
cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
|
||||||
|
|
||||||
ExternalProject_Add(external_python
|
ExternalProject_Add(external_python
|
||||||
@@ -27,21 +25,12 @@ if(WIN32)
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${PYTHON_HASH_TYPE}=${PYTHON_HASH}
|
URL_HASH ${PYTHON_HASH_TYPE}=${PYTHON_HASH}
|
||||||
PREFIX ${BUILD_DIR}/python
|
PREFIX ${BUILD_DIR}/python
|
||||||
# Python will download its own deps and there's very little we can do about
|
CONFIGURE_COMMAND ""
|
||||||
# that beyond placing some code in their externals dir before it tries.
|
|
||||||
# the foldernames *HAVE* to match the ones inside pythons get_externals.cmd.
|
|
||||||
# python 3.10.8 still ships zlib 1.2.12, replace it with our 1.2.13
|
|
||||||
# copy until they update.
|
|
||||||
CONFIGURE_COMMAND mkdir ${PYTHON_EXTERNALS_FOLDER_DOS} &&
|
|
||||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\zlib-1.2.12 ${ZLIB_SOURCE_FOLDER_DOS} &&
|
|
||||||
${CMAKE_COMMAND} -E copy ${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h ${PYTHON_EXTERNALS_FOLDER}/zlib-1.2.12/zconf.h
|
|
||||||
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p x64 -c ${BUILD_MODE}
|
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p x64 -c ${BUILD_MODE}
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_windows.diff
|
||||||
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
||||||
)
|
)
|
||||||
add_dependencies(
|
|
||||||
external_python
|
|
||||||
external_zlib
|
|
||||||
)
|
|
||||||
else()
|
else()
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# Disable functions that can be in 10.13 sdk but aren't available on 10.9 target.
|
# Disable functions that can be in 10.13 sdk but aren't available on 10.9 target.
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
##################################################################################################
|
####################################################################################################################
|
||||||
# Mingw64 Builds
|
# Mingw64 Builds
|
||||||
##################################################################################################
|
####################################################################################################################
|
||||||
# This installs mingw64+msys to compile ffmpeg/iconv/libsndfile/fftw3
|
# This installs mingw64+msys to compile ffmpeg/iconv/libsndfile/fftw3
|
||||||
##################################################################################################
|
####################################################################################################################
|
||||||
|
|
||||||
message("LIBDIR = ${LIBDIR}")
|
message("LIBDIR = ${LIBDIR}")
|
||||||
macro(cmake_to_msys_path MsysPath ResultingPath)
|
macro(cmake_to_msys_path MsysPath ResultingPath)
|
||||||
|
@@ -11,11 +11,18 @@ else()
|
|||||||
set(SNDFILE_OPTIONS --enable-static --disable-shared )
|
set(SNDFILE_OPTIONS --enable-static --disable-shared )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
set(SNDFILE_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/sndfile/src/external_sndfile < ${PATCH_DIR}/sndfile.diff)
|
||||||
|
else()
|
||||||
|
set(SNDFILE_PATCH_CMD)
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_sndfile
|
ExternalProject_Add(external_sndfile
|
||||||
URL file://${PACKAGE_DIR}/${SNDFILE_FILE}
|
URL file://${PACKAGE_DIR}/${SNDFILE_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${SNDFILE_HASH_TYPE}=${SNDFILE_HASH}
|
URL_HASH ${SNDFILE_HASH_TYPE}=${SNDFILE_HASH}
|
||||||
PREFIX ${BUILD_DIR}/sndfile
|
PREFIX ${BUILD_DIR}/sndfile
|
||||||
|
PATCH_COMMAND ${SNDFILE_PATCH_CMD}
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && ${SNDFILE_ENV} ${CONFIGURE_COMMAND} ${SNDFILE_OPTIONS} --prefix=${mingw_LIBDIR}/sndfile
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && ${SNDFILE_ENV} ${CONFIGURE_COMMAND} ${SNDFILE_OPTIONS} --prefix=${mingw_LIBDIR}/sndfile
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make install
|
||||||
|
@@ -48,6 +48,7 @@ ExternalProject_Add(external_sqlite
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
||||||
PREFIX ${BUILD_DIR}/sqlite
|
PREFIX ${BUILD_DIR}/sqlite
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/sqlite/src/external_sqlite < ${PATCH_DIR}/sqlite.diff
|
||||||
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
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}
|
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_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
|
||||||
|
@@ -5,7 +5,6 @@ set(SSL_PATCH_CMD echo .)
|
|||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
|
set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
|
||||||
set(SSL_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/ssl/src/external_ssl < ${PATCH_DIR}/ssl.diff)
|
|
||||||
else()
|
else()
|
||||||
if(BLENDER_PLATFORM_ARM)
|
if(BLENDER_PLATFORM_ARM)
|
||||||
set(SSL_OS_COMPILER "blender-linux-aarch64")
|
set(SSL_OS_COMPILER "blender-linux-aarch64")
|
||||||
|
@@ -25,7 +25,6 @@ ExternalProject_Add(external_tiff
|
|||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_tiff
|
external_tiff
|
||||||
external_zlib
|
external_zlib
|
||||||
external_jpeg
|
|
||||||
)
|
)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
|
@@ -58,9 +58,8 @@ set(USD_EXTRA_ARGS
|
|||||||
-DPXR_BUILD_USD_TOOLS=OFF
|
-DPXR_BUILD_USD_TOOLS=OFF
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
-DCMAKE_DEBUG_POSTFIX=_d
|
||||||
-DBUILD_SHARED_LIBS=Off
|
-DBUILD_SHARED_LIBS=Off
|
||||||
# USD is hellbound on making a shared library,
|
# USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file
|
||||||
# unless you point this variable to a valid CMAKE file doesn't have to make sense,
|
# doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib.
|
||||||
# but as long as it points somewhere valid it will skip the shared library.
|
|
||||||
-DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake
|
-DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake
|
||||||
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
|
-DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include
|
||||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
||||||
@@ -87,8 +86,7 @@ add_dependencies(
|
|||||||
external_opensubdiv
|
external_opensubdiv
|
||||||
)
|
)
|
||||||
|
|
||||||
# Since USD 21.11 the libraries are prefixed with "usd_", i.e.
|
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a".
|
||||||
# "libusd_m.a" became "libusd_usd_m.a".
|
|
||||||
# See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01
|
# See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
if (USD_VERSION VERSION_LESS 21.11)
|
if (USD_VERSION VERSION_LESS 21.11)
|
||||||
|
@@ -1,19 +1,10 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
# CPE's are used to identify dependencies, for more information on what they
|
set(ZLIB_VERSION 1.2.12)
|
||||||
# are please see https://nvd.nist.gov/products/cpe
|
|
||||||
#
|
|
||||||
# We use them in combination with cve-bin-tool to scan for known security issues.
|
|
||||||
#
|
|
||||||
# Not all of our dependencies are currently in the nvd database so not all
|
|
||||||
# dependencies have one assigned.
|
|
||||||
|
|
||||||
set(ZLIB_VERSION 1.2.13)
|
|
||||||
set(ZLIB_URI https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz)
|
set(ZLIB_URI https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz)
|
||||||
set(ZLIB_HASH 9b8aa094c4e5765dabf4da391f00d15c)
|
set(ZLIB_HASH 5fc414a9726be31427b440b434d05f78)
|
||||||
set(ZLIB_HASH_TYPE MD5)
|
set(ZLIB_HASH_TYPE MD5)
|
||||||
set(ZLIB_FILE zlib-${ZLIB_VERSION}.tar.gz)
|
set(ZLIB_FILE zlib-${ZLIB_VERSION}.tar.gz)
|
||||||
set(ZLIB_CPE "cpe:2.3:a:zlib:zlib:${ZLIB_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OPENAL_VERSION 1.21.1)
|
set(OPENAL_VERSION 1.21.1)
|
||||||
set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
|
set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||||
@@ -26,14 +17,12 @@ set(PNG_URI http://prdownloads.sourceforge.net/libpng/libpng-${PNG_VERSION}.tar.
|
|||||||
set(PNG_HASH 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca)
|
set(PNG_HASH 505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca)
|
||||||
set(PNG_HASH_TYPE SHA256)
|
set(PNG_HASH_TYPE SHA256)
|
||||||
set(PNG_FILE libpng-${PNG_VERSION}.tar.xz)
|
set(PNG_FILE libpng-${PNG_VERSION}.tar.xz)
|
||||||
set(PNG_CPE "cpe:2.3:a:libpng:libpng:${PNG_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(JPEG_VERSION 2.1.3)
|
set(JPEG_VERSION 2.1.3)
|
||||||
set(JPEG_URI https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_VERSION}.tar.gz)
|
set(JPEG_URI https://github.com/libjpeg-turbo/libjpeg-turbo/archive/${JPEG_VERSION}.tar.gz)
|
||||||
set(JPEG_HASH 627b980fad0573e08e4c3b80b290fc91)
|
set(JPEG_HASH 627b980fad0573e08e4c3b80b290fc91)
|
||||||
set(JPEG_HASH_TYPE MD5)
|
set(JPEG_HASH_TYPE MD5)
|
||||||
set(JPEG_FILE libjpeg-turbo-${JPEG_VERSION}.tar.gz)
|
set(JPEG_FILE libjpeg-turbo-${JPEG_VERSION}.tar.gz)
|
||||||
set(JPEG_CPE "cpe:2.3:a:d.r.commander:libjpeg-turbo:${JPEG_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(BOOST_VERSION 1.78.0)
|
set(BOOST_VERSION 1.78.0)
|
||||||
set(BOOST_VERSION_SHORT 1.78)
|
set(BOOST_VERSION_SHORT 1.78)
|
||||||
@@ -43,14 +32,12 @@ set(BOOST_URI https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION
|
|||||||
set(BOOST_HASH c2f6428ac52b0e5a3c9b2e1d8cc832b5)
|
set(BOOST_HASH c2f6428ac52b0e5a3c9b2e1d8cc832b5)
|
||||||
set(BOOST_HASH_TYPE MD5)
|
set(BOOST_HASH_TYPE MD5)
|
||||||
set(BOOST_FILE boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
set(BOOST_FILE boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
||||||
set(BOOST_CPE "cpe:2.3:a:boost:boost:${BOOST_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(BLOSC_VERSION 1.21.1)
|
set(BLOSC_VERSION 1.21.1)
|
||||||
set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.tar.gz)
|
set(BLOSC_URI https://github.com/Blosc/c-blosc/archive/v${BLOSC_VERSION}.tar.gz)
|
||||||
set(BLOSC_HASH 134b55813b1dca57019d2a2dc1f7a923)
|
set(BLOSC_HASH 134b55813b1dca57019d2a2dc1f7a923)
|
||||||
set(BLOSC_HASH_TYPE MD5)
|
set(BLOSC_HASH_TYPE MD5)
|
||||||
set(BLOSC_FILE blosc-${BLOSC_VERSION}.tar.gz)
|
set(BLOSC_FILE blosc-${BLOSC_VERSION}.tar.gz)
|
||||||
set(BLOSC_CPE "cpe:2.3:a:c-blosc2_project:c-blosc2:${BLOSC_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(PTHREADS_VERSION 3.0.0)
|
set(PTHREADS_VERSION 3.0.0)
|
||||||
set(PTHREADS_URI http://prdownloads.sourceforge.net/pthreads4w/pthreads4w-code-v${PTHREADS_VERSION}.zip)
|
set(PTHREADS_URI http://prdownloads.sourceforge.net/pthreads4w/pthreads4w-code-v${PTHREADS_VERSION}.zip)
|
||||||
@@ -63,7 +50,6 @@ set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${
|
|||||||
set(OPENEXR_HASH a92f38eedd43e56c0af56d4852506886)
|
set(OPENEXR_HASH a92f38eedd43e56c0af56d4852506886)
|
||||||
set(OPENEXR_HASH_TYPE MD5)
|
set(OPENEXR_HASH_TYPE MD5)
|
||||||
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
|
set(OPENEXR_FILE openexr-${OPENEXR_VERSION}.tar.gz)
|
||||||
set(OPENEXR_CPE "cpe:2.3:a:openexr:openexr:${OPENEXR_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(IMATH_VERSION 3.1.5)
|
set(IMATH_VERSION 3.1.5)
|
||||||
set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${OPENEXR_VERSION}.tar.gz)
|
set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||||
@@ -88,12 +74,11 @@ else()
|
|||||||
set(OPENEXR_VERSION_POSTFIX)
|
set(OPENEXR_VERSION_POSTFIX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(FREETYPE_VERSION 2.12.1)
|
set(FREETYPE_VERSION 2.11.1)
|
||||||
set(FREETYPE_URI http://prdownloads.sourceforge.net/freetype/freetype-${FREETYPE_VERSION}.tar.gz)
|
set(FREETYPE_URI http://prdownloads.sourceforge.net/freetype/freetype-${FREETYPE_VERSION}.tar.gz)
|
||||||
set(FREETYPE_HASH 8bc5c9c9df7ac12c504f8918552a7cf2)
|
set(FREETYPE_HASH bd4e3b007474319909a6b79d50908e85)
|
||||||
set(FREETYPE_HASH_TYPE MD5)
|
set(FREETYPE_HASH_TYPE MD5)
|
||||||
set(FREETYPE_FILE freetype-${FREETYPE_VERSION}.tar.gz)
|
set(FREETYPE_FILE freetype-${FREETYPE_VERSION}.tar.gz)
|
||||||
SET(FREETYPE_CPE "cpe:2.3:a:freetype:freetype:${FREETYPE_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(EPOXY_VERSION 1.5.10)
|
set(EPOXY_VERSION 1.5.10)
|
||||||
set(EPOXY_URI https://github.com/anholt/libepoxy/archive/refs/tags/${EPOXY_VERSION}.tar.gz)
|
set(EPOXY_URI https://github.com/anholt/libepoxy/archive/refs/tags/${EPOXY_VERSION}.tar.gz)
|
||||||
@@ -112,7 +97,6 @@ set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.ta
|
|||||||
set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
|
set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
|
||||||
set(ALEMBIC_HASH_TYPE MD5)
|
set(ALEMBIC_HASH_TYPE MD5)
|
||||||
set(ALEMBIC_FILE alembic-${ALEMBIC_VERSION}.tar.gz)
|
set(ALEMBIC_FILE alembic-${ALEMBIC_VERSION}.tar.gz)
|
||||||
SET(FREETYPE_CPE "cpe:2.3:a:freetype:freetype:${FREETYPE_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OPENSUBDIV_VERSION v3_4_4)
|
set(OPENSUBDIV_VERSION v3_4_4)
|
||||||
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
|
set(OPENSUBDIV_URI https://github.com/PixarAnimationStudios/OpenSubdiv/archive/${OPENSUBDIV_VERSION}.tar.gz)
|
||||||
@@ -125,7 +109,6 @@ set(SDL_URI https://www.libsdl.org/release/SDL2-${SDL_VERSION}.tar.gz)
|
|||||||
set(SDL_HASH a53acc02e1cca98c4123229069b67c9e)
|
set(SDL_HASH a53acc02e1cca98c4123229069b67c9e)
|
||||||
set(SDL_HASH_TYPE MD5)
|
set(SDL_HASH_TYPE MD5)
|
||||||
set(SDL_FILE SDL2-${SDL_VERSION}.tar.gz)
|
set(SDL_FILE SDL2-${SDL_VERSION}.tar.gz)
|
||||||
set(SDL_CPE "cpe:2.3:a:libsdl:sdl:${SDL_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OPENCOLLADA_VERSION v1.6.68)
|
set(OPENCOLLADA_VERSION v1.6.68)
|
||||||
set(OPENCOLLADA_URI https://github.com/KhronosGroup/OpenCOLLADA/archive/${OPENCOLLADA_VERSION}.tar.gz)
|
set(OPENCOLLADA_URI https://github.com/KhronosGroup/OpenCOLLADA/archive/${OPENCOLLADA_VERSION}.tar.gz)
|
||||||
@@ -144,7 +127,6 @@ set(LLVM_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${LL
|
|||||||
set(LLVM_HASH 5a4fab4d7fc84aefffb118ac2c8a4fc0)
|
set(LLVM_HASH 5a4fab4d7fc84aefffb118ac2c8a4fc0)
|
||||||
set(LLVM_HASH_TYPE MD5)
|
set(LLVM_HASH_TYPE MD5)
|
||||||
set(LLVM_FILE llvm-project-${LLVM_VERSION}.src.tar.xz)
|
set(LLVM_FILE llvm-project-${LLVM_VERSION}.src.tar.xz)
|
||||||
set(LLVM_CPE "cpe:2.3:a:llvm:compiler:${LLVM_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# Cloth physics test is crashing due to this bug:
|
# Cloth physics test is crashing due to this bug:
|
||||||
@@ -159,9 +141,9 @@ set(OPENMP_URI https://github.com/llvm/llvm-project/releases/download/llvmorg-${
|
|||||||
set(OPENMP_HASH_TYPE MD5)
|
set(OPENMP_HASH_TYPE MD5)
|
||||||
set(OPENMP_FILE openmp-${OPENMP_VERSION}.src.tar.xz)
|
set(OPENMP_FILE openmp-${OPENMP_VERSION}.src.tar.xz)
|
||||||
|
|
||||||
set(OPENIMAGEIO_VERSION v2.3.20.0)
|
set(OPENIMAGEIO_VERSION v2.3.13.0)
|
||||||
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
|
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
|
||||||
set(OPENIMAGEIO_HASH defb1fe7c8e64bac60eb3cacaf5c3736)
|
set(OPENIMAGEIO_HASH de45fb38501c4581062b522b53b6141c)
|
||||||
set(OPENIMAGEIO_HASH_TYPE MD5)
|
set(OPENIMAGEIO_HASH_TYPE MD5)
|
||||||
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
|
set(OPENIMAGEIO_FILE OpenImageIO-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -172,7 +154,6 @@ set(FMT_URI https://github.com/fmtlib/fmt/archive/refs/tags/${FMT_VERSION}.tar.g
|
|||||||
set(FMT_HASH 7bce0e9e022e586b178b150002e7c2339994e3c2bbe44027e9abb0d60f9cce83)
|
set(FMT_HASH 7bce0e9e022e586b178b150002e7c2339994e3c2bbe44027e9abb0d60f9cce83)
|
||||||
set(FMT_HASH_TYPE SHA256)
|
set(FMT_HASH_TYPE SHA256)
|
||||||
set(FMT_FILE fmt-${FMT_VERSION}.tar.gz)
|
set(FMT_FILE fmt-${FMT_VERSION}.tar.gz)
|
||||||
set(FMT_CPE "cpe:2.3:a:fmt:fmt:${FMT_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
# 0.6.2 is currently oiio's preferred version although never versions may be available.
|
# 0.6.2 is currently oiio's preferred version although never versions may be available.
|
||||||
# the preferred version can be found in oiio's externalpackages.cmake
|
# the preferred version can be found in oiio's externalpackages.cmake
|
||||||
@@ -187,30 +168,26 @@ set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
|
|||||||
set(TIFF_HASH 376f17f189e9d02280dfe709b2b2bbea)
|
set(TIFF_HASH 376f17f189e9d02280dfe709b2b2bbea)
|
||||||
set(TIFF_HASH_TYPE MD5)
|
set(TIFF_HASH_TYPE MD5)
|
||||||
set(TIFF_FILE tiff-${TIFF_VERSION}.tar.gz)
|
set(TIFF_FILE tiff-${TIFF_VERSION}.tar.gz)
|
||||||
set(TIFF_CPE "cpe:2.3:a:libtiff:libtiff:${TIFF_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OSL_VERSION 1.12.6.2)
|
set(OSL_VERSION 1.11.17.0)
|
||||||
set(OSL_URI https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/archive/refs/tags/v${OSL_VERSION}.tar.gz)
|
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
|
||||||
set(OSL_HASH 6fef11548adfdd3e5b25c49d2dae96ee)
|
set(OSL_HASH 63265472ce14548839ace2e21e401544)
|
||||||
set(OSL_HASH_TYPE MD5)
|
set(OSL_HASH_TYPE MD5)
|
||||||
set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
|
set(OSL_FILE OpenShadingLanguage-${OSL_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(PYTHON_VERSION 3.10.8)
|
set(PYTHON_VERSION 3.10.2)
|
||||||
set(PYTHON_SHORT_VERSION 3.10)
|
set(PYTHON_SHORT_VERSION 3.10)
|
||||||
set(PYTHON_SHORT_VERSION_NO_DOTS 310)
|
set(PYTHON_SHORT_VERSION_NO_DOTS 310)
|
||||||
set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz)
|
set(PYTHON_URI https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz)
|
||||||
set(PYTHON_HASH e92356b012ed4d0e09675131d39b1bde)
|
set(PYTHON_HASH 14e8c22458ed7779a1957b26cde01db9)
|
||||||
set(PYTHON_HASH_TYPE MD5)
|
set(PYTHON_HASH_TYPE MD5)
|
||||||
set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz)
|
set(PYTHON_FILE Python-${PYTHON_VERSION}.tar.xz)
|
||||||
set(PYTHON_CPE "cpe:2.3:a:python:python:${PYTHON_VERSION}:-:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(TBB_YEAR 2020)
|
set(TBB_VERSION 2020_U3)
|
||||||
set(TBB_VERSION ${TBB_YEAR}_U3)
|
|
||||||
set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
|
set(TBB_URI https://github.com/oneapi-src/oneTBB/archive/${TBB_VERSION}.tar.gz)
|
||||||
set(TBB_HASH 55ec8df6eae5ed6364a47f0e671e460c)
|
set(TBB_HASH 55ec8df6eae5ed6364a47f0e671e460c)
|
||||||
set(TBB_HASH_TYPE MD5)
|
set(TBB_HASH_TYPE MD5)
|
||||||
set(TBB_FILE oneTBB-${TBB_VERSION}.tar.gz)
|
set(TBB_FILE oneTBB-${TBB_VERSION}.tar.gz)
|
||||||
set(TBB_CPE "cpe:2.3:a:intel:threading_building_blocks:${TBB_YEAR}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OPENVDB_VERSION 9.0.0)
|
set(OPENVDB_VERSION 9.0.0)
|
||||||
set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
|
set(OPENVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz)
|
||||||
@@ -221,13 +198,11 @@ set(OPENVDB_FILE openvdb-${OPENVDB_VERSION}.tar.gz)
|
|||||||
set(IDNA_VERSION 3.3)
|
set(IDNA_VERSION 3.3)
|
||||||
set(CHARSET_NORMALIZER_VERSION 2.0.10)
|
set(CHARSET_NORMALIZER_VERSION 2.0.10)
|
||||||
set(URLLIB3_VERSION 1.26.8)
|
set(URLLIB3_VERSION 1.26.8)
|
||||||
set(URLLIB3_CPE "cpe:2.3:a:urllib3:urllib3:${URLLIB3_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
set(CERTIFI_VERSION 2021.10.8)
|
set(CERTIFI_VERSION 2021.10.8)
|
||||||
set(REQUESTS_VERSION 2.27.1)
|
set(REQUESTS_VERSION 2.27.1)
|
||||||
set(CYTHON_VERSION 0.29.26)
|
set(CYTHON_VERSION 0.29.26)
|
||||||
# The version of the zstd library used to build the Python package should match ZSTD_VERSION
|
# The version of the zstd library used to build the Python package should match ZSTD_VERSION defined below.
|
||||||
# defined below. At this time of writing, 0.17.0 was already released,
|
# At this time of writing, 0.17.0 was already released, but built against zstd 1.5.1, while we use 1.5.0.
|
||||||
# but built against zstd 1.5.1, while we use 1.5.0.
|
|
||||||
set(ZSTANDARD_VERSION 0.16.0)
|
set(ZSTANDARD_VERSION 0.16.0)
|
||||||
set(AUTOPEP8_VERSION 1.6.0)
|
set(AUTOPEP8_VERSION 1.6.0)
|
||||||
set(PYCODESTYLE_VERSION 2.8.0)
|
set(PYCODESTYLE_VERSION 2.8.0)
|
||||||
@@ -239,14 +214,12 @@ set(NUMPY_URI https://github.com/numpy/numpy/releases/download/v${NUMPY_VERSION}
|
|||||||
set(NUMPY_HASH 252de134862a27bd66705d29622edbfe)
|
set(NUMPY_HASH 252de134862a27bd66705d29622edbfe)
|
||||||
set(NUMPY_HASH_TYPE MD5)
|
set(NUMPY_HASH_TYPE MD5)
|
||||||
set(NUMPY_FILE numpy-${NUMPY_VERSION}.zip)
|
set(NUMPY_FILE numpy-${NUMPY_VERSION}.zip)
|
||||||
set(NUMPY_CPE "cpe:2.3:a:numpy:numpy:${NUMPY_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(LAME_VERSION 3.100)
|
set(LAME_VERSION 3.100)
|
||||||
set(LAME_URI http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME_VERSION}.tar.gz)
|
set(LAME_URI http://downloads.sourceforge.net/project/lame/lame/3.100/lame-${LAME_VERSION}.tar.gz)
|
||||||
set(LAME_HASH 83e260acbe4389b54fe08e0bdbf7cddb)
|
set(LAME_HASH 83e260acbe4389b54fe08e0bdbf7cddb)
|
||||||
set(LAME_HASH_TYPE MD5)
|
set(LAME_HASH_TYPE MD5)
|
||||||
set(LAME_FILE lame-${LAME_VERSION}.tar.gz)
|
set(LAME_FILE lame-${LAME_VERSION}.tar.gz)
|
||||||
set(LAME_CPE "cpe:2.3:a:lame_project:lame:${LAME_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OGG_VERSION 1.3.5)
|
set(OGG_VERSION 1.3.5)
|
||||||
set(OGG_URI http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz)
|
set(OGG_URI http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz)
|
||||||
@@ -259,7 +232,6 @@ set(VORBIS_URI http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERS
|
|||||||
set(VORBIS_HASH 0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab)
|
set(VORBIS_HASH 0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab)
|
||||||
set(VORBIS_HASH_TYPE SHA256)
|
set(VORBIS_HASH_TYPE SHA256)
|
||||||
set(VORBIS_FILE libvorbis-${VORBIS_VERSION}.tar.gz)
|
set(VORBIS_FILE libvorbis-${VORBIS_VERSION}.tar.gz)
|
||||||
set(VORBIS_CPE "cpe:2.3:a:xiph.org:libvorbis:${VORBIS_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(THEORA_VERSION 1.1.1)
|
set(THEORA_VERSION 1.1.1)
|
||||||
set(THEORA_URI http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.bz2)
|
set(THEORA_URI http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.bz2)
|
||||||
@@ -272,14 +244,12 @@ set(FLAC_URI http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.xz
|
|||||||
set(FLAC_HASH 8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737 )
|
set(FLAC_HASH 8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737 )
|
||||||
set(FLAC_HASH_TYPE SHA256)
|
set(FLAC_HASH_TYPE SHA256)
|
||||||
set(FLAC_FILE flac-${FLAC_VERSION}.tar.xz)
|
set(FLAC_FILE flac-${FLAC_VERSION}.tar.xz)
|
||||||
set(FLAC_CPE "cpe:2.3:a:flac_project:flac:${FLAC_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(VPX_VERSION 1.11.0)
|
set(VPX_VERSION 1.11.0)
|
||||||
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
|
set(VPX_URI https://github.com/webmproject/libvpx/archive/v${VPX_VERSION}/libvpx-v${VPX_VERSION}.tar.gz)
|
||||||
set(VPX_HASH 965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83)
|
set(VPX_HASH 965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83)
|
||||||
set(VPX_HASH_TYPE SHA256)
|
set(VPX_HASH_TYPE SHA256)
|
||||||
set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz)
|
set(VPX_FILE libvpx-v${VPX_VERSION}.tar.gz)
|
||||||
set(VPX_CPE "cpe:2.3:a:webmproject:libvpx:${VPX_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OPUS_VERSION 1.3.1)
|
set(OPUS_VERSION 1.3.1)
|
||||||
set(OPUS_URI https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz)
|
set(OPUS_URI https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz)
|
||||||
@@ -299,20 +269,18 @@ set(XVIDCORE_HASH abbdcbd39555691dd1c9b4d08f0a031376a3b211652c0d8b3b8aa9be1303ce
|
|||||||
set(XVIDCORE_HASH_TYPE SHA256)
|
set(XVIDCORE_HASH_TYPE SHA256)
|
||||||
set(XVIDCORE_FILE xvidcore-${XVIDCORE_VERSION}.tar.gz)
|
set(XVIDCORE_FILE xvidcore-${XVIDCORE_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(OPENJPEG_VERSION 2.5.0)
|
set(OPENJPEG_VERSION 2.4.0)
|
||||||
set(OPENJPEG_SHORT_VERSION 2.5)
|
set(OPENJPEG_SHORT_VERSION 2.4)
|
||||||
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz)
|
set(OPENJPEG_URI https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz)
|
||||||
set(OPENJPEG_HASH 0333806d6adecc6f7a91243b2b839ff4d2053823634d4f6ed7a59bc87409122a)
|
set(OPENJPEG_HASH 8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d)
|
||||||
set(OPENJPEG_HASH_TYPE SHA256)
|
set(OPENJPEG_HASH_TYPE SHA256)
|
||||||
set(OPENJPEG_FILE openjpeg-v${OPENJPEG_VERSION}.tar.gz)
|
set(OPENJPEG_FILE openjpeg-v${OPENJPEG_VERSION}.tar.gz)
|
||||||
set(OPENJPEG_CPE "cpe:2.3:a:uclouvain:openjpeg:${OPENJPEG_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(FFMPEG_VERSION 5.1.2)
|
set(FFMPEG_VERSION 5.0)
|
||||||
set(FFMPEG_URI http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
set(FFMPEG_URI http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
||||||
set(FFMPEG_HASH 39a0bcc8d98549f16c570624678246a6ac736c066cebdb409f9502e915b22f2b)
|
set(FFMPEG_HASH c0130b8db2c763430fd1c6905288d61bc44ee0548ad5fcd2dfd650b88432bed9)
|
||||||
set(FFMPEG_HASH_TYPE SHA256)
|
set(FFMPEG_HASH_TYPE SHA256)
|
||||||
set(FFMPEG_FILE ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
set(FFMPEG_FILE ffmpeg-${FFMPEG_VERSION}.tar.bz2)
|
||||||
set(FFMPEG_CPE "cpe:2.3:a:ffmpeg:ffmpeg:${FFMPEG_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(FFTW_VERSION 3.3.10)
|
set(FFTW_VERSION 3.3.10)
|
||||||
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
|
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
|
||||||
@@ -326,19 +294,17 @@ set(ICONV_HASH 7d2a800b952942bb2880efb00cfd524c)
|
|||||||
set(ICONV_HASH_TYPE MD5)
|
set(ICONV_HASH_TYPE MD5)
|
||||||
set(ICONV_FILE libiconv-${ICONV_VERSION}.tar.gz)
|
set(ICONV_FILE libiconv-${ICONV_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(SNDFILE_VERSION 1.1.0)
|
set(SNDFILE_VERSION 1.0.28)
|
||||||
set(SNDFILE_URI https://github.com/libsndfile/libsndfile/releases/download/1.1.0/libsndfile-${SNDFILE_VERSION}.tar.xz)
|
set(SNDFILE_URI http://www.mega-nerd.com/libsndfile/files/libsndfile-${SNDFILE_VERSION}.tar.gz)
|
||||||
set(SNDFILE_HASH e63dead2b4f0aaf323687619d007ee6a)
|
set(SNDFILE_HASH 646b5f98ce89ac60cdb060fcd398247c)
|
||||||
set(SNDFILE_HASH_TYPE MD5)
|
set(SNDFILE_HASH_TYPE MD5)
|
||||||
set(SNDFILE_FILE libsndfile-${SNDFILE_VERSION}.tar.gz)
|
set(SNDFILE_FILE libsndfile-${SNDFILE_VERSION}.tar.gz)
|
||||||
set(SNDFILE_CPE "cpe:2.3:a:libsndfile_project:libsndfile:${SNDFILE_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(WEBP_VERSION 1.2.2)
|
set(WEBP_VERSION 1.2.2)
|
||||||
set(WEBP_URI https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz)
|
set(WEBP_URI https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz)
|
||||||
set(WEBP_HASH b5e2e414a8adee4c25fe56b18dd9c549)
|
set(WEBP_HASH b5e2e414a8adee4c25fe56b18dd9c549)
|
||||||
set(WEBP_HASH_TYPE MD5)
|
set(WEBP_HASH_TYPE MD5)
|
||||||
set(WEBP_FILE libwebp-${WEBP_VERSION}.tar.gz)
|
set(WEBP_FILE libwebp-${WEBP_VERSION}.tar.gz)
|
||||||
set(WEBP_CPE "cpe:2.3:a:webmproject:libwebp:${WEBP_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(SPNAV_VERSION 0.2.3)
|
set(SPNAV_VERSION 0.2.3)
|
||||||
set(SPNAV_URI http://downloads.sourceforge.net/project/spacenav/spacenav%20library%20%28SDK%29/libspnav%20${SPNAV_VERSION}/libspnav-${SPNAV_VERSION}.tar.gz)
|
set(SPNAV_URI http://downloads.sourceforge.net/project/spacenav/spacenav%20library%20%28SDK%29/libspnav%20${SPNAV_VERSION}/libspnav-${SPNAV_VERSION}.tar.gz)
|
||||||
@@ -352,19 +318,24 @@ set(JEMALLOC_HASH 3d41fbf006e6ebffd489bdb304d009ae)
|
|||||||
set(JEMALLOC_HASH_TYPE MD5)
|
set(JEMALLOC_HASH_TYPE MD5)
|
||||||
set(JEMALLOC_FILE jemalloc-${JEMALLOC_VERSION}.tar.bz2)
|
set(JEMALLOC_FILE jemalloc-${JEMALLOC_VERSION}.tar.bz2)
|
||||||
|
|
||||||
set(XML2_VERSION 2.10.3)
|
set(XML2_VERSION 2.9.10)
|
||||||
set(XML2_URI https://download.gnome.org/sources/libxml2/2.10/libxml2-${XML2_VERSION}.tar.xz)
|
set(XML2_URI http://xmlsoft.org/sources/libxml2-${XML2_VERSION}.tar.gz)
|
||||||
set(XML2_HASH f9edac7fac232b3657a003fd9a5bbe42)
|
set(XML2_HASH 10942a1dc23137a8aa07f0639cbfece5)
|
||||||
set(XML2_HASH_TYPE MD5)
|
set(XML2_HASH_TYPE MD5)
|
||||||
set(XML2_FILE libxml2-${XML2_VERSION}.tar.xz)
|
set(XML2_FILE libxml2-${XML2_VERSION}.tar.gz)
|
||||||
set(XML2_CPE "cpe:2.3:a:xmlsoft:libxml2:${XML2_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
set(TINYXML_VERSION 2_6_2)
|
||||||
|
set(TINYXML_VERSION_DOTS 2.6.2)
|
||||||
|
set(TINYXML_URI https://nchc.dl.sourceforge.net/project/tinyxml/tinyxml/${TINYXML_VERSION_DOTS}/tinyxml_${TINYXML_VERSION}.tar.gz)
|
||||||
|
set(TINYXML_HASH c1b864c96804a10526540c664ade67f0)
|
||||||
|
set(TINYXML_HASH_TYPE MD5)
|
||||||
|
set(TINYXML_FILE tinyxml_${TINYXML_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(YAMLCPP_VERSION 0.6.3)
|
set(YAMLCPP_VERSION 0.6.3)
|
||||||
set(YAMLCPP_URI https://codeload.github.com/jbeder/yaml-cpp/tar.gz/yaml-cpp-${YAMLCPP_VERSION})
|
set(YAMLCPP_URI https://codeload.github.com/jbeder/yaml-cpp/tar.gz/yaml-cpp-${YAMLCPP_VERSION})
|
||||||
set(YAMLCPP_HASH b45bf1089a382e81f6b661062c10d0c2)
|
set(YAMLCPP_HASH b45bf1089a382e81f6b661062c10d0c2)
|
||||||
set(YAMLCPP_HASH_TYPE MD5)
|
set(YAMLCPP_HASH_TYPE MD5)
|
||||||
set(YAMLCPP_FILE yaml-cpp-${YAMLCPP_VERSION}.tar.gz)
|
set(YAMLCPP_FILE yaml-cpp-${YAMLCPP_VERSION}.tar.gz)
|
||||||
set(YAMLCPP "cpe:2.3:a:yaml-cpp_project:yaml-cpp:${YAMLCPP_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(PYSTRING_VERSION v1.1.3)
|
set(PYSTRING_VERSION v1.1.3)
|
||||||
set(PYSTRING_URI https://codeload.github.com/imageworks/pystring/tar.gz/refs/tags/${PYSTRING_VERSION})
|
set(PYSTRING_URI https://codeload.github.com/imageworks/pystring/tar.gz/refs/tags/${PYSTRING_VERSION})
|
||||||
@@ -372,20 +343,17 @@ set(PYSTRING_HASH f2c68786b359f5e4e62bed53bc4fb86d)
|
|||||||
set(PYSTRING_HASH_TYPE MD5)
|
set(PYSTRING_HASH_TYPE MD5)
|
||||||
set(PYSTRING_FILE pystring-${PYSTRING_VERSION}.tar.gz)
|
set(PYSTRING_FILE pystring-${PYSTRING_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(EXPAT_VERSION 2_5_0)
|
set(EXPAT_VERSION 2_4_4)
|
||||||
set(EXPAT_VERSION_DOTS 2.5.0)
|
|
||||||
set(EXPAT_URI https://github.com/libexpat/libexpat/archive/R_${EXPAT_VERSION}.tar.gz)
|
set(EXPAT_URI https://github.com/libexpat/libexpat/archive/R_${EXPAT_VERSION}.tar.gz)
|
||||||
set(EXPAT_HASH d375fa3571c0abb945873f5061a8f2e2)
|
set(EXPAT_HASH 2d3e81dee94b452369dc6394ff0f8f98)
|
||||||
set(EXPAT_HASH_TYPE MD5)
|
set(EXPAT_HASH_TYPE MD5)
|
||||||
set(EXPAT_FILE libexpat-${EXPAT_VERSION}.tar.gz)
|
set(EXPAT_FILE libexpat-${EXPAT_VERSION}.tar.gz)
|
||||||
set(EXPAT_CPE "cpe:2.3:a:libexpat_project:libexpat:${EXPAT_VERSION_DOTS}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(PUGIXML_VERSION 1.10)
|
set(PUGIXML_VERSION 1.10)
|
||||||
set(PUGIXML_URI https://github.com/zeux/pugixml/archive/v${PUGIXML_VERSION}.tar.gz)
|
set(PUGIXML_URI https://github.com/zeux/pugixml/archive/v${PUGIXML_VERSION}.tar.gz)
|
||||||
set(PUGIXML_HASH 0c208b0664c7fb822bf1b49ad035e8fd)
|
set(PUGIXML_HASH 0c208b0664c7fb822bf1b49ad035e8fd)
|
||||||
set(PUGIXML_HASH_TYPE MD5)
|
set(PUGIXML_HASH_TYPE MD5)
|
||||||
set(PUGIXML_FILE pugixml-${PUGIXML_VERSION}.tar.gz)
|
set(PUGIXML_FILE pugixml-${PUGIXML_VERSION}.tar.gz)
|
||||||
set(PUGIXML_CPE "cpe:2.3:a:pugixml_project:pugixml:${PUGIXML_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(FLEXBISON_VERSION 2.5.24)
|
set(FLEXBISON_VERSION 2.5.24)
|
||||||
set(FLEXBISON_URI http://prdownloads.sourceforge.net/winflexbison/win_flex_bison-${FLEXBISON_VERSION}.zip)
|
set(FLEXBISON_URI http://prdownloads.sourceforge.net/winflexbison/win_flex_bison-${FLEXBISON_VERSION}.zip)
|
||||||
@@ -403,26 +371,17 @@ set(FLEX_FILE flex-${FLEX_VERSION}.tar.gz)
|
|||||||
|
|
||||||
# NOTE: bzip.org domain does no longer belong to BZip 2 project, so we download
|
# NOTE: bzip.org domain does no longer belong to BZip 2 project, so we download
|
||||||
# sources from Debian packaging.
|
# sources from Debian packaging.
|
||||||
#
|
|
||||||
# NOTE 2: This will *HAVE* to match the version python ships on windows which
|
|
||||||
# is hardcoded in pythons PCbuild/get_externals.bat. For compliance reasons there
|
|
||||||
# can be no exceptions to this.
|
|
||||||
set(BZIP2_VERSION 1.0.8)
|
set(BZIP2_VERSION 1.0.8)
|
||||||
set(BZIP2_URI http://http.debian.net/debian/pool/main/b/bzip2/bzip2_${BZIP2_VERSION}.orig.tar.gz)
|
set(BZIP2_URI http://http.debian.net/debian/pool/main/b/bzip2/bzip2_${BZIP2_VERSION}.orig.tar.gz)
|
||||||
set(BZIP2_HASH ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269)
|
set(BZIP2_HASH ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269)
|
||||||
set(BZIP2_HASH_TYPE SHA256)
|
set(BZIP2_HASH_TYPE SHA256)
|
||||||
set(BZIP2_FILE bzip2_${BZIP2_VERSION}.orig.tar.gz)
|
set(BZIP2_FILE bzip2_${BZIP2_VERSION}.orig.tar.gz)
|
||||||
set(BZIP2_CPE "cpe:2.3:a:bzip:bzip2:${BZIP2_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
# NOTE: This will *HAVE* to match the version python ships on windows which
|
|
||||||
# is hardcoded in pythons PCbuild/get_externals.bat. For compliance reasons there
|
|
||||||
# can be no exceptions to this.
|
|
||||||
set(FFI_VERSION 3.3)
|
set(FFI_VERSION 3.3)
|
||||||
set(FFI_URI https://sourceware.org/pub/libffi/libffi-${FFI_VERSION}.tar.gz)
|
set(FFI_URI https://sourceware.org/pub/libffi/libffi-${FFI_VERSION}.tar.gz)
|
||||||
set(FFI_HASH 72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056)
|
set(FFI_HASH 72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056)
|
||||||
set(FFI_HASH_TYPE SHA256)
|
set(FFI_HASH_TYPE SHA256)
|
||||||
set(FFI_FILE libffi-${FFI_VERSION}.tar.gz)
|
set(FFI_FILE libffi-${FFI_VERSION}.tar.gz)
|
||||||
set(FFI_CPE "cpe:2.3:a:libffi_project:libffi:${FFI_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(LZMA_VERSION 5.2.5)
|
set(LZMA_VERSION 5.2.5)
|
||||||
set(LZMA_URI https://tukaani.org/xz/xz-${LZMA_VERSION}.tar.bz2)
|
set(LZMA_URI https://tukaani.org/xz/xz-${LZMA_VERSION}.tar.bz2)
|
||||||
@@ -430,26 +389,26 @@ set(LZMA_HASH 5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df)
|
|||||||
set(LZMA_HASH_TYPE SHA256)
|
set(LZMA_HASH_TYPE SHA256)
|
||||||
set(LZMA_FILE xz-${LZMA_VERSION}.tar.bz2)
|
set(LZMA_FILE xz-${LZMA_VERSION}.tar.bz2)
|
||||||
|
|
||||||
# NOTE: This will *HAVE* to match the version python ships on windows which
|
if(BLENDER_PLATFORM_ARM)
|
||||||
# is hardcoded in pythons PCbuild/get_externals.bat. For compliance reasons there
|
# Need at least 1.1.1i for aarch64 support (https://github.com/openssl/openssl/pull/13218)
|
||||||
# can be no exceptions to this.
|
set(SSL_VERSION 1.1.1i)
|
||||||
set(SSL_VERSION 1.1.1q)
|
set(SSL_URI https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz)
|
||||||
set(SSL_URI https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz)
|
set(SSL_HASH e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242)
|
||||||
set(SSL_HASH d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca)
|
set(SSL_HASH_TYPE SHA256)
|
||||||
set(SSL_HASH_TYPE SHA256)
|
set(SSL_FILE openssl-${SSL_VERSION}.tar.gz)
|
||||||
set(SSL_FILE openssl-${SSL_VERSION}.tar.gz)
|
else()
|
||||||
set(SSL_CPE "cpe:2.3:a:openssl:openssl:${SSL_VERSION}:*:*:*:*:*:*:*")
|
set(SSL_VERSION 1.1.1g)
|
||||||
|
set(SSL_URI https://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz)
|
||||||
|
set(SSL_HASH ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46)
|
||||||
|
set(SSL_HASH_TYPE SHA256)
|
||||||
|
set(SSL_FILE openssl-${SSL_VERSION}.tar.gz)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Note: This will *HAVE* to match the version python ships on windows which
|
set(SQLITE_VERSION 3.31.1)
|
||||||
# is hardcoded in pythons PCbuild/get_externals.bat for compliance reasons there
|
set(SQLITE_URI https://www.sqlite.org/2018/sqlite-src-3240000.zip)
|
||||||
# can be no exceptions to this.
|
set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
|
||||||
set(SQLITE_VERSION 3.37.2)
|
|
||||||
set(SQLLITE_LONG_VERSION 3370200)
|
|
||||||
set(SQLITE_URI https://www.sqlite.org/2022/sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
|
||||||
set(SQLITE_HASH e56faacadfb4154f8fbd0f2a3f827d13706b70a1)
|
|
||||||
set(SQLITE_HASH_TYPE SHA1)
|
set(SQLITE_HASH_TYPE SHA1)
|
||||||
set(SQLITE_FILE sqlite-autoconf-${SQLLITE_LONG_VERSION}.tar.gz)
|
set(SQLITE_FILE sqlite-src-3240000.zip)
|
||||||
set(SQLITE_CPE "cpe:2.3:a:sqlite:sqlite:${SQLITE_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(EMBREE_VERSION 3.13.4)
|
set(EMBREE_VERSION 3.13.4)
|
||||||
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
|
set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip)
|
||||||
@@ -480,14 +439,12 @@ set(MESA_URI ftp://ftp.freedesktop.org/pub/mesa/mesa-${MESA_VERSION}.tar.xz)
|
|||||||
set(MESA_HASH 022c7293074aeeced2278c872db4fa693147c70f8595b076cf3f1ef81520766d)
|
set(MESA_HASH 022c7293074aeeced2278c872db4fa693147c70f8595b076cf3f1ef81520766d)
|
||||||
set(MESA_HASH_TYPE SHA256)
|
set(MESA_HASH_TYPE SHA256)
|
||||||
set(MESA_FILE mesa-${MESA_VERSION}.tar.xz)
|
set(MESA_FILE mesa-${MESA_VERSION}.tar.xz)
|
||||||
set(MESA_CPE "cpe:2.3:a:mesa3d:mesa:${MESA_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(NASM_VERSION 2.15.02)
|
set(NASM_VERSION 2.15.02)
|
||||||
set(NASM_URI https://github.com/netwide-assembler/nasm/archive/nasm-${NASM_VERSION}.tar.gz)
|
set(NASM_URI https://github.com/netwide-assembler/nasm/archive/nasm-${NASM_VERSION}.tar.gz)
|
||||||
set(NASM_HASH aded8b796c996a486a56e0515c83e414116decc3b184d88043480b32eb0a8589)
|
set(NASM_HASH aded8b796c996a486a56e0515c83e414116decc3b184d88043480b32eb0a8589)
|
||||||
set(NASM_HASH_TYPE SHA256)
|
set(NASM_HASH_TYPE SHA256)
|
||||||
set(NASM_FILE nasm-${NASM_VERSION}.tar.gz)
|
set(NASM_FILE nasm-${NASM_VERSION}.tar.gz)
|
||||||
set(NASM_PCE "cpe:2.3:a:nasm:nasm:${NASM_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(XR_OPENXR_SDK_VERSION 1.0.22)
|
set(XR_OPENXR_SDK_VERSION 1.0.22)
|
||||||
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
||||||
@@ -501,18 +458,6 @@ set(WL_PROTOCOLS_URI https://gitlab.freedesktop.org/wayland/wayland-protocols/-/
|
|||||||
set(WL_PROTOCOLS_HASH af5ca07e13517cdbab33504492cef54a)
|
set(WL_PROTOCOLS_HASH af5ca07e13517cdbab33504492cef54a)
|
||||||
set(WL_PROTOCOLS_HASH_TYPE MD5)
|
set(WL_PROTOCOLS_HASH_TYPE MD5)
|
||||||
|
|
||||||
set(WAYLAND_VERSION 1.21.0)
|
|
||||||
set(WAYLAND_FILE wayland-${WAYLAND_VERSION}.tar.xz)
|
|
||||||
set(WAYLAND_URI https://gitlab.freedesktop.org/wayland/wayland/-/releases/1.21.0/downloads/wayland-${WAYLAND_VERSION}.tar.xz)
|
|
||||||
set(WAYLAND_HASH f2653a2293bcd882d756c6a83d278903)
|
|
||||||
set(WAYLAND_HASH_TYPE MD5)
|
|
||||||
|
|
||||||
set(WAYLAND_LIBDECOR_VERSION 0.1.0)
|
|
||||||
set(WAYLAND_LIBDECOR_FILE libdecor-${WAYLAND_LIBDECOR_VERSION}.tar.xz)
|
|
||||||
set(WAYLAND_LIBDECOR_URI https://gitlab.gnome.org/jadahl/libdecor/uploads/81adf91d27620e20bcc5f6b9b312d768/libdecor-${WAYLAND_LIBDECOR_VERSION}.tar.xz )
|
|
||||||
set(WAYLAND_LIBDECOR_HASH 47b59eba76faa3787f0878bf8700e912)
|
|
||||||
set(WAYLAND_LIBDECOR_HASH_TYPE MD5)
|
|
||||||
|
|
||||||
set(ISPC_VERSION v1.17.0)
|
set(ISPC_VERSION v1.17.0)
|
||||||
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
||||||
set(ISPC_HASH 4f476a3109332a77fe839a9014c60ca9)
|
set(ISPC_HASH 4f476a3109332a77fe839a9014c60ca9)
|
||||||
@@ -524,14 +469,12 @@ set(GMP_URI https://gmplib.org/download/gmp/gmp-${GMP_VERSION}.tar.xz)
|
|||||||
set(GMP_HASH 0b82665c4a92fd2ade7440c13fcaa42b)
|
set(GMP_HASH 0b82665c4a92fd2ade7440c13fcaa42b)
|
||||||
set(GMP_HASH_TYPE MD5)
|
set(GMP_HASH_TYPE MD5)
|
||||||
set(GMP_FILE gmp-${GMP_VERSION}.tar.xz)
|
set(GMP_FILE gmp-${GMP_VERSION}.tar.xz)
|
||||||
set(GMP_CPE "cpe:2.3:a:gmplib:gmp:${GMP_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(POTRACE_VERSION 1.16)
|
set(POTRACE_VERSION 1.16)
|
||||||
set(POTRACE_URI http://potrace.sourceforge.net/download/${POTRACE_VERSION}/potrace-${POTRACE_VERSION}.tar.gz)
|
set(POTRACE_URI http://potrace.sourceforge.net/download/${POTRACE_VERSION}/potrace-${POTRACE_VERSION}.tar.gz)
|
||||||
set(POTRACE_HASH 5f0bd87ddd9a620b0c4e65652ef93d69)
|
set(POTRACE_HASH 5f0bd87ddd9a620b0c4e65652ef93d69)
|
||||||
set(POTRACE_HASH_TYPE MD5)
|
set(POTRACE_HASH_TYPE MD5)
|
||||||
set(POTRACE_FILE potrace-${POTRACE_VERSION}.tar.gz)
|
set(POTRACE_FILE potrace-${POTRACE_VERSION}.tar.gz)
|
||||||
set(POTRACE_CPE "cpe:2.3:a:icoasoft:potrace:${POTRACE_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(HARU_VERSION 2_3_0)
|
set(HARU_VERSION 2_3_0)
|
||||||
set(HARU_URI https://github.com/libharu/libharu/archive/RELEASE_${HARU_VERSION}.tar.gz)
|
set(HARU_URI https://github.com/libharu/libharu/archive/RELEASE_${HARU_VERSION}.tar.gz)
|
||||||
@@ -544,7 +487,6 @@ set(ZSTD_URI https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}
|
|||||||
set(ZSTD_HASH 5194fbfa781fcf45b98c5e849651aa7b3b0a008c6b72d4a0db760f3002291e94)
|
set(ZSTD_HASH 5194fbfa781fcf45b98c5e849651aa7b3b0a008c6b72d4a0db760f3002291e94)
|
||||||
set(ZSTD_HASH_TYPE SHA256)
|
set(ZSTD_HASH_TYPE SHA256)
|
||||||
set(ZSTD_FILE zstd-${ZSTD_VERSION}.tar.gz)
|
set(ZSTD_FILE zstd-${ZSTD_VERSION}.tar.gz)
|
||||||
set(ZSTD_CPE "cpe:2.3:a:facebook:zstandard:${ZSTD_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(SSE2NEON_VERSION fe5ff00bb8d19b327714a3c290f3e2ce81ba3525)
|
set(SSE2NEON_VERSION fe5ff00bb8d19b327714a3c290f3e2ce81ba3525)
|
||||||
set(SSE2NEON_URI https://github.com/DLTcollab/sse2neon/archive/${SSE2NEON_VERSION}.tar.gz)
|
set(SSE2NEON_URI https://github.com/DLTcollab/sse2neon/archive/${SSE2NEON_VERSION}.tar.gz)
|
||||||
@@ -552,29 +494,21 @@ set(SSE2NEON_HASH 0780253525d299c31775ef95853698d03db9c7739942af8570000f4a25a5d6
|
|||||||
set(SSE2NEON_HASH_TYPE SHA256)
|
set(SSE2NEON_HASH_TYPE SHA256)
|
||||||
set(SSE2NEON_FILE sse2neon-${SSE2NEON_VERSION}.tar.gz)
|
set(SSE2NEON_FILE sse2neon-${SSE2NEON_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(BROTLI_VERSION 1.0.9)
|
set(BROTLI_VERSION v1.0.9)
|
||||||
set(BROTLI_URI https://github.com/google/brotli/archive/refs/tags/v${BROTLI_VERSION}.tar.gz)
|
set(BROTLI_URI https://github.com/google/brotli/archive/refs/tags/${BROTLI_VERSION}.tar.gz)
|
||||||
set(BROTLI_HASH f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46)
|
set(BROTLI_HASH f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46)
|
||||||
set(BROTLI_HASH_TYPE SHA256)
|
set(BROTLI_HASH_TYPE SHA256)
|
||||||
set(BROTLI_FILE brotli-v${BROTLI_VERSION}.tar.gz)
|
set(BROTLI_FILE brotli-${BROTLI_VERSION}.tar.gz)
|
||||||
set(BROTLI_CPE "cpe:2.3:a:google:brotli:${BROTLI_VERSION}:*:*:*:*:*:*:*")
|
|
||||||
|
|
||||||
set(OPENPGL_VERSION v0.4.1-beta)
|
set(LEVEL_ZERO_VERSION v1.7.15)
|
||||||
set(OPENPGL_SHORT_VERSION 0.4.1)
|
|
||||||
set(OPENPGL_URI https://github.com/OpenPathGuidingLibrary/openpgl/archive/refs/tags/${OPENPGL_VERSION}.tar.gz)
|
|
||||||
set(OPENPGL_HASH db63f5dac5cfa8c110ede241f0c413f00db0c4748697381c4fa23e0f9e82a754)
|
|
||||||
set(OPENPGL_HASH_TYPE SHA256)
|
|
||||||
set(OPENPGL_FILE openpgl-${OPENPGL_VERSION}.tar.gz)
|
|
||||||
|
|
||||||
set(LEVEL_ZERO_VERSION v1.8.5)
|
|
||||||
set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${LEVEL_ZERO_VERSION}.tar.gz)
|
set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${LEVEL_ZERO_VERSION}.tar.gz)
|
||||||
set(LEVEL_ZERO_HASH b6e9663bbcc53c148d32376998298bec6f7c434ef2218c61fa708963e3a09394)
|
set(LEVEL_ZERO_HASH c39bb05a8e5898aa6c444e1704105b93d3f1888b9c333f8e7e73825ffbfb2617)
|
||||||
set(LEVEL_ZERO_HASH_TYPE SHA256)
|
set(LEVEL_ZERO_HASH_TYPE SHA256)
|
||||||
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
|
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(DPCPP_VERSION 20221019)
|
set(DPCPP_VERSION 20220812)
|
||||||
set(DPCPP_URI https://github.com/intel/llvm/archive/refs/tags/sycl-nightly/${DPCPP_VERSION}.tar.gz)
|
set(DPCPP_URI https://github.com/intel/llvm/archive/refs/tags/sycl-nightly/${DPCPP_VERSION}.tar.gz)
|
||||||
set(DPCPP_HASH 2f533946e91ce3829431758ea17b0b834b960c1a796e9e4563c86e03eb9603a2)
|
set(DPCPP_HASH 0e3c95346c295f5cf80f3a42d80b1c49481955898530242636ddc002627248d6)
|
||||||
set(DPCPP_HASH_TYPE SHA256)
|
set(DPCPP_HASH_TYPE SHA256)
|
||||||
set(DPCPP_FILE DPCPP-${DPCPP_VERSION}.tar.gz)
|
set(DPCPP_FILE DPCPP-${DPCPP_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -587,9 +521,9 @@ set(DPCPP_FILE DPCPP-${DPCPP_VERSION}.tar.gz)
|
|||||||
# will take care of building them, unpack is being done in dpcpp_deps.cmake
|
# will take care of building them, unpack is being done in dpcpp_deps.cmake
|
||||||
|
|
||||||
# Source llvm/lib/SYCLLowerIR/CMakeLists.txt
|
# Source llvm/lib/SYCLLowerIR/CMakeLists.txt
|
||||||
set(VCINTRINSICS_VERSION abce9184b7a3a7fe1b02289b9285610d9dc45465)
|
set(VCINTRINSICS_VERSION 984bb27baacce6ee5c716c2e64845f2a1928025b)
|
||||||
set(VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/${VCINTRINSICS_VERSION}.tar.gz)
|
set(VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/${VCINTRINSICS_VERSION}.tar.gz)
|
||||||
set(VCINTRINSICS_HASH 3e9fd471246b87633b26f7e15e17ab7733d357458c53d5c5881c03929d6c551f)
|
set(VCINTRINSICS_HASH abea415a15a0dd11fdc94dee8fb462910f2548311b787e02f42509789e1b0d7b)
|
||||||
set(VCINTRINSICS_HASH_TYPE SHA256)
|
set(VCINTRINSICS_HASH_TYPE SHA256)
|
||||||
set(VCINTRINSICS_FILE vc-intrinsics-${VCINTRINSICS_VERSION}.tar.gz)
|
set(VCINTRINSICS_FILE vc-intrinsics-${VCINTRINSICS_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -601,9 +535,9 @@ set(OPENCLHEADERS_HASH_TYPE SHA256)
|
|||||||
set(OPENCLHEADERS_FILE opencl_headers-${OPENCLHEADERS_VERSION}.tar.gz)
|
set(OPENCLHEADERS_FILE opencl_headers-${OPENCLHEADERS_VERSION}.tar.gz)
|
||||||
|
|
||||||
# Source opencl/CMakeLists.txt
|
# Source opencl/CMakeLists.txt
|
||||||
set(ICDLOADER_VERSION 792682ad3d877ab38573b997808bab3b43902b70)
|
set(ICDLOADER_VERSION aec3952654832211636fc4af613710f80e203b0a)
|
||||||
set(ICDLOADER_URI https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/${ICDLOADER_VERSION}.tar.gz)
|
set(ICDLOADER_URI https://github.com/KhronosGroup/OpenCL-ICD-Loader/archive/${ICDLOADER_VERSION}.tar.gz)
|
||||||
set(ICDLOADER_HASH b33a0320d94bf300efa1da97931ded506d27813bd1148da6858fe79d412d1ea2)
|
set(ICDLOADER_HASH e1880551d67bd8dc31d13de63b94bbfd6b1f315b6145dad1ffcd159b89bda93c)
|
||||||
set(ICDLOADER_HASH_TYPE SHA256)
|
set(ICDLOADER_HASH_TYPE SHA256)
|
||||||
set(ICDLOADER_FILE icdloader-${ICDLOADER_VERSION}.tar.gz)
|
set(ICDLOADER_FILE icdloader-${ICDLOADER_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -618,9 +552,9 @@ set(MP11_FILE mp11-${MP11_VERSION}.tar.gz)
|
|||||||
|
|
||||||
# Source llvm-spirv/CMakeLists.txt (repo)
|
# Source llvm-spirv/CMakeLists.txt (repo)
|
||||||
# Source llvm-spirv/spirv-headers-tag.conf (hash)
|
# Source llvm-spirv/spirv-headers-tag.conf (hash)
|
||||||
set(SPIRV_HEADERS_VERSION 5a121866927a16ab9d49bed4788b532c7fcea766)
|
set(SPIRV_HEADERS_VERSION 36c0c1596225e728bd49abb7ef56a3953e7ed468)
|
||||||
set(SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/${SPIRV_HEADERS_VERSION}.tar.gz)
|
set(SPIRV_HEADERS_URI https://github.com/KhronosGroup/SPIRV-Headers/archive/${SPIRV_HEADERS_VERSION}.tar.gz)
|
||||||
set(SPIRV_HEADERS_HASH ec8ecb471a62672697846c436501638ab25447ae9d4a6761e0bfe8a9a839502a)
|
set(SPIRV_HEADERS_HASH 7a5c89633f8740456fe8adee052033e134476d267411d1336c0cb1e587a9229a)
|
||||||
set(SPIRV_HEADERS_HASH_TYPE SHA256)
|
set(SPIRV_HEADERS_HASH_TYPE SHA256)
|
||||||
set(SPIRV_HEADERS_FILE SPIR-V-Headers-${SPIRV_HEADERS_VERSION}.tar.gz)
|
set(SPIRV_HEADERS_FILE SPIR-V-Headers-${SPIRV_HEADERS_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -635,9 +569,9 @@ set(SPIRV_HEADERS_FILE SPIR-V-Headers-${SPIRV_HEADERS_VERSION}.tar.gz)
|
|||||||
# compiler, the versions used are taken from the following location
|
# compiler, the versions used are taken from the following location
|
||||||
# https://github.com/intel/intel-graphics-compiler/releases
|
# https://github.com/intel/intel-graphics-compiler/releases
|
||||||
|
|
||||||
set(IGC_VERSION 1.0.12149.1)
|
set(IGC_VERSION 1.0.11222)
|
||||||
set(IGC_URI https://github.com/intel/intel-graphics-compiler/archive/refs/tags/igc-${IGC_VERSION}.tar.gz)
|
set(IGC_URI https://github.com/intel/intel-graphics-compiler/archive/refs/tags/igc-${IGC_VERSION}.tar.gz)
|
||||||
set(IGC_HASH 44f67f24e3bc5130f9f062533abf8154782a9d0a992bc19b498639a8521ae836)
|
set(IGC_HASH d92f0608dcbb52690855685f9447282e5c09c0ba98ae35fabf114fcf8b1e9fcf)
|
||||||
set(IGC_HASH_TYPE SHA256)
|
set(IGC_HASH_TYPE SHA256)
|
||||||
set(IGC_FILE igc-${IGC_VERSION}.tar.gz)
|
set(IGC_FILE igc-${IGC_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -657,15 +591,15 @@ set(IGC_LLVM_FILE ${IGC_LLVM_VERSION}.tar.gz)
|
|||||||
#
|
#
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
|
|
||||||
set(IGC_OPENCL_CLANG_VERSION 363a5262d8c7cff3fb28f3bdb5d85c8d7e91c1bb)
|
set(IGC_OPENCL_CLANG_VERSION bbdd1587f577397a105c900be114b56755d1f7dc)
|
||||||
set(IGC_OPENCL_CLANG_URI https://github.com/intel/opencl-clang/archive/${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
set(IGC_OPENCL_CLANG_URI https://github.com/intel/opencl-clang/archive/${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
||||||
set(IGC_OPENCL_CLANG_HASH aa8cf72bb239722ce8ce44f79413c6887ecc8ca18477dd520aa5c4809756da9a)
|
set(IGC_OPENCL_CLANG_HASH d08315f1b0d8a6fef33de2b3e6aa7356534c324910634962c72523d970773efc)
|
||||||
set(IGC_OPENCL_CLANG_HASH_TYPE SHA256)
|
set(IGC_OPENCL_CLANG_HASH_TYPE SHA256)
|
||||||
set(IGC_OPENCL_CLANG_FILE opencl-clang-${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
set(IGC_OPENCL_CLANG_FILE opencl-clang-${IGC_OPENCL_CLANG_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(IGC_VCINTRINSICS_VERSION v0.5.0)
|
set(IGC_VCINTRINSICS_VERSION v0.4.0)
|
||||||
set(IGC_VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/refs/tags/${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
set(IGC_VCINTRINSICS_URI https://github.com/intel/vc-intrinsics/archive/refs/tags/${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
||||||
set(IGC_VCINTRINSICS_HASH 70bb47c5e32173cf61514941e83ae7c7eb4485e6d2fca60cfa1f50d4f42c41f2)
|
set(IGC_VCINTRINSICS_HASH c8b92682ad5031cf9d5b82a40e7d5c0e763cd9278660adbcaa69aab988e4b589)
|
||||||
set(IGC_VCINTRINSICS_HASH_TYPE SHA256)
|
set(IGC_VCINTRINSICS_HASH_TYPE SHA256)
|
||||||
set(IGC_VCINTRINSICS_FILE vc-intrinsics-${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
set(IGC_VCINTRINSICS_FILE vc-intrinsics-${IGC_VCINTRINSICS_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -681,9 +615,9 @@ set(IGC_SPIRV_TOOLS_HASH 6e19900e948944243024aedd0a201baf3854b377b9cc7a386553bc1
|
|||||||
set(IGC_SPIRV_TOOLS_HASH_TYPE SHA256)
|
set(IGC_SPIRV_TOOLS_HASH_TYPE SHA256)
|
||||||
set(IGC_SPIRV_TOOLS_FILE SPIR-V-Tools-${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
|
set(IGC_SPIRV_TOOLS_FILE SPIR-V-Tools-${IGC_SPIRV_TOOLS_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(IGC_SPIRV_TRANSLATOR_VERSION a31ffaeef77e23d500b3ea3d35e0c42ff5648ad9)
|
set(IGC_SPIRV_TRANSLATOR_VERSION 99420daab98998a7e36858befac9c5ed109d4920)
|
||||||
set(IGC_SPIRV_TRANSLATOR_URI https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
set(IGC_SPIRV_TRANSLATOR_URI https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||||
set(IGC_SPIRV_TRANSLATOR_HASH 9e26c96a45341b8f8af521bacea20e752623346340addd02af95d669f6e89252)
|
set(IGC_SPIRV_TRANSLATOR_HASH 77dfb4ddb6bfb993535562c02ddea23f0a0d1c5a0258c1afe7e27c894ff783a8)
|
||||||
set(IGC_SPIRV_TRANSLATOR_HASH_TYPE SHA256)
|
set(IGC_SPIRV_TRANSLATOR_HASH_TYPE SHA256)
|
||||||
set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -691,15 +625,15 @@ set(IGC_SPIRV_TRANSLATOR_FILE SPIR-V-Translator-${IGC_SPIRV_TRANSLATOR_VERSION}.
|
|||||||
### Intel Graphics Compiler DEPS END ###
|
### Intel Graphics Compiler DEPS END ###
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
set(GMMLIB_VERSION intel-gmmlib-22.1.8)
|
set(GMMLIB_VERSION intel-gmmlib-22.1.2)
|
||||||
set(GMMLIB_URI https://github.com/intel/gmmlib/archive/refs/tags/${GMMLIB_VERSION}.tar.gz)
|
set(GMMLIB_URI https://github.com/intel/gmmlib/archive/refs/tags/${GMMLIB_VERSION}.tar.gz)
|
||||||
set(GMMLIB_HASH bf23e9a3742b4fb98c7666c9e9b29f3219e4b2fb4d831aaf4eed71f5e2d17368)
|
set(GMMLIB_HASH 3b9a6d5e7e3f5748b3d0a2fb0e980ae943907fece0980bd9c0508e71c838e334)
|
||||||
set(GMMLIB_HASH_TYPE SHA256)
|
set(GMMLIB_HASH_TYPE SHA256)
|
||||||
set(GMMLIB_FILE ${GMMLIB_VERSION}.tar.gz)
|
set(GMMLIB_FILE ${GMMLIB_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(OCLOC_VERSION 22.38.24278)
|
set(OCLOC_VERSION 22.20.23198)
|
||||||
set(OCLOC_URI https://github.com/intel/compute-runtime/archive/refs/tags/${OCLOC_VERSION}.tar.gz)
|
set(OCLOC_URI https://github.com/intel/compute-runtime/archive/refs/tags/${OCLOC_VERSION}.tar.gz)
|
||||||
set(OCLOC_HASH db0c542fccd651e6404b15a74d46027f1ce0eda8dc9e25a40cbb6c0faef257ee)
|
set(OCLOC_HASH ab22b8bf2560a57fdd3def0e35a62ca75991406f959c0263abb00cd6cd9ae998)
|
||||||
set(OCLOC_HASH_TYPE SHA256)
|
set(OCLOC_HASH_TYPE SHA256)
|
||||||
set(OCLOC_FILE ocloc-${OCLOC_VERSION}.tar.gz)
|
set(OCLOC_FILE ocloc-${OCLOC_VERSION}.tar.gz)
|
||||||
|
|
||||||
|
@@ -1,27 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
ExternalProject_Add(external_wayland
|
|
||||||
URL file://${PACKAGE_DIR}/${WAYLAND_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${WAYLAND_HASH_TYPE}=${WAYLAND_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/wayland
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -d ${BUILD_DIR}/wayland/src/external_wayland < ${PATCH_DIR}/wayland.diff
|
|
||||||
# Use `-E` so the `PKG_CONFIG_PATH` can be defined to link against our own LIBEXPAT & LIBXML2.
|
|
||||||
#
|
|
||||||
# NOTE: passing link args "ffi/lib" should not be needed, but
|
|
||||||
# `pkgconfig` would incorrectly look in "ffi/lib/../lib64" otherwise.
|
|
||||||
#
|
|
||||||
# NOTE: `-lm` is needed for `libxml2` which is a static library that uses `libm.so`,
|
|
||||||
# without this, math symbols such as `floor` aren't found.
|
|
||||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env PKG_CONFIG_PATH=${LIBDIR}/expat/lib/pkgconfig:${LIBDIR}/xml2/lib/pkgconfig:${LIBDIR}/ffi/lib/pkgconfig:$PKG_CONFIG_PATH
|
|
||||||
meson --prefix ${LIBDIR}/wayland -Ddocumentation=false -Dtests=false -D "c_link_args=-L${LIBDIR}/ffi/lib -lm" . ../external_wayland
|
|
||||||
BUILD_COMMAND ninja
|
|
||||||
INSTALL_COMMAND ninja install
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_wayland
|
|
||||||
external_expat
|
|
||||||
external_xml2
|
|
||||||
external_ffi
|
|
||||||
)
|
|
@@ -1,15 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# NOTE: currently only the header file is extracted, no compilation is needed
|
|
||||||
# as the library is dynamically loaded when found on the system.
|
|
||||||
|
|
||||||
ExternalProject_Add(external_wayland_libdecor
|
|
||||||
URL file://${PACKAGE_DIR}/${WAYLAND_LIBDECOR_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${WAYLAND_LIBDECOR_HASH_TYPE}=${WAYLAND_LIBDECOR_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/wayland_libdecor
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
INSTALL_COMMAND cp ../external_wayland_libdecor/src/libdecor.h ${LIBDIR}/wayland_libdecor/include/libdecor-0/libdecor.h
|
|
||||||
INSTALL_DIR ${LIBDIR}/wayland_libdecor/include/libdecor-0
|
|
||||||
)
|
|
@@ -5,14 +5,7 @@ ExternalProject_Add(external_wayland_protocols
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${WL_PROTOCOLS_HASH_TYPE}=${WL_PROTOCOLS_HASH}
|
URL_HASH ${WL_PROTOCOLS_HASH_TYPE}=${WL_PROTOCOLS_HASH}
|
||||||
PREFIX ${BUILD_DIR}/wayland-protocols
|
PREFIX ${BUILD_DIR}/wayland-protocols
|
||||||
# Use `-E` so the `PKG_CONFIG_PATH` can be defined to link against our own WAYLAND.
|
CONFIGURE_COMMAND meson --prefix ${LIBDIR}/wayland-protocols . ../external_wayland_protocols -Dtests=false
|
||||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env PKG_CONFIG_PATH=${LIBDIR}/wayland/lib64/pkgconfig:$PKG_CONFIG_PATH
|
|
||||||
meson --prefix ${LIBDIR}/wayland-protocols . ../external_wayland_protocols -Dtests=false
|
|
||||||
BUILD_COMMAND ninja
|
BUILD_COMMAND ninja
|
||||||
INSTALL_COMMAND ninja install
|
INSTALL_COMMAND ninja install
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_wayland_protocols
|
|
||||||
external_wayland
|
|
||||||
)
|
|
||||||
|
@@ -1,48 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
if(WIN32)
|
ExternalProject_Add(external_xml2
|
||||||
set(XML2_EXTRA_ARGS
|
URL file://${PACKAGE_DIR}/${XML2_FILE}
|
||||||
-DLIBXML2_WITH_ZLIB=OFF
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
-DLIBXML2_WITH_LZMA=OFF
|
URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
|
||||||
-DLIBXML2_WITH_PYTHON=OFF
|
PREFIX ${BUILD_DIR}/xml2
|
||||||
-DLIBXML2_WITH_ICONV=OFF
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && ${CONFIGURE_COMMAND}
|
||||||
-DLIBXML2_WITH_TESTS=OFF
|
--prefix=${LIBDIR}/xml2
|
||||||
-DLIBXML2_WITH_PROGRAMS=OFF
|
--disable-shared
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
--enable-static
|
||||||
)
|
--with-pic
|
||||||
ExternalProject_Add(external_xml2
|
--with-python=no
|
||||||
URL file://${PACKAGE_DIR}/${XML2_FILE}
|
--with-lzma=no
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
--with-zlib=no
|
||||||
URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
|
--with-iconv=no
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/xml2 ${DEFAULT_CMAKE_FLAGS} ${XML2_EXTRA_ARGS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make -j${MAKE_THREADS}
|
||||||
PREFIX ${BUILD_DIR}/xml2
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make install
|
||||||
INSTALL_DIR ${LIBDIR}/xml2
|
INSTALL_DIR ${LIBDIR}/xml2
|
||||||
)
|
)
|
||||||
else()
|
|
||||||
ExternalProject_Add(external_xml2
|
|
||||||
URL file://${PACKAGE_DIR}/${XML2_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${XML2_HASH_TYPE}=${XML2_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/xml2
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && ${CONFIGURE_COMMAND}
|
|
||||||
--prefix=${LIBDIR}/xml2
|
|
||||||
--disable-shared
|
|
||||||
--enable-static
|
|
||||||
--with-pic
|
|
||||||
--with-python=no
|
|
||||||
--with-lzma=no
|
|
||||||
--with-zlib=no
|
|
||||||
--with-iconv=no
|
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make -j${MAKE_THREADS}
|
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/xml2/src/external_xml2/ && make install
|
|
||||||
INSTALL_DIR ${LIBDIR}/xml2
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32 AND BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_xml2 after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/xml2/include ${HARVEST_TARGET}/xml2/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/xml2/lib/libxml2s.lib ${HARVEST_TARGET}/xml2/lib/libxml2s.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
@@ -1,114 +1,96 @@
|
|||||||
strict graph {
|
strict graph {
|
||||||
graph[autosize = false, size = "25.7,8.3!", resolution = 300];
|
graph[autosize = false, size = "25.7,8.3!", resolution = 300, overlap = false, splines = false, outputorder=edgesfirst ];
|
||||||
|
node [style=filled fillcolor=white];
|
||||||
|
external_alembic -- external_boost;
|
||||||
|
external_alembic -- external_zlib;
|
||||||
external_alembic -- external_openexr;
|
external_alembic -- external_openexr;
|
||||||
external_alembic -- external_imath;
|
|
||||||
external_blosc -- external_zlib;
|
external_blosc -- external_zlib;
|
||||||
external_blosc -- external_pthreads;
|
external_blosc -- external_pthreads;
|
||||||
external_boost -- external_python;
|
external_boost -- Make_Python_Environment;
|
||||||
external_boost -- external_numpy;
|
external_clang -- ll;
|
||||||
external_dpcpp -- external_python;
|
|
||||||
external_dpcpp -- external_python_site_packages;
|
|
||||||
external_dpcpp -- external_vcintrinsics;
|
|
||||||
external_dpcpp -- external_openclheaders;
|
|
||||||
external_dpcpp -- external_icdloader;
|
|
||||||
external_dpcpp -- external_mp11;
|
|
||||||
external_dpcpp -- external_level_zero;
|
|
||||||
external_dpcpp -- external_spirvheaders;
|
|
||||||
external_embree -- external_tbb;
|
|
||||||
external_ffmpeg -- external_zlib;
|
external_ffmpeg -- external_zlib;
|
||||||
|
external_ffmpeg -- external_faad;
|
||||||
external_ffmpeg -- external_openjpeg;
|
external_ffmpeg -- external_openjpeg;
|
||||||
external_ffmpeg -- external_xvidcore;
|
external_ffmpeg -- external_xvidcore;
|
||||||
external_ffmpeg -- external_x264;
|
external_ffmpeg -- external_x264;
|
||||||
external_ffmpeg -- external_opus;
|
|
||||||
external_ffmpeg -- external_vpx;
|
external_ffmpeg -- external_vpx;
|
||||||
external_ffmpeg -- external_theora;
|
external_ffmpeg -- external_theora;
|
||||||
external_ffmpeg -- external_vorbis;
|
external_ffmpeg -- external_vorbis;
|
||||||
external_ffmpeg -- external_ogg;
|
external_ffmpeg -- external_ogg;
|
||||||
external_ffmpeg -- external_lame;
|
external_ffmpeg -- external_lame;
|
||||||
external_ffmpeg -- external_aom;
|
|
||||||
external_ffmpeg -- external_zlib_mingw;
|
external_ffmpeg -- external_zlib_mingw;
|
||||||
external_ffmpeg -- external_nasm;
|
external_numpy -- Make_Python_Environment;
|
||||||
external_freetype -- external_brotli;
|
|
||||||
external_freetype -- external_zlib;
|
|
||||||
external_gmpxx -- external_gmp;
|
|
||||||
external_igc_llvm -- external_igc_opencl_clang;
|
|
||||||
external_igc_spirv_translator -- external_igc_opencl_clang;
|
|
||||||
external_igc -- external_igc_vcintrinsics;
|
|
||||||
external_igc -- external_igc_llvm;
|
|
||||||
external_igc -- external_igc_opencl_clang;
|
|
||||||
external_igc -- external_igc_vcintrinsics;
|
|
||||||
external_igc -- external_igc_spirv_headers;
|
|
||||||
external_igc -- external_igc_spirv_tools;
|
|
||||||
external_igc -- external_igc_spirv_translator;
|
|
||||||
external_igc -- external_flex;
|
|
||||||
external_ispc -- ll;
|
|
||||||
external_ispc -- external_python;
|
|
||||||
external_ispc -- external_flexbison;
|
|
||||||
external_ispc -- external_flex;
|
|
||||||
ll -- external_xml2;
|
|
||||||
ll -- external_python;
|
|
||||||
external_mesa -- ll;
|
|
||||||
external_numpy -- external_python;
|
|
||||||
external_numpy -- external_python_site_packages;
|
|
||||||
external_ocloc -- external_igc;
|
|
||||||
external_ocloc -- external_gmmlib;
|
|
||||||
external_opencollada -- external_xml2;
|
external_opencollada -- external_xml2;
|
||||||
|
external_opencolorio -- external_boost;
|
||||||
|
external_opencolorio -- external_tinyxml;
|
||||||
external_opencolorio -- external_yamlcpp;
|
external_opencolorio -- external_yamlcpp;
|
||||||
external_opencolorio -- external_expat;
|
|
||||||
external_opencolorio -- external_imath;
|
|
||||||
external_opencolorio -- external_pystring;
|
|
||||||
external_openexr -- external_zlib;
|
external_openexr -- external_zlib;
|
||||||
external_openimagedenoise -- external_tbb;
|
|
||||||
external_openimagedenoise -- external_ispc;
|
|
||||||
external_openimagedenoise -- external_python;
|
|
||||||
external_openimageio -- external_png;
|
external_openimageio -- external_png;
|
||||||
external_openimageio -- external_zlib;
|
external_openimageio -- external_zlib;
|
||||||
external_openimageio -- external_openexr;
|
external_openimageio -- external_openexr;
|
||||||
external_openimageio -- external_imath;
|
external_openimageio -- external_openexr;
|
||||||
external_openimageio -- external_jpeg;
|
external_openimageio -- external_jpeg;
|
||||||
external_openimageio -- external_boost;
|
external_openimageio -- external_boost;
|
||||||
external_openimageio -- external_tiff;
|
external_openimageio -- external_tiff;
|
||||||
external_openimageio -- external_pugixml;
|
external_openimageio -- external_opencolorio;
|
||||||
external_openimageio -- external_fmt;
|
|
||||||
external_openimageio -- external_robinmap;
|
|
||||||
external_openimageio -- external_openjpeg;
|
external_openimageio -- external_openjpeg;
|
||||||
external_openimageio -- external_webp;
|
external_openimageio -- external_webp;
|
||||||
external_openmp -- ll;
|
external_openimageio -- external_opencolorio_extra;
|
||||||
external_openpgl -- external_tbb;
|
external_openmp -- external_clang;
|
||||||
external_opensubdiv -- external_tbb;
|
external_opensubdiv -- external_tbb;
|
||||||
openvdb -- external_tbb;
|
openvdb -- external_tbb;
|
||||||
openvdb -- external_boost;
|
openvdb -- external_boost;
|
||||||
|
openvdb -- external_openexr;
|
||||||
|
openvdb -- external_openexr;
|
||||||
openvdb -- external_zlib;
|
openvdb -- external_zlib;
|
||||||
openvdb -- external_blosc;
|
openvdb -- external_blosc;
|
||||||
external_osl -- external_boost;
|
external_osl -- external_boost;
|
||||||
external_osl -- ll;
|
external_osl -- ll;
|
||||||
|
external_osl -- external_clang;
|
||||||
|
external_osl -- external_openexr;
|
||||||
external_osl -- external_openexr;
|
external_osl -- external_openexr;
|
||||||
external_osl -- external_zlib;
|
external_osl -- external_zlib;
|
||||||
|
external_osl -- external_flexbison;
|
||||||
external_osl -- external_openimageio;
|
external_osl -- external_openimageio;
|
||||||
external_osl -- external_pugixml;
|
external_osl -- external_pugixml;
|
||||||
external_osl -- external_flexbison;
|
|
||||||
external_osl -- external_flex;
|
|
||||||
external_png -- external_zlib;
|
external_png -- external_zlib;
|
||||||
external_python -- external_bzip2;
|
external_python_site_packages -- Make_Python_Environment;
|
||||||
external_python -- external_ffi;
|
|
||||||
external_python -- external_lzma;
|
|
||||||
external_python -- external_ssl;
|
|
||||||
external_python -- external_sqlite;
|
|
||||||
external_python -- external_zlib;
|
|
||||||
external_python_site_packages -- external_python;
|
|
||||||
external_sndfile -- external_ogg;
|
external_sndfile -- external_ogg;
|
||||||
external_sndfile -- external_vorbis;
|
external_sndfile -- external_vorbis;
|
||||||
external_sndfile -- external_flac;
|
external_sndfile -- external_flac;
|
||||||
external_theora -- external_vorbis;
|
external_theora -- external_vorbis;
|
||||||
external_theora -- external_ogg;
|
external_theora -- external_ogg;
|
||||||
external_tiff -- external_zlib;
|
external_tiff -- external_zlib;
|
||||||
external_usd -- external_tbb;
|
|
||||||
external_usd -- external_boost;
|
|
||||||
external_usd -- external_opensubdiv;
|
|
||||||
external_vorbis -- external_ogg;
|
external_vorbis -- external_ogg;
|
||||||
external_wayland -- external_expat;
|
blender-- external_ffmpeg;
|
||||||
external_wayland -- external_xml2;
|
blender-- external_alembic;
|
||||||
external_wayland -- external_ffi;
|
blender-- external_openjpeg;
|
||||||
external_wayland_protocols -- external_wayland;
|
blender-- external_opencolorio;
|
||||||
external_x264 -- external_nasm;
|
blender-- external_openexr;
|
||||||
|
blender-- external_opensubdiv;
|
||||||
|
blender-- openvdb;
|
||||||
|
blender-- external_osl;
|
||||||
|
blender-- external_boost;
|
||||||
|
blender-- external_jpeg;
|
||||||
|
blender-- external_png;
|
||||||
|
blender-- external_python;
|
||||||
|
blender-- external_sndfile;
|
||||||
|
blender-- external_iconv;
|
||||||
|
blender-- external_fftw3;
|
||||||
|
external_python-- external_python_site_packages;
|
||||||
|
external_python_site_packages-- requests;
|
||||||
|
external_python_site_packages-- idna;
|
||||||
|
external_python_site_packages-- chardet;
|
||||||
|
external_python_site_packages-- urllib3;
|
||||||
|
external_python_site_packages-- certifi;
|
||||||
|
external_python-- external_numpy;
|
||||||
|
external_usd-- external_boost;
|
||||||
|
external_usd-- external_tbb;
|
||||||
|
blender-- external_opencollada;
|
||||||
|
blender-- external_sdl;
|
||||||
|
blender-- external_freetype;
|
||||||
|
blender-- external_pthreads;
|
||||||
|
blender-- external_zlib;
|
||||||
|
blender-- external_openal;
|
||||||
|
blender-- external_usd;
|
||||||
}
|
}
|
||||||
|
@@ -40,15 +40,15 @@ ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,ver-xr-openxr:,ver-
|
|||||||
force-all,force-python,force-boost,force-tbb,\
|
force-all,force-python,force-boost,force-tbb,\
|
||||||
force-ocio,force-imath,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\
|
force-ocio,force-imath,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\
|
||||||
force-ffmpeg,force-opencollada,force-alembic,force-embree,force-oidn,force-usd,\
|
force-ffmpeg,force-opencollada,force-alembic,force-embree,force-oidn,force-usd,\
|
||||||
force-xr-openxr,force-level-zero,force-openpgl,\
|
force-xr-openxr,force-level-zero,\
|
||||||
build-all,build-python,build-boost,build-tbb,\
|
build-all,build-python,build-boost,build-tbb,\
|
||||||
build-ocio,build-imath,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\
|
build-ocio,build-imath,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\
|
||||||
build-ffmpeg,build-opencollada,build-alembic,build-embree,build-oidn,build-usd,\
|
build-ffmpeg,build-opencollada,build-alembic,build-embree,build-oidn,build-usd,\
|
||||||
build-xr-openxr,build-level-zero,build-openpgl,\
|
build-xr-openxr,build-level-zero,\
|
||||||
skip-python,skip-boost,skip-tbb,\
|
skip-python,skip-boost,skip-tbb,\
|
||||||
skip-ocio,skip-imath,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\
|
skip-ocio,skip-imath,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\
|
||||||
skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree,skip-oidn,skip-usd,\
|
skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree,skip-oidn,skip-usd,\
|
||||||
skip-xr-openxr,skip-level-zero,skip-openpgl \
|
skip-xr-openxr,skip-level-zero \
|
||||||
-- "$@" \
|
-- "$@" \
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -232,9 +232,6 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
--build-level-zero=<ver>
|
--build-level-zero=<ver>
|
||||||
Force the build of OneAPI Level Zero library.
|
Force the build of OneAPI Level Zero library.
|
||||||
|
|
||||||
--build-openpgl
|
|
||||||
Force the build of OpenPGL library.
|
|
||||||
|
|
||||||
Note about the --build-foo options:
|
Note about the --build-foo options:
|
||||||
* They force the script to prefer building dependencies rather than using available packages.
|
* They force the script to prefer building dependencies rather than using available packages.
|
||||||
This may make things simpler and allow working around some distribution bugs, but on the other hand it will
|
This may make things simpler and allow working around some distribution bugs, but on the other hand it will
|
||||||
@@ -305,9 +302,6 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
--force-level-zero=<ver>
|
--force-level-zero=<ver>
|
||||||
Force the rebuild of OneAPI Level Zero library.
|
Force the rebuild of OneAPI Level Zero library.
|
||||||
|
|
||||||
--force-openpgl
|
|
||||||
Force the rebuild of OpenPGL library.
|
|
||||||
|
|
||||||
Note about the --force-foo options:
|
Note about the --force-foo options:
|
||||||
* They obviously only have an effect if those libraries are built by this script
|
* They obviously only have an effect if those libraries are built by this script
|
||||||
(i.e. if there is no available and satisfactory package)!
|
(i.e. if there is no available and satisfactory package)!
|
||||||
@@ -369,10 +363,7 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
Unconditionally skip OpenXR-SDK installation/building.
|
Unconditionally skip OpenXR-SDK installation/building.
|
||||||
|
|
||||||
--skip-level-zero=<ver>
|
--skip-level-zero=<ver>
|
||||||
Unconditionally skip OneAPI Level Zero installation/building.
|
Unconditionally skip OneAPI Level Zero installation/building.\""
|
||||||
|
|
||||||
--skip-openpgl
|
|
||||||
Unconditionally skip OpenPGL installation/building.\""
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Main Vars
|
# Main Vars
|
||||||
@@ -394,7 +385,7 @@ CLANG_FORMAT_VERSION="10.0"
|
|||||||
CLANG_FORMAT_VERSION_MIN="6.0"
|
CLANG_FORMAT_VERSION_MIN="6.0"
|
||||||
CLANG_FORMAT_VERSION_MEX="14.0"
|
CLANG_FORMAT_VERSION_MEX="14.0"
|
||||||
|
|
||||||
PYTHON_VERSION="3.10.8"
|
PYTHON_VERSION="3.10.2"
|
||||||
PYTHON_VERSION_SHORT="3.10"
|
PYTHON_VERSION_SHORT="3.10"
|
||||||
PYTHON_VERSION_MIN="3.10"
|
PYTHON_VERSION_MIN="3.10"
|
||||||
PYTHON_VERSION_MEX="3.12"
|
PYTHON_VERSION_MEX="3.12"
|
||||||
@@ -505,7 +496,7 @@ OPENEXR_FORCE_REBUILD=false
|
|||||||
OPENEXR_SKIP=false
|
OPENEXR_SKIP=false
|
||||||
_with_built_openexr=false
|
_with_built_openexr=false
|
||||||
|
|
||||||
OIIO_VERSION="2.3.20.0"
|
OIIO_VERSION="2.3.13.0"
|
||||||
OIIO_VERSION_SHORT="2.3"
|
OIIO_VERSION_SHORT="2.3"
|
||||||
OIIO_VERSION_MIN="2.1.12"
|
OIIO_VERSION_MIN="2.1.12"
|
||||||
OIIO_VERSION_MEX="2.4.0"
|
OIIO_VERSION_MEX="2.4.0"
|
||||||
@@ -523,8 +514,8 @@ LLVM_FORCE_REBUILD=false
|
|||||||
LLVM_SKIP=false
|
LLVM_SKIP=false
|
||||||
|
|
||||||
# OSL needs to be compiled for now!
|
# OSL needs to be compiled for now!
|
||||||
OSL_VERSION="1.12.6.2"
|
OSL_VERSION="1.11.17.0"
|
||||||
OSL_VERSION_SHORT="1.12"
|
OSL_VERSION_SHORT="1.11"
|
||||||
OSL_VERSION_MIN="1.11"
|
OSL_VERSION_MIN="1.11"
|
||||||
OSL_VERSION_MEX="2.0"
|
OSL_VERSION_MEX="2.0"
|
||||||
OSL_FORCE_BUILD=false
|
OSL_FORCE_BUILD=false
|
||||||
@@ -602,14 +593,6 @@ LEVEL_ZERO_FORCE_BUILD=false
|
|||||||
LEVEL_ZERO_FORCE_REBUILD=false
|
LEVEL_ZERO_FORCE_REBUILD=false
|
||||||
LEVEL_ZERO_SKIP=false
|
LEVEL_ZERO_SKIP=false
|
||||||
|
|
||||||
OPENPGL_VERSION="0.4.1"
|
|
||||||
OPENPGL_VERSION_SHORT="0.4"
|
|
||||||
OPENPGL_VERSION_MIN="0.4.1"
|
|
||||||
OPENPGL_VERSION_MEX="0.5"
|
|
||||||
OPENPGL_FORCE_BUILD=false
|
|
||||||
OPENPGL_FORCE_REBUILD=false
|
|
||||||
OPENPGL_SKIP=false
|
|
||||||
|
|
||||||
XR_OPENXR_VERSION="1.0.22"
|
XR_OPENXR_VERSION="1.0.22"
|
||||||
XR_OPENXR_VERSION_SHORT="1.0"
|
XR_OPENXR_VERSION_SHORT="1.0"
|
||||||
XR_OPENXR_VERSION_MIN="1.0.8"
|
XR_OPENXR_VERSION_MIN="1.0.8"
|
||||||
@@ -618,8 +601,8 @@ XR_OPENXR_FORCE_BUILD=false
|
|||||||
XR_OPENXR_FORCE_REBUILD=false
|
XR_OPENXR_FORCE_REBUILD=false
|
||||||
XR_OPENXR_SKIP=false
|
XR_OPENXR_SKIP=false
|
||||||
|
|
||||||
FFMPEG_VERSION="5.1.2"
|
FFMPEG_VERSION="5.0"
|
||||||
FFMPEG_VERSION_SHORT="5.1"
|
FFMPEG_VERSION_SHORT="5.0"
|
||||||
FFMPEG_VERSION_MIN="4.0"
|
FFMPEG_VERSION_MIN="4.0"
|
||||||
FFMPEG_VERSION_MEX="6.0"
|
FFMPEG_VERSION_MEX="6.0"
|
||||||
FFMPEG_FORCE_BUILD=false
|
FFMPEG_FORCE_BUILD=false
|
||||||
@@ -844,7 +827,6 @@ while true; do
|
|||||||
USD_FORCE_BUILD=true
|
USD_FORCE_BUILD=true
|
||||||
XR_OPENXR_FORCE_BUILD=true
|
XR_OPENXR_FORCE_BUILD=true
|
||||||
LEVEL_ZERO_FORCE_BUILD=true
|
LEVEL_ZERO_FORCE_BUILD=true
|
||||||
OPENPGL_FORCE_BUILD=true
|
|
||||||
shift; continue
|
shift; continue
|
||||||
;;
|
;;
|
||||||
--build-python)
|
--build-python)
|
||||||
@@ -905,9 +887,6 @@ while true; do
|
|||||||
--build-level-zero)
|
--build-level-zero)
|
||||||
LEVEL_ZERO_FORCE_BUILD=true; shift; continue
|
LEVEL_ZERO_FORCE_BUILD=true; shift; continue
|
||||||
;;
|
;;
|
||||||
--build-openpgl)
|
|
||||||
OPENPGL_FORCE_BUILD=true; shift; continue
|
|
||||||
;;
|
|
||||||
--force-all)
|
--force-all)
|
||||||
PYTHON_FORCE_REBUILD=true
|
PYTHON_FORCE_REBUILD=true
|
||||||
BOOST_FORCE_REBUILD=true
|
BOOST_FORCE_REBUILD=true
|
||||||
@@ -928,7 +907,6 @@ while true; do
|
|||||||
USD_FORCE_REBUILD=true
|
USD_FORCE_REBUILD=true
|
||||||
XR_OPENXR_FORCE_REBUILD=true
|
XR_OPENXR_FORCE_REBUILD=true
|
||||||
LEVEL_ZERO_FORCE_REBUILD=true
|
LEVEL_ZERO_FORCE_REBUILD=true
|
||||||
OPENPGL_FORCE_REBUILD=true
|
|
||||||
shift; continue
|
shift; continue
|
||||||
;;
|
;;
|
||||||
--force-python)
|
--force-python)
|
||||||
@@ -989,9 +967,6 @@ while true; do
|
|||||||
--force-level-zero)
|
--force-level-zero)
|
||||||
LEVEL_ZERO_FORCE_REBUILD=true; shift; continue
|
LEVEL_ZERO_FORCE_REBUILD=true; shift; continue
|
||||||
;;
|
;;
|
||||||
--force-openpgl)
|
|
||||||
OPENPGL_FORCE_REBUILD=true; shift; continue
|
|
||||||
;;
|
|
||||||
--skip-python)
|
--skip-python)
|
||||||
PYTHON_SKIP=true; shift; continue
|
PYTHON_SKIP=true; shift; continue
|
||||||
;;
|
;;
|
||||||
@@ -1049,9 +1024,6 @@ while true; do
|
|||||||
--skip-level-zero)
|
--skip-level-zero)
|
||||||
LEVEL_ZERO_SKIP=true; shift; continue
|
LEVEL_ZERO_SKIP=true; shift; continue
|
||||||
;;
|
;;
|
||||||
--skip-openpgl)
|
|
||||||
OPENPGL_SKIP=true; shift; continue
|
|
||||||
;;
|
|
||||||
--)
|
--)
|
||||||
# no more arguments to parse
|
# no more arguments to parse
|
||||||
break
|
break
|
||||||
@@ -1139,7 +1111,7 @@ LLVM_SOURCE=( "$_LLVM_SOURCE_ROOT/llvm-$LLVM_VERSION.src.tar.xz" )
|
|||||||
LLVM_CLANG_SOURCE=( "$_LLVM_SOURCE_ROOT/clang-$LLVM_VERSION.src.tar.xz" "$_LLVM_SOURCE_ROOT/cfe-$LLVM_VERSION.src.tar.xz" )
|
LLVM_CLANG_SOURCE=( "$_LLVM_SOURCE_ROOT/clang-$LLVM_VERSION.src.tar.xz" "$_LLVM_SOURCE_ROOT/cfe-$LLVM_VERSION.src.tar.xz" )
|
||||||
|
|
||||||
OSL_USE_REPO=false
|
OSL_USE_REPO=false
|
||||||
OSL_SOURCE=( "https://github.com/imageworks/OpenShadingLanguage/archive/v$OSL_VERSION.tar.gz" )
|
OSL_SOURCE=( "https://github.com/imageworks/OpenShadingLanguage/archive/Release-$OSL_VERSION.tar.gz" )
|
||||||
#~ OSL_SOURCE_REPO=( "https://github.com/imageworks/OpenShadingLanguage.git" )
|
#~ OSL_SOURCE_REPO=( "https://github.com/imageworks/OpenShadingLanguage.git" )
|
||||||
#~ OSL_SOURCE_REPO_BRANCH="master"
|
#~ OSL_SOURCE_REPO_BRANCH="master"
|
||||||
#~ OSL_SOURCE_REPO_UID="85179714e1bc69cd25ecb6bb711c1a156685d395"
|
#~ OSL_SOURCE_REPO_UID="85179714e1bc69cd25ecb6bb711c1a156685d395"
|
||||||
@@ -1201,9 +1173,6 @@ XR_OPENXR_REPO_BRANCH="master"
|
|||||||
|
|
||||||
LEVEL_ZERO_SOURCE=("https://github.com/oneapi-src/level-zero/archive/refs/tags/v${LEVEL_ZERO_VERSION}.tar.gz")
|
LEVEL_ZERO_SOURCE=("https://github.com/oneapi-src/level-zero/archive/refs/tags/v${LEVEL_ZERO_VERSION}.tar.gz")
|
||||||
|
|
||||||
OPENPGL_USE_REPO=false
|
|
||||||
OPENPGL_SOURCE=( "https://github.com/OpenPathGuidingLibrary/openpgl/archive/refs/tags/v${OPENPGL_VERSION}-beta.tar.gz" )
|
|
||||||
|
|
||||||
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
|
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
|
||||||
|
|
||||||
# C++11 is required now
|
# C++11 is required now
|
||||||
@@ -1222,7 +1191,7 @@ Those libraries should be available as packages in all recent distributions (opt
|
|||||||
* Basics of dev environment (cmake, gcc, svn , git, ...).
|
* Basics of dev environment (cmake, gcc, svn , git, ...).
|
||||||
* libjpeg, libpng, libtiff, [openjpeg2], [libopenal].
|
* libjpeg, libpng, libtiff, [openjpeg2], [libopenal].
|
||||||
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
|
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
|
||||||
* libwayland-client0, libdecor, libwayland-cursor0, libwayland-egl1, libxkbcommon0, libdbus-1-3, libegl1 (Wayland)
|
* libwayland-client0, libwayland-cursor0, libwayland-egl1, libxkbcommon0, libdbus-1-3, libegl1 (Wayland)
|
||||||
* libsqlite3, libzstd, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp, flex.
|
* libsqlite3, libzstd, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp, flex.
|
||||||
* libsdl2, libepoxy, libpugixml, libpotrace, [libgmp], fontconfig, [libharu/libhpdf].\""
|
* libsdl2, libepoxy, libpugixml, libpotrace, [libgmp], fontconfig, [libharu/libhpdf].\""
|
||||||
|
|
||||||
@@ -1258,8 +1227,7 @@ You may also want to build them yourself (optional ones are [between brackets]):
|
|||||||
* [Alembic $ALEMBIC_VERSION] (from $ALEMBIC_SOURCE).
|
* [Alembic $ALEMBIC_VERSION] (from $ALEMBIC_SOURCE).
|
||||||
* [Universal Scene Description $USD_VERSION] (from $USD_SOURCE).
|
* [Universal Scene Description $USD_VERSION] (from $USD_SOURCE).
|
||||||
* [OpenXR-SDK $XR_OPENXR_VERSION] (from $XR_OPENXR_SOURCE).
|
* [OpenXR-SDK $XR_OPENXR_VERSION] (from $XR_OPENXR_SOURCE).
|
||||||
* [OneAPI Level Zero $LEVEL_ZERO_VERSION] (from $LEVEL_ZERO_SOURCE).
|
* [OneAPI Level Zero $LEVEL_ZERO_VERSION] (from $LEVEL_ZERO_SOURCE).\""
|
||||||
* [OpenPGL $OPENPGL_VERSION] (from $OPENPGL_SOURCE).\""
|
|
||||||
|
|
||||||
if [ "$DO_SHOW_DEPS" = true ]; then
|
if [ "$DO_SHOW_DEPS" = true ]; then
|
||||||
PRINT ""
|
PRINT ""
|
||||||
@@ -1693,7 +1661,6 @@ _update_deps_tbb() {
|
|||||||
USD_FORCE_BUILD=true
|
USD_FORCE_BUILD=true
|
||||||
EMBREE_FORCE_BUILD=true
|
EMBREE_FORCE_BUILD=true
|
||||||
OIDN_FORCE_BUILD=true
|
OIDN_FORCE_BUILD=true
|
||||||
OPENPGL_FORCE_BUILD=true
|
|
||||||
fi
|
fi
|
||||||
if [ "$2" = true ]; then
|
if [ "$2" = true ]; then
|
||||||
OSD_FORCE_REBUILD=true
|
OSD_FORCE_REBUILD=true
|
||||||
@@ -1701,7 +1668,6 @@ _update_deps_tbb() {
|
|||||||
USD_FORCE_REBUILD=true
|
USD_FORCE_REBUILD=true
|
||||||
EMBREE_FORCE_REBUILD=true
|
EMBREE_FORCE_REBUILD=true
|
||||||
OIDN_FORCE_REBUILD=true
|
OIDN_FORCE_REBUILD=true
|
||||||
OPENPGL_FORCE_REBUILD=true
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3340,12 +3306,7 @@ _init_embree() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_update_deps_embree() {
|
_update_deps_embree() {
|
||||||
if [ "$1" = true ]; then
|
:
|
||||||
OPENPGL_FORCE_BUILD=true
|
|
||||||
fi
|
|
||||||
if [ "$2" = true ]; then
|
|
||||||
OPENPGL_FORCE_REBUILD=true
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
clean_Embree() {
|
clean_Embree() {
|
||||||
@@ -3364,7 +3325,7 @@ compile_Embree() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# To be changed each time we make edits that would modify the compiled results!
|
# To be changed each time we make edits that would modify the compiled results!
|
||||||
embree_magic=12
|
embree_magic=11
|
||||||
_init_embree
|
_init_embree
|
||||||
|
|
||||||
# Force having own builds for the dependencies.
|
# Force having own builds for the dependencies.
|
||||||
@@ -4001,112 +3962,6 @@ compile_Level_Zero() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Build OpenPGL
|
|
||||||
|
|
||||||
_init_openpgl() {
|
|
||||||
_src=$SRC/openpgl-$OPENPGL_VERSION
|
|
||||||
_git=false
|
|
||||||
_inst=$INST/openpgl-$OPENPGL_VERSION_SHORT
|
|
||||||
_inst_shortcut=$INST/openpgl
|
|
||||||
}
|
|
||||||
|
|
||||||
_update_deps_openpgl() {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
clean_OpenPGL() {
|
|
||||||
_init_openpgl
|
|
||||||
if [ -d $_inst ]; then
|
|
||||||
# Force rebuilding the dependencies if needed.
|
|
||||||
_update_deps_openpgl false true
|
|
||||||
fi
|
|
||||||
_clean
|
|
||||||
}
|
|
||||||
|
|
||||||
compile_OpenPGL() {
|
|
||||||
if [ "$NO_BUILD" = true ]; then
|
|
||||||
WARNING "--no-build enabled, OpenPGL will not be compiled!"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# To be changed each time we make edits that would modify the compiled results!
|
|
||||||
openpgl_magic=1
|
|
||||||
_init_openpgl
|
|
||||||
|
|
||||||
# Force having own builds for the dependencies.
|
|
||||||
_update_deps_openpgl true false
|
|
||||||
|
|
||||||
# Clean install if needed!
|
|
||||||
magic_compile_check openpgl-$OPENPGL_VERSION $openpgl_magic
|
|
||||||
if [ $? -eq 1 -o "$OPENPGL_FORCE_REBUILD" = true ]; then
|
|
||||||
clean_OpenPGL
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d $_inst ]; then
|
|
||||||
INFO "Building OpenPGL-$OPENPGL_VERSION"
|
|
||||||
|
|
||||||
# Force rebuilding the dependencies.
|
|
||||||
_update_deps_openpgl true true
|
|
||||||
|
|
||||||
prepare_inst
|
|
||||||
|
|
||||||
if [ ! -d $_src ]; then
|
|
||||||
mkdir -p $SRC
|
|
||||||
download OPENPGL_SOURCE[@] "$_src.tar.gz"
|
|
||||||
INFO "Unpacking OpenPGL-$OPENPGL_VERSION"
|
|
||||||
tar -C $SRC --transform "s,(.*/?)openpgl-$OPENPGL_VERSION-beta[^/]*(.*),\1openpgl-$OPENPGL_VERSION\2,x" \
|
|
||||||
-xf $_src.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $_src
|
|
||||||
|
|
||||||
INFO "$_src"
|
|
||||||
|
|
||||||
# Always refresh the whole build!
|
|
||||||
if [ -d build ]; then
|
|
||||||
rm -rf build
|
|
||||||
fi
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
|
|
||||||
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
|
||||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
|
||||||
cmake_d="$cmake_d -D OPENPGL_BUILD_STATIC=OFF"
|
|
||||||
cmake_d="$cmake_d -D OPENPGL_BUILD_PYTHON=OFF"
|
|
||||||
cmake_d="$cmake_d -D EMBREE_ISPC_SUPPORT=OFF"
|
|
||||||
if [ -d $INST/tbb ]; then
|
|
||||||
cmake_d="$cmake_d -D OPENPGL_TBB_ROOT=$INST/tbb"
|
|
||||||
cmake_d="$cmake_d -D TBB_ROOT=$INST/tbb"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cmake $cmake_d ../
|
|
||||||
|
|
||||||
make -j$THREADS && make install
|
|
||||||
make clean
|
|
||||||
|
|
||||||
if [ ! -d $_inst ]; then
|
|
||||||
ERROR "OpenPGL-$OPENPGL_VERSION failed to compile, exiting"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
magic_compile_set openpgl-$OPENPGL_VERSION $openpgl_magic
|
|
||||||
|
|
||||||
cd $CWD
|
|
||||||
INFO "Done compiling OpenPGL-$OPENPGL_VERSION!"
|
|
||||||
else
|
|
||||||
INFO "Own OpenPGL-$OPENPGL_VERSION is up to date, nothing to do!"
|
|
||||||
INFO "If you want to force rebuild of this lib, use the --force-openpgl option."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d $_inst ]; then
|
|
||||||
_create_inst_shortcut
|
|
||||||
fi
|
|
||||||
|
|
||||||
run_ldconfig "openpgl"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Install on DEB-like
|
# Install on DEB-like
|
||||||
|
|
||||||
@@ -4205,12 +4060,11 @@ install_DEB() {
|
|||||||
_packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev libtiff-dev \
|
_packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev libtiff-dev \
|
||||||
git libfreetype6-dev libfontconfig-dev libx11-dev flex bison libxxf86vm-dev \
|
git libfreetype6-dev libfontconfig-dev libx11-dev flex bison libxxf86vm-dev \
|
||||||
libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \
|
libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \
|
||||||
libwayland-dev libdecor-0-dev wayland-protocols libegl-dev libxkbcommon-dev libdbus-1-dev linux-libc-dev \
|
libwayland-dev wayland-protocols libegl-dev libxkbcommon-dev libdbus-1-dev linux-libc-dev \
|
||||||
libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev \
|
libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev \
|
||||||
libopenal-dev libepoxy-dev yasm \
|
libopenal-dev libepoxy-dev yasm \
|
||||||
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev \
|
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev \
|
||||||
libgmp-dev libpugixml-dev libpotrace-dev libhpdf-dev libzstd-dev libpystring-dev \
|
libgmp-dev libpugixml-dev libpotrace-dev libhpdf-dev libzstd-dev libpystring-dev"
|
||||||
libglfw3-dev"
|
|
||||||
|
|
||||||
VORBIS_USE=true
|
VORBIS_USE=true
|
||||||
OGG_USE=true
|
OGG_USE=true
|
||||||
@@ -4740,18 +4594,6 @@ install_DEB() {
|
|||||||
PRINT ""
|
PRINT ""
|
||||||
compile_Level_Zero
|
compile_Level_Zero
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$OPENPGL_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping OpenPGL installation, as requested..."
|
|
||||||
elif [ "$OPENPGL_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced OpenPGL building, as requested..."
|
|
||||||
compile_OpenPGL
|
|
||||||
else
|
|
||||||
# No package currently!
|
|
||||||
PRINT ""
|
|
||||||
compile_OpenPGL
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -4928,7 +4770,7 @@ install_RPM() {
|
|||||||
_packages="gcc gcc-c++ git make cmake tar bzip2 xz findutils flex bison fontconfig-devel \
|
_packages="gcc gcc-c++ git make cmake tar bzip2 xz findutils flex bison fontconfig-devel \
|
||||||
libtiff-devel libjpeg-devel libpng-devel sqlite-devel fftw-devel SDL2-devel \
|
libtiff-devel libjpeg-devel libpng-devel sqlite-devel fftw-devel SDL2-devel \
|
||||||
libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \
|
libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \
|
||||||
wayland-devel libdecor-devel wayland-protocols-devel mesa-libEGL-devel libxkbcommon-devel dbus-devel kernel-headers \
|
wayland-devel wayland-protocols-devel mesa-libEGL-devel libxkbcommon-devel dbus-devel kernel-headers \
|
||||||
wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \
|
wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \
|
||||||
libepoxy-devel yasm patch \
|
libepoxy-devel yasm patch \
|
||||||
libxml2-devel yaml-cpp-devel tinyxml-devel jemalloc-devel \
|
libxml2-devel yaml-cpp-devel tinyxml-devel jemalloc-devel \
|
||||||
@@ -5459,18 +5301,6 @@ install_RPM() {
|
|||||||
PRINT ""
|
PRINT ""
|
||||||
compile_Level_Zero
|
compile_Level_Zero
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$OPENPGL_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping OpenPGL installation, as requested..."
|
|
||||||
elif [ "$OPENPGL_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced OpenPGL building, as requested..."
|
|
||||||
compile_OpenPGL
|
|
||||||
else
|
|
||||||
# No package currently!
|
|
||||||
PRINT ""
|
|
||||||
compile_OpenPGL
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -5582,7 +5412,7 @@ install_ARCH() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
_packages="$BASE_DEVEL git cmake fontconfig flex \
|
_packages="$BASE_DEVEL git cmake fontconfig flex \
|
||||||
libxi libxcursor libxrandr libxinerama libepoxy libdecor libpng libtiff wget openal \
|
libxi libxcursor libxrandr libxinerama libepoxy libpng libtiff wget openal \
|
||||||
$OPENJPEG_DEV yasm sdl2 fftw \
|
$OPENJPEG_DEV yasm sdl2 fftw \
|
||||||
libxml2 yaml-cpp tinyxml python-requests jemalloc gmp potrace pugixml libharu \
|
libxml2 yaml-cpp tinyxml python-requests jemalloc gmp potrace pugixml libharu \
|
||||||
zstd pystring"
|
zstd pystring"
|
||||||
@@ -6067,18 +5897,6 @@ install_ARCH() {
|
|||||||
PRINT ""
|
PRINT ""
|
||||||
compile_Level_Zero
|
compile_Level_Zero
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$OPENPGL_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping OpenPGL installation, as requested..."
|
|
||||||
elif [ "$OPENPGL_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced OpenPGL building, as requested..."
|
|
||||||
compile_OpenPGL
|
|
||||||
else
|
|
||||||
# No package currently!
|
|
||||||
PRINT ""
|
|
||||||
compile_OpenPGL
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -6261,14 +6079,6 @@ install_OTHER() {
|
|||||||
INFO "Forced Level Zero building, as requested..."
|
INFO "Forced Level Zero building, as requested..."
|
||||||
compile_Level_Zero
|
compile_Level_Zero
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$OPENPGL_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping OpenPGL installation, as requested..."
|
|
||||||
elif [ "$OPENPGL_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced OpenPGL building, as requested..."
|
|
||||||
compile_OpenPGL
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
@@ -6286,7 +6096,7 @@ print_info() {
|
|||||||
_buildargs="-U *SNDFILE* -U PYTHON* -U *BOOST* -U *Boost* -U *TBB*"
|
_buildargs="-U *SNDFILE* -U PYTHON* -U *BOOST* -U *Boost* -U *TBB*"
|
||||||
_buildargs="$_buildargs -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CLANG* -U *CYCLES*"
|
_buildargs="$_buildargs -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CLANG* -U *CYCLES*"
|
||||||
_buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *BLOSC* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC* -U *USD*"
|
_buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *BLOSC* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC* -U *USD*"
|
||||||
_buildargs="$_buildargs -U *EMBREE* -U *OPENIMAGEDENOISE* -U *OPENXR* -U *OPENPGL*"
|
_buildargs="$_buildargs -U *EMBREE* -U *OPENIMAGEDENOISE* -U *OPENXR*"
|
||||||
|
|
||||||
_1="-D WITH_CODEC_SNDFILE=ON"
|
_1="-D WITH_CODEC_SNDFILE=ON"
|
||||||
PRINT " $_1"
|
PRINT " $_1"
|
||||||
@@ -6517,16 +6327,6 @@ print_info() {
|
|||||||
#~ fi
|
#~ fi
|
||||||
#~ fi
|
#~ fi
|
||||||
|
|
||||||
if [ "$OPENPGL_SKIP" = false ]; then
|
|
||||||
if [ -d $INST/openpgl ]; then
|
|
||||||
_1="-D openpgl_DIR=$INST/openpgl/lib/cmake/openpgl-$OPENPGL_VERSION"
|
|
||||||
_2="-D WITH_CYCLES_PATH_GUIDING=ON"
|
|
||||||
PRINT " $_1"
|
|
||||||
PRINT " $_2"
|
|
||||||
_buildargs="$_buildargs $_1 $_2"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
PRINT ""
|
PRINT ""
|
||||||
PRINT "Or even simpler, just run (in your blender-source dir):"
|
PRINT "Or even simpler, just run (in your blender-source dir):"
|
||||||
PRINT " make -j$THREADS BUILD_CMAKE_ARGS=\"$_buildargs\""
|
PRINT " make -j$THREADS BUILD_CMAKE_ARGS=\"$_buildargs\""
|
||||||
|
@@ -1,130 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# This script is part of the official build environment, see WIKI page for details.
|
|
||||||
# https://wiki.blender.org/wiki/Building_Blender/Other/CentOS7ReleaseEnvironment
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
if [ `id -u` -ne 0 ]; then
|
|
||||||
echo "This script must be run as root"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# yum-config-manager does not come in the default minimal install,
|
|
||||||
# so make sure it is installed and available.
|
|
||||||
yum -y update
|
|
||||||
yum -y install yum-utils
|
|
||||||
|
|
||||||
# Install all the packages needed for a new toolchain.
|
|
||||||
#
|
|
||||||
# NOTE: Keep this separate from the packages install, since otherwise
|
|
||||||
# older toolchain will be installed.
|
|
||||||
yum -y update
|
|
||||||
yum -y install epel-release
|
|
||||||
yum -y install centos-release-scl
|
|
||||||
yum -y install devtoolset-9
|
|
||||||
|
|
||||||
# Install packages needed for Blender's dependencies.
|
|
||||||
PACKAGES_FOR_LIBS=(
|
|
||||||
# Used to checkout Blender's code.
|
|
||||||
git
|
|
||||||
# Used to checkout Blender's `../lib/` directory.
|
|
||||||
subversion
|
|
||||||
# Used to extract packages.
|
|
||||||
bzip2
|
|
||||||
# Used to extract packages.
|
|
||||||
tar
|
|
||||||
# Blender and some dependencies use `cmake`.
|
|
||||||
cmake3
|
|
||||||
# Apply patches from Blender's: `./build_files/build_environment/patches`
|
|
||||||
patch
|
|
||||||
# Use by `cmake` and `autoconf`.
|
|
||||||
make
|
|
||||||
|
|
||||||
# Required by: `external_nasm` which uses an `autoconf` build-system.
|
|
||||||
autoconf
|
|
||||||
automake
|
|
||||||
libtool
|
|
||||||
|
|
||||||
# Meta-build system used by various packages.
|
|
||||||
meson
|
|
||||||
# Builds generated by meson use Ninja for the actual build.
|
|
||||||
ninja-build
|
|
||||||
|
|
||||||
# Required by Blender build option: `WITH_GHOST_X11`.
|
|
||||||
libXrandr-devel
|
|
||||||
libXinerama-devel
|
|
||||||
libXcursor-devel
|
|
||||||
libXi-devel
|
|
||||||
libX11-devel
|
|
||||||
libXt-devel
|
|
||||||
|
|
||||||
# Required by Blender build option: `WITH_GHOST_WAYLAND`.
|
|
||||||
mesa-libEGL-devel
|
|
||||||
# Required by: Blender & `external_opensubdiv` (probably others).
|
|
||||||
mesa-libGL-devel
|
|
||||||
mesa-libGLU-devel
|
|
||||||
|
|
||||||
# Required by: `external_ispc`.
|
|
||||||
zlib-devel
|
|
||||||
# TODO: dependencies build without this, consider removal.
|
|
||||||
rubygem-asciidoctor
|
|
||||||
# TODO: dependencies build without this, consider removal.
|
|
||||||
wget
|
|
||||||
# Required by: `external_sqlite` as a build-time dependency (needed for the `tclsh` command).
|
|
||||||
tcl
|
|
||||||
# Required by: `external_aom`.
|
|
||||||
# TODO: Blender is already building `external_nasm` which is listed as an alternative to `yasm`.
|
|
||||||
# Why are both needed?
|
|
||||||
yasm
|
|
||||||
|
|
||||||
# Required by: `meson` (Python based build system).
|
|
||||||
python36
|
|
||||||
# Required by: `mako` (Python module used for building `external_mesa`)
|
|
||||||
python-setuptools
|
|
||||||
|
|
||||||
# Required by: `external_igc` & `external_osl` as a build-time dependency.
|
|
||||||
bison
|
|
||||||
# Required by: `external_osl` as a build-time dependency.
|
|
||||||
flex
|
|
||||||
# TODO: dependencies build without this, consider removal.
|
|
||||||
ncurses-devel
|
|
||||||
)
|
|
||||||
|
|
||||||
# Additional packages needed for building Blender.
|
|
||||||
PACKAGES_FOR_BLENDER=(
|
|
||||||
# Required by Blender build option: `WITH_GHOST_WAYLAND`.
|
|
||||||
libxkbcommon-devel
|
|
||||||
)
|
|
||||||
|
|
||||||
yum -y install -y ${PACKAGES_FOR_LIBS[@]} ${PACKAGES_FOR_BLENDER[@]}
|
|
||||||
|
|
||||||
# Dependencies for Mesa
|
|
||||||
yum -y install expat-devel
|
|
||||||
python3 -m pip install mako
|
|
||||||
|
|
||||||
# Dependencies for pip (needed for buildbot-worker).
|
|
||||||
yum -y install python36-pip python36-devel
|
|
||||||
|
|
||||||
# Dependencies for asound.
|
|
||||||
yum -y install -y \
|
|
||||||
alsa-lib-devel pulseaudio-libs-devel
|
|
||||||
|
|
||||||
alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake 10 \
|
|
||||||
--slave /usr/local/bin/ctest ctest /usr/bin/ctest \
|
|
||||||
--slave /usr/local/bin/cpack cpack /usr/bin/cpack \
|
|
||||||
--slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake \
|
|
||||||
--family cmake
|
|
||||||
|
|
||||||
alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake3 20 \
|
|
||||||
--slave /usr/local/bin/ctest ctest /usr/bin/ctest3 \
|
|
||||||
--slave /usr/local/bin/cpack cpack /usr/bin/cpack3 \
|
|
||||||
--slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake3 \
|
|
||||||
--family cmake
|
|
||||||
|
|
||||||
alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake3 20 \
|
|
||||||
--slave /usr/local/bin/ctest ctest /usr/bin/ctest3 \
|
|
||||||
--slave /usr/local/bin/cpack cpack /usr/bin/cpack3 \
|
|
||||||
--slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake3 \
|
|
||||||
--family cmake
|
|
@@ -1,18 +0,0 @@
|
|||||||
diff -Naur libaom-3.4.0/build/cmake/aom_configure.cmake external_aom/build/cmake/aom_configure.cmake
|
|
||||||
--- libaom-3.4.0/build/cmake/aom_configure.cmake 2022-06-17 11:46:18 -0600
|
|
||||||
+++ external_aom/build/cmake/aom_configure.cmake 2022-10-16 15:35:54 -0600
|
|
||||||
@@ -15,8 +15,12 @@
|
|
||||||
|
|
||||||
include(FindGit)
|
|
||||||
include(FindPerl)
|
|
||||||
-include(FindThreads)
|
|
||||||
-
|
|
||||||
+# Blender: This will drag in a dep on libwinpthreads which we prefer
|
|
||||||
+# not to have, aom will fallback on a native win32 thread wrapper
|
|
||||||
+# if pthreads are not found.
|
|
||||||
+if(NOT WIN32)
|
|
||||||
+ include(FindThreads)
|
|
||||||
+endif()
|
|
||||||
include("${AOM_ROOT}/build/cmake/aom_config_defaults.cmake")
|
|
||||||
include("${AOM_ROOT}/build/cmake/aom_experiment_deps.cmake")
|
|
||||||
include("${AOM_ROOT}/build/cmake/aom_optimization.cmake")
|
|
@@ -177,8 +177,7 @@ if(ILMBASE_INCLUDE_DIR)
|
|||||||
"\\1" XYZ ${ILMBASE_BUILD_SPECIFICATION})
|
"\\1" XYZ ${ILMBASE_BUILD_SPECIFICATION})
|
||||||
set("ILMBASE_VERSION" ${XYZ} CACHE STRING "Version of ILMBase lib")
|
set("ILMBASE_VERSION" ${XYZ} CACHE STRING "Version of ILMBase lib")
|
||||||
else()
|
else()
|
||||||
# Old versions (before 2.0?) do not have any version string,
|
# Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though.
|
||||||
# just assuming 2.0 should be fine though.
|
|
||||||
message(WARNING "Could not determine ILMBase library version, assuming 2.0.")
|
message(WARNING "Could not determine ILMBase library version, assuming 2.0.")
|
||||||
set("ILMBASE_VERSION" "2.0" CACHE STRING "Version of ILMBase lib")
|
set("ILMBASE_VERSION" "2.0" CACHE STRING "Version of ILMBase lib")
|
||||||
endif()
|
endif()
|
||||||
@@ -196,13 +195,8 @@ else()
|
|||||||
# elseif(${ILMBASE_VERSION} VERSION_LESS "2.1")
|
# elseif(${ILMBASE_VERSION} VERSION_LESS "2.1")
|
||||||
set(IlmBase_Libraries Half Iex Imath IlmThread)
|
set(IlmBase_Libraries Half Iex Imath IlmThread)
|
||||||
# else()
|
# else()
|
||||||
# string(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _ilmbase_libs_ver ${ILMBASE_VERSION})
|
# string(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _ilmbase_libs_ver ${ILMBASE_VERSION})
|
||||||
# set(IlmBase_Libraries
|
# set(IlmBase_Libraries Half Iex-${_ilmbase_libs_ver} Imath-${_ilmbase_libs_ver} IlmThread-${_ilmbase_libs_ver})
|
||||||
# Half
|
|
||||||
# Iex-${_ilmbase_libs_ver}
|
|
||||||
# Imath-${_ilmbase_libs_ver}
|
|
||||||
# IlmThread-${_ilmbase_libs_ver}
|
|
||||||
# )
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
@@ -175,8 +175,7 @@ if(OPENEXR_INCLUDE_DIR)
|
|||||||
"\\1" XYZ ${OPENEXR_BUILD_SPECIFICATION})
|
"\\1" XYZ ${OPENEXR_BUILD_SPECIFICATION})
|
||||||
set("OPENEXR_VERSION" ${XYZ} CACHE STRING "Version of OpenEXR lib")
|
set("OPENEXR_VERSION" ${XYZ} CACHE STRING "Version of OpenEXR lib")
|
||||||
else()
|
else()
|
||||||
# Old versions (before 2.0?) do not have any version string,
|
# Old versions (before 2.0?) do not have any version string, just assuming 2.0 should be fine though.
|
||||||
# just assuming 2.0 should be fine though.
|
|
||||||
message(WARNING "Could not determine ILMBase library version, assuming 2.0.")
|
message(WARNING "Could not determine ILMBase library version, assuming 2.0.")
|
||||||
set("OPENEXR_VERSION" "2.0" CACHE STRING "Version of OpenEXR lib")
|
set("OPENEXR_VERSION" "2.0" CACHE STRING "Version of OpenEXR lib")
|
||||||
endif()
|
endif()
|
||||||
|
@@ -68,18 +68,34 @@
|
|||||||
+
|
+
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
diff --git a/libavcodec/x86/simple_idct.asm b/libavcodec/x86/simple_idct.asm
|
--- a/libavcodec/rl.c
|
||||||
index dcf0da6df121..982b2f0bbba1 100644
|
+++ b/libavcodec/rl.c
|
||||||
--- a/libavcodec/x86/simple_idct.asm
|
@@ -71,17 +71,19 @@
|
||||||
+++ b/libavcodec/x86/simple_idct.asm
|
av_cold void ff_rl_init_vlc(RLTable *rl, unsigned static_size)
|
||||||
@@ -25,9 +25,9 @@
|
{
|
||||||
|
int i, q;
|
||||||
|
- VLC_TYPE table[1500][2] = {{0}};
|
||||||
|
+ VLC_TYPE (*table)[2] = av_calloc(sizeof(VLC_TYPE), 1500 * 2);
|
||||||
|
VLC vlc = { .table = table, .table_allocated = static_size };
|
||||||
|
- av_assert0(static_size <= FF_ARRAY_ELEMS(table));
|
||||||
|
+ av_assert0(static_size < 1500);
|
||||||
|
init_vlc(&vlc, 9, rl->n + 1, &rl->table_vlc[0][1], 4, 2, &rl->table_vlc[0][0], 4, 2, INIT_VLC_USE_NEW_STATIC);
|
||||||
|
|
||||||
%include "libavutil/x86/x86util.asm"
|
for (q = 0; q < 32; q++) {
|
||||||
|
int qmul = q * 2;
|
||||||
|
int qadd = (q - 1) | 1;
|
||||||
|
|
||||||
-%if ARCH_X86_32
|
- if (!rl->rl_vlc[q])
|
||||||
SECTION_RODATA
|
+ if (!rl->rl_vlc[q]){
|
||||||
|
+ av_free(table);
|
||||||
|
return;
|
||||||
|
+ }
|
||||||
|
|
||||||
+%if ARCH_X86_32
|
if (q == 0) {
|
||||||
cextern pb_80
|
qmul = 1;
|
||||||
|
@@ -113,4 +115,5 @@
|
||||||
wm1010: dw 0, 0xffff, 0, 0xffff
|
rl->rl_vlc[q][i].run = run;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ av_free(table);
|
||||||
|
}
|
||||||
|
@@ -1,15 +0,0 @@
|
|||||||
--- a/mpz/inp_raw.c Tue Dec 22 23:49:51 2020 +0100
|
|
||||||
+++ b/mpz/inp_raw.c Thu Oct 21 19:06:49 2021 +0200
|
|
||||||
@@ -88,8 +88,11 @@
|
|
||||||
|
|
||||||
abs_csize = ABS (csize);
|
|
||||||
|
|
||||||
+ if (UNLIKELY (abs_csize > ~(mp_bitcnt_t) 0 / 8))
|
|
||||||
+ return 0; /* Bit size overflows */
|
|
||||||
+
|
|
||||||
/* round up to a multiple of limbs */
|
|
||||||
- abs_xsize = BITS_TO_LIMBS (abs_csize*8);
|
|
||||||
+ abs_xsize = BITS_TO_LIMBS ((mp_bitcnt_t) abs_csize * 8);
|
|
||||||
|
|
||||||
if (abs_xsize != 0)
|
|
||||||
{
|
|
@@ -130,28 +130,3 @@ index 715d903..24423ce 100644
|
|||||||
{
|
{
|
||||||
string id = node.attribute("id").value();
|
string id = node.attribute("id").value();
|
||||||
size_t line = node.line();
|
size_t line = node.line();
|
||||||
diff -Naur a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -274,7 +274,7 @@
|
|
||||||
add_subdirectory(${EXTERNAL_LIBRARIES}/UTF)
|
|
||||||
add_subdirectory(common/libBuffer)
|
|
||||||
add_subdirectory(${EXTERNAL_LIBRARIES}/MathMLSolver)
|
|
||||||
-add_subdirectory(${EXTERNAL_LIBRARIES}/zlib)
|
|
||||||
+#add_subdirectory(${EXTERNAL_LIBRARIES}/zlib)
|
|
||||||
|
|
||||||
# building OpenCOLLADA libs
|
|
||||||
add_subdirectory(COLLADABaseUtils)
|
|
||||||
@@ -284,10 +284,10 @@
|
|
||||||
add_subdirectory(COLLADAStreamWriter)
|
|
||||||
|
|
||||||
# building COLLADAValidator app
|
|
||||||
-add_subdirectory(COLLADAValidator)
|
|
||||||
+#add_subdirectory(COLLADAValidator)
|
|
||||||
|
|
||||||
# DAE validator app
|
|
||||||
-add_subdirectory(DAEValidator)
|
|
||||||
+#add_subdirectory(DAEValidator)
|
|
||||||
|
|
||||||
# Library export
|
|
||||||
install(EXPORT LibraryExport DESTINATION ${OPENCOLLADA_INST_CMAKECONFIG} FILE OpenCOLLADATargets.cmake)
|
|
||||||
|
@@ -14,15 +14,3 @@ index 7b894a45..92618215 100644
|
|||||||
)
|
)
|
||||||
if(CMAKE_TOOLCHAIN_FILE)
|
if(CMAKE_TOOLCHAIN_FILE)
|
||||||
set(pystring_CMAKE_ARGS
|
set(pystring_CMAKE_ARGS
|
||||||
--- a/src/OpenColorIO/FileRules.cpp
|
|
||||||
+++ b/src/OpenColorIO/FileRules.cpp
|
|
||||||
@@ -7,6 +7,9 @@
|
|
||||||
#include <regex>
|
|
||||||
#include <sstream>
|
|
||||||
|
|
||||||
+/* NOTE: this has been applied up-stream, this edit can be removed after upgrading OpenColorIO. */
|
|
||||||
+#include <cstring>
|
|
||||||
+
|
|
||||||
#include <OpenColorIO/OpenColorIO.h>
|
|
||||||
|
|
||||||
#include "CustomKeys.h"
|
|
||||||
|
@@ -1,34 +1,8 @@
|
|||||||
diff -Naur OpenShadingLanguage-1.12.6.2/CMakeLists.txt external_osl/CMakeLists.txt
|
diff -Naur OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h external_osl/src/include/OSL/llvm_util.h
|
||||||
--- OpenShadingLanguage-1.12.6.2/CMakeLists.txt 2022-09-30 17:43:53 -0600
|
--- OpenShadingLanguage-Release-1.9.9/src/include/OSL/llvm_util.h 2018-05-01 16:39:02 -0600
|
||||||
+++ external_osl/CMakeLists.txt 2022-10-15 14:49:26 -0600
|
+++ external_osl/src/include/OSL/llvm_util.h 2018-08-25 14:05:00 -0600
|
||||||
@@ -101,6 +101,11 @@
|
@@ -33,6 +33,8 @@
|
||||||
CACHE STRING "Directory where OptiX PTX files will be installed")
|
|
||||||
set (CMAKE_DEBUG_POSTFIX "" CACHE STRING "Library naming postfix for Debug builds (e.g., '_debug')")
|
|
||||||
|
|
||||||
+set (USE_OIIO_STATIC ON CACHE BOOL "If OIIO is built static")
|
|
||||||
+if (USE_OIIO_STATIC)
|
|
||||||
+ add_definitions ("-DOIIO_STATIC_BUILD=1")
|
|
||||||
+ add_definitions ("-DOIIO_STATIC_DEFINE=1")
|
|
||||||
+endif ()
|
|
||||||
|
|
||||||
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
|
||||||
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
|
||||||
diff -Naur OpenShadingLanguage-1.12.6.2/src/cmake/externalpackages.cmake external_osl/src/cmake/externalpackages.cmake
|
|
||||||
--- OpenShadingLanguage-1.12.6.2/src/cmake/externalpackages.cmake 2022-09-30 17:43:53 -0600
|
|
||||||
+++ external_osl/src/cmake/externalpackages.cmake 2022-10-15 14:49:26 -0600
|
|
||||||
@@ -77,6 +77,7 @@
|
|
||||||
|
|
||||||
|
|
||||||
checked_find_package (ZLIB REQUIRED) # Needed by several packages
|
|
||||||
+checked_find_package (PNG REQUIRED) # Needed since OIIO needs it
|
|
||||||
|
|
||||||
# IlmBase & OpenEXR
|
|
||||||
checked_find_package (OpenEXR REQUIRED
|
|
||||||
diff -Naur OpenShadingLanguage-1.12.6.2/src/include/OSL/llvm_util.h external_osl/src/include/OSL/llvm_util.h
|
|
||||||
--- OpenShadingLanguage-1.12.6.2/src/include/OSL/llvm_util.h 2022-09-30 17:43:53 -0600
|
|
||||||
+++ external_osl/src/include/OSL/llvm_util.h 2022-10-15 15:37:24 -0600
|
|
||||||
@@ -9,6 +9,8 @@
|
|
||||||
#include <unordered_set>
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
+#define OSL_HAS_BLENDER_CLEANUP_FIX
|
+#define OSL_HAS_BLENDER_CLEANUP_FIX
|
||||||
@@ -36,18 +10,58 @@ diff -Naur OpenShadingLanguage-1.12.6.2/src/include/OSL/llvm_util.h external_osl
|
|||||||
#ifdef LLVM_NAMESPACE
|
#ifdef LLVM_NAMESPACE
|
||||||
namespace llvm = LLVM_NAMESPACE;
|
namespace llvm = LLVM_NAMESPACE;
|
||||||
#endif
|
#endif
|
||||||
@@ -455,7 +457,7 @@
|
@@ -487,6 +489,7 @@
|
||||||
llvm::BasicBlock* masked_return_block() const;
|
std::string func_name (llvm::Function *f);
|
||||||
|
|
||||||
bool is_masking_required() const { return m_is_masking_required; }
|
static size_t total_jit_memory_held ();
|
||||||
-
|
|
||||||
+ static void Cleanup ();
|
+ static void Cleanup ();
|
||||||
struct ScopedMasking {
|
|
||||||
ScopedMasking() {}
|
|
||||||
|
|
||||||
diff -Naur OpenShadingLanguage-1.12.6.2/src/liboslcomp/oslcomp.cpp external_osl/src/liboslcomp/oslcomp.cpp
|
private:
|
||||||
--- OpenShadingLanguage-1.12.6.2/src/liboslcomp/oslcomp.cpp 2022-09-30 17:43:53 -0600
|
class MemoryManager;
|
||||||
+++ external_osl/src/liboslcomp/oslcomp.cpp 2022-10-15 14:49:26 -0600
|
diff -Naur OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp
|
||||||
|
--- OpenShadingLanguage-Release-1.9.9/src/liboslexec/llvm_util.cpp 2018-05-01 16:39:02 -0600
|
||||||
|
+++ external_osl/src/liboslexec/llvm_util.cpp 2018-08-25 14:04:27 -0600
|
||||||
|
@@ -140,7 +140,10 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
-
|
||||||
|
+void LLVM_Util::Cleanup ()
|
||||||
|
+{
|
||||||
|
+ if(jitmm_hold) jitmm_hold->clear();
|
||||||
|
+}
|
||||||
|
|
||||||
|
size_t
|
||||||
|
LLVM_Util::total_jit_memory_held ()
|
||||||
|
diff -Naur org/CMakeLists.txt external_osl/CMakeLists.txt
|
||||||
|
--- org/CMakeLists.txt 2020-12-01 12:37:15 -0700
|
||||||
|
+++ external_osl/CMakeLists.txt 2021-01-20 13:26:50 -0700
|
||||||
|
@@ -84,6 +84,11 @@
|
||||||
|
CACHE STRING "Directory where OptiX PTX files will be installed")
|
||||||
|
set (CMAKE_DEBUG_POSTFIX "" CACHE STRING "Library naming postfix for Debug builds (e.g., '_debug')")
|
||||||
|
|
||||||
|
+set (USE_OIIO_STATIC ON CACHE BOOL "If OIIO is built static")
|
||||||
|
+if (USE_OIIO_STATIC)
|
||||||
|
+ add_definitions ("-DOIIO_STATIC_BUILD=1")
|
||||||
|
+ add_definitions ("-DOIIO_STATIC_DEFINE=1")
|
||||||
|
+endif ()
|
||||||
|
|
||||||
|
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
||||||
|
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
||||||
|
diff -Naur external_osl_orig/src/cmake/externalpackages.cmake external_osl/src/cmake/externalpackages.cmake
|
||||||
|
--- external_osl_orig/src/cmake/externalpackages.cmake 2021-06-01 13:44:18 -0600
|
||||||
|
+++ external_osl/src/cmake/externalpackages.cmake 2021-06-28 07:44:32 -0600
|
||||||
|
@@ -80,6 +80,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
checked_find_package (ZLIB REQUIRED) # Needed by several packages
|
||||||
|
+checked_find_package (PNG REQUIRED) # Needed since OIIO needs it
|
||||||
|
|
||||||
|
# IlmBase & OpenEXR
|
||||||
|
checked_find_package (OpenEXR REQUIRED
|
||||||
|
diff -Naur external_osl_orig/src/liboslcomp/oslcomp.cpp external_osl/src/liboslcomp/oslcomp.cpp
|
||||||
|
--- external_osl_orig/src/liboslcomp/oslcomp.cpp 2021-06-01 13:44:18 -0600
|
||||||
|
+++ external_osl/src/liboslcomp/oslcomp.cpp 2021-06-28 09:11:06 -0600
|
||||||
@@ -21,6 +21,13 @@
|
@@ -21,6 +21,13 @@
|
||||||
#if !defined(__STDC_CONSTANT_MACROS)
|
#if !defined(__STDC_CONSTANT_MACROS)
|
||||||
# define __STDC_CONSTANT_MACROS 1
|
# define __STDC_CONSTANT_MACROS 1
|
||||||
@@ -62,50 +76,3 @@ diff -Naur OpenShadingLanguage-1.12.6.2/src/liboslcomp/oslcomp.cpp external_osl/
|
|||||||
#include <clang/Basic/TargetInfo.h>
|
#include <clang/Basic/TargetInfo.h>
|
||||||
#include <clang/Frontend/CompilerInstance.h>
|
#include <clang/Frontend/CompilerInstance.h>
|
||||||
#include <clang/Frontend/TextDiagnosticPrinter.h>
|
#include <clang/Frontend/TextDiagnosticPrinter.h>
|
||||||
diff -Naur OpenShadingLanguage-1.12.6.2/src/liboslexec/llvm_util.cpp external_osl/src/liboslexec/llvm_util.cpp
|
|
||||||
--- OpenShadingLanguage-1.12.6.2/src/liboslexec/llvm_util.cpp 2022-09-30 17:43:53 -0600
|
|
||||||
+++ external_osl/src/liboslexec/llvm_util.cpp 2022-10-15 15:53:11 -0600
|
|
||||||
@@ -116,8 +116,6 @@
|
|
||||||
return { A.data(), size_t(A.size()) };
|
|
||||||
}
|
|
||||||
|
|
||||||
-
|
|
||||||
-
|
|
||||||
namespace pvt {
|
|
||||||
|
|
||||||
typedef llvm::SectionMemoryManager LLVMMemoryManager;
|
|
||||||
@@ -182,6 +180,13 @@
|
|
||||||
++jit_mem_hold_users;
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+LLVM_Util::Cleanup()
|
|
||||||
+{
|
|
||||||
+ if (jitmm_hold)
|
|
||||||
+ jitmm_hold->clear();
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
|
|
||||||
LLVM_Util::ScopedJitMemoryUser::~ScopedJitMemoryUser()
|
|
||||||
{
|
|
||||||
diff --git a/src/include/OSL/mask.h b/src/include/OSL/mask.h
|
|
||||||
index 24197af..b9275f6 100644
|
|
||||||
--- a/src/include/OSL/mask.h
|
|
||||||
+++ b/src/include/OSL/mask.h
|
|
||||||
@@ -4,7 +4,6 @@
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
-#include <immintrin.h>
|
|
||||||
#include <type_traits>
|
|
||||||
|
|
||||||
#include <OSL/oslconfig.h>
|
|
||||||
@@ -23,6 +22,8 @@ using std::countr_zero;
|
|
||||||
|
|
||||||
#elif OSL_INTEL_CLASSIC_COMPILER_VERSION
|
|
||||||
|
|
||||||
+#include <immintrin.h>
|
|
||||||
+
|
|
||||||
OSL_FORCEINLINE int popcount(uint32_t x) noexcept { return _mm_popcnt_u32(x);}
|
|
||||||
OSL_FORCEINLINE int popcount(uint64_t x) noexcept { return _mm_popcnt_u64(x); }
|
|
||||||
OSL_FORCEINLINE int countr_zero(uint32_t x) noexcept { return _bit_scan_forward(x); }
|
|
||||||
|
24
build_files/build_environment/patches/python_windows.diff
Normal file
24
build_files/build_environment/patches/python_windows.diff
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
diff -Naur orig/PCbuild/get_externals.bat Python-3.10.2/PCbuild/get_externals.bat
|
||||||
|
--- orig/PCbuild/get_externals.bat 2022-01-13 11:52:14 -0700
|
||||||
|
+++ Python-3.10.2/PCbuild/get_externals.bat 2022-08-17 11:24:42 -0600
|
||||||
|
@@ -51,7 +51,7 @@
|
||||||
|
echo.Fetching external libraries...
|
||||||
|
|
||||||
|
set libraries=
|
||||||
|
-set libraries=%libraries% bzip2-1.0.6
|
||||||
|
+set libraries=%libraries% bzip2-1.0.8
|
||||||
|
if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.3.0
|
||||||
|
if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1m
|
||||||
|
set libraries=%libraries% sqlite-3.35.5.0
|
||||||
|
diff -Naur orig/PCbuild/python.props external_python/PCbuild/python.props
|
||||||
|
--- orig/PCbuild/python.props 2022-01-13 11:52:14 -0700
|
||||||
|
+++ external_python/PCbuild/python.props 2022-08-17 11:38:38 -0600
|
||||||
|
@@ -58,7 +58,7 @@
|
||||||
|
<ExternalsDir Condition="$(ExternalsDir) == ''">$([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`))</ExternalsDir>
|
||||||
|
<ExternalsDir Condition="!HasTrailingSlash($(ExternalsDir))">$(ExternalsDir)\</ExternalsDir>
|
||||||
|
<sqlite3Dir>$(ExternalsDir)sqlite-3.35.5.0\</sqlite3Dir>
|
||||||
|
- <bz2Dir>$(ExternalsDir)bzip2-1.0.6\</bz2Dir>
|
||||||
|
+ <bz2Dir>$(ExternalsDir)bzip2-1.0.8\</bz2Dir>
|
||||||
|
<lzmaDir>$(ExternalsDir)xz-5.2.2\</lzmaDir>
|
||||||
|
<libffiDir>$(ExternalsDir)libffi-3.3.0\</libffiDir>
|
||||||
|
<libffiOutDir>$(ExternalsDir)libffi-3.3.0\$(ArchName)\</libffiOutDir>
|
42
build_files/build_environment/patches/sndfile.diff
Normal file
42
build_files/build_environment/patches/sndfile.diff
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
--- src/Makefile.in 2017-09-26 01:28:47.000000000 +0300
|
||||||
|
+++ src/Makefile.in 2017-09-26 01:19:06.000000000 +0300
|
||||||
|
@@ -513,7 +513,7 @@
|
||||||
|
libcommon_la_SOURCES = common.c file_io.c command.c pcm.c ulaw.c alaw.c \
|
||||||
|
float32.c double64.c ima_adpcm.c ms_adpcm.c gsm610.c dwvw.c vox_adpcm.c \
|
||||||
|
interleave.c strings.c dither.c cart.c broadcast.c audio_detect.c \
|
||||||
|
- ima_oki_adpcm.c ima_oki_adpcm.h alac.c chunk.c ogg.c chanmap.c \
|
||||||
|
+ ima_oki_adpcm.c ima_oki_adpcm.h alac.c chunk.c ogg.c chanmap.c \
|
||||||
|
windows.c id3.c $(WIN_VERSION_FILE)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -719,10 +719,10 @@
|
||||||
|
$(AM_V_CCLD)$(LINK) $(GSM610_libgsm_la_OBJECTS) $(GSM610_libgsm_la_LIBADD) $(LIBS)
|
||||||
|
|
||||||
|
libcommon.la: $(libcommon_la_OBJECTS) $(libcommon_la_DEPENDENCIES) $(EXTRA_libcommon_la_DEPENDENCIES)
|
||||||
|
- $(AM_V_CCLD)$(LINK) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS)
|
||||||
|
+ $(AM_V_CCLD)$(LINK) $(libcommon_la_OBJECTS) $(libcommon_la_LIBADD) $(LIBS) $(EXTERNAL_XIPH_LIBS)
|
||||||
|
|
||||||
|
libsndfile.la: $(libsndfile_la_OBJECTS) $(libsndfile_la_DEPENDENCIES) $(EXTRA_libsndfile_la_DEPENDENCIES)
|
||||||
|
- $(AM_V_CCLD)$(libsndfile_la_LINK) -rpath $(libdir) $(libsndfile_la_OBJECTS) $(libsndfile_la_LIBADD) $(LIBS)
|
||||||
|
+ $(AM_V_CCLD)$(libsndfile_la_LINK) -rpath $(libdir) $(libsndfile_la_OBJECTS) $(libsndfile_la_LIBADD) $(LIBS) $(EXTERNAL_XIPH_LIBS)
|
||||||
|
|
||||||
|
clean-checkPROGRAMS:
|
||||||
|
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
|
@@ -924,7 +924,7 @@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsndfile_la_CPPFLAGS) $(CPPFLAGS) $(libsndfile_la_CFLAGS) $(CFLAGS) -c -o libsndfile_la-dwd.lo `test -f 'dwd.c' || echo '$(srcdir)/'`dwd.c
|
||||||
|
|
||||||
|
libsndfile_la-flac.lo: flac.c
|
||||||
|
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsndfile_la_CPPFLAGS) $(CPPFLAGS) $(libsndfile_la_CFLAGS) $(CFLAGS) -MT libsndfile_la-flac.lo -MD -MP -MF $(DEPDIR)/libsndfile_la-flac.Tpo -c -o libsndfile_la-flac.lo `test -f 'flac.c' || echo '$(srcdir)/'`flac.c
|
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsndfile_la_CPPFLAGS) $(CPPFLAGS) $(libsndfile_la_CFLAGS) $(CFLAGS) $(EXTERNAL_XIPH_CFLAGS) -MT libsndfile_la-flac.lo -MD -MP -MF $(DEPDIR)/libsndfile_la-flac.Tpo -c -o libsndfile_la-flac.lo `test -f 'flac.c' || echo '$(srcdir)/'`flac.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsndfile_la-flac.Tpo $(DEPDIR)/libsndfile_la-flac.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='flac.c' object='libsndfile_la-flac.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@@ -1092,7 +1092,7 @@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsndfile_la_CPPFLAGS) $(CPPFLAGS) $(libsndfile_la_CFLAGS) $(CFLAGS) -c -o libsndfile_la-rf64.lo `test -f 'rf64.c' || echo '$(srcdir)/'`rf64.c
|
||||||
|
|
||||||
|
libsndfile_la-ogg_vorbis.lo: ogg_vorbis.c
|
||||||
|
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsndfile_la_CPPFLAGS) $(CPPFLAGS) $(libsndfile_la_CFLAGS) $(CFLAGS) -MT libsndfile_la-ogg_vorbis.lo -MD -MP -MF $(DEPDIR)/libsndfile_la-ogg_vorbis.Tpo -c -o libsndfile_la-ogg_vorbis.lo `test -f 'ogg_vorbis.c' || echo '$(srcdir)/'`ogg_vorbis.c
|
||||||
|
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsndfile_la_CPPFLAGS) $(CPPFLAGS) $(libsndfile_la_CFLAGS) $(CFLAGS) $(EXTERNAL_XIPH_CFLAGS) -MT libsndfile_la-ogg_vorbis.lo -MD -MP -MF $(DEPDIR)/libsndfile_la-ogg_vorbis.Tpo -c -o libsndfile_la-ogg_vorbis.lo `test -f 'ogg_vorbis.c' || echo '$(srcdir)/'`ogg_vorbis.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libsndfile_la-ogg_vorbis.Tpo $(DEPDIR)/libsndfile_la-ogg_vorbis.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ogg_vorbis.c' object='libsndfile_la-ogg_vorbis.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
14
build_files/build_environment/patches/sqlite.diff
Normal file
14
build_files/build_environment/patches/sqlite.diff
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Only in external_sqlite_orig: config.log
|
||||||
|
diff -ru external_sqlite_orig/config.sub external_sqlite/config.sub
|
||||||
|
--- external_sqlite_orig/config.sub 2020-07-10 14:06:42.000000000 +0200
|
||||||
|
+++ external_sqlite/config.sub 2020-07-10 14:10:24.000000000 +0200
|
||||||
|
@@ -314,6 +314,7 @@
|
||||||
|
# Recognize the basic CPU types with company name.
|
||||||
|
580-* \
|
||||||
|
| a29k-* \
|
||||||
|
+ | aarch64-* \
|
||||||
|
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||||
|
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||||
|
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||||
|
Only in external_sqlite: mksourceid
|
||||||
|
Only in external_sqlite: sqlite3session.h
|
@@ -1,10 +0,0 @@
|
|||||||
--- ./test/v3ext.c 2022-07-05 11:08:33.000000000 +0200
|
|
||||||
+++ ./test/v3ext.c 2022-10-18 13:58:05.000000000 +0200
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <openssl/x509.h>
|
|
||||||
#include <openssl/x509v3.h>
|
|
||||||
#include <openssl/pem.h>
|
|
@@ -1,11 +0,0 @@
|
|||||||
--- meson.build.orig 2022-06-30 22:59:11.000000000 +0100
|
|
||||||
+++ meson.build 2022-09-27 13:21:26.428517668 +0100
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
'wayland', 'c',
|
|
||||||
version: '1.21.0',
|
|
||||||
license: 'MIT',
|
|
||||||
- meson_version: '>= 0.56.0',
|
|
||||||
+ meson_version: '>= 0.55.1',
|
|
||||||
default_options: [
|
|
||||||
'warning_level=2',
|
|
||||||
'buildtype=debugoptimized',
|
|
@@ -1,59 +0,0 @@
|
|||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
# Copyright 2022 Blender Foundation.
|
|
||||||
|
|
||||||
# - Find MoltenVK libraries
|
|
||||||
# Find the MoltenVK includes and libraries
|
|
||||||
# This module defines
|
|
||||||
# MOLTENVK_INCLUDE_DIRS, where to find MoltenVK headers, Set when
|
|
||||||
# MOLTENVK_INCLUDE_DIR is found.
|
|
||||||
# MOLTENVK_LIBRARIES, libraries to link against to use MoltenVK.
|
|
||||||
# MOLTENVK_ROOT_DIR, The base directory to search for MoltenVK.
|
|
||||||
# This can also be an environment variable.
|
|
||||||
# MOLTENVK_FOUND, If false, do not try to use MoltenVK.
|
|
||||||
#
|
|
||||||
|
|
||||||
# If MOLTENVK_ROOT_DIR was defined in the environment, use it.
|
|
||||||
IF(NOT MOLTENVK_ROOT_DIR AND NOT $ENV{MOLTENVK_ROOT_DIR} STREQUAL "")
|
|
||||||
SET(MOLTENVK_ROOT_DIR $ENV{MOLTENVK_ROOT_DIR})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
SET(_moltenvk_SEARCH_DIRS
|
|
||||||
${MOLTENVK_ROOT_DIR}
|
|
||||||
${LIBDIR}/vulkan/MoltenVK
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
FIND_PATH(MOLTENVK_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
MoltenVK/vk_mvk_moltenvk.h
|
|
||||||
HINTS
|
|
||||||
${_moltenvk_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(MOLTENVK_LIBRARY
|
|
||||||
NAMES
|
|
||||||
MoltenVK
|
|
||||||
HINTS
|
|
||||||
${_moltenvk_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
dylib/macOS
|
|
||||||
)
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set MOLTENVK_FOUND to TRUE if
|
|
||||||
# all listed variables are TRUE
|
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MoltenVK DEFAULT_MSG MOLTENVK_LIBRARY MOLTENVK_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(MOLTENVK_FOUND)
|
|
||||||
SET(MOLTENVK_LIBRARIES ${MOLTENVK_LIBRARY})
|
|
||||||
SET(MOLTENVK_INCLUDE_DIRS ${MOLTENVK_INCLUDE_DIR})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
|
||||||
MOLTENVK_INCLUDE_DIR
|
|
||||||
MOLTENVK_LIBRARY
|
|
||||||
)
|
|
||||||
|
|
||||||
UNSET(_moltenvk_SEARCH_DIRS)
|
|
@@ -20,7 +20,6 @@ IF(NOT OSL_ROOT_DIR AND NOT $ENV{OSL_ROOT_DIR} STREQUAL "")
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
SET(_osl_FIND_COMPONENTS
|
SET(_osl_FIND_COMPONENTS
|
||||||
oslnoise
|
|
||||||
oslcomp
|
oslcomp
|
||||||
oslexec
|
oslexec
|
||||||
oslquery
|
oslquery
|
||||||
@@ -40,6 +39,7 @@ FIND_PATH(OSL_INCLUDE_DIR
|
|||||||
include
|
include
|
||||||
)
|
)
|
||||||
|
|
||||||
|
SET(_osl_LIBRARIES)
|
||||||
FOREACH(COMPONENT ${_osl_FIND_COMPONENTS})
|
FOREACH(COMPONENT ${_osl_FIND_COMPONENTS})
|
||||||
STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT)
|
||||||
|
|
||||||
@@ -51,20 +51,9 @@ FOREACH(COMPONENT ${_osl_FIND_COMPONENTS})
|
|||||||
PATH_SUFFIXES
|
PATH_SUFFIXES
|
||||||
lib64 lib
|
lib64 lib
|
||||||
)
|
)
|
||||||
|
LIST(APPEND _osl_LIBRARIES "${OSL_${UPPERCOMPONENT}_LIBRARY}")
|
||||||
ENDFOREACH()
|
ENDFOREACH()
|
||||||
|
|
||||||
# Note linking order matters, and oslnoise existence depends on version.
|
|
||||||
SET(_osl_LIBRARIES ${OSL_OSLCOMP_LIBRARY})
|
|
||||||
IF(APPLE)
|
|
||||||
list(APPEND _osl_LIBRARIES -force_load ${OSL_OSLEXEC_LIBRARY})
|
|
||||||
ELSE()
|
|
||||||
list(APPEND _osl_LIBRARIES ${OSL_OSLEXEC_LIBRARY})
|
|
||||||
ENDIF()
|
|
||||||
list(APPEND _osl_LIBRARIES ${OSL_OSLQUERY_LIBRARY})
|
|
||||||
IF(OSL_OSLNOISE_LIBRARY)
|
|
||||||
list(APPEND _osl_LIBRARIES ${OSL_OSLNOISE_LIBRARY})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
FIND_PROGRAM(OSL_COMPILER oslc
|
FIND_PROGRAM(OSL_COMPILER oslc
|
||||||
HINTS ${_osl_SEARCH_DIRS}
|
HINTS ${_osl_SEARCH_DIRS}
|
||||||
PATH_SUFFIXES bin)
|
PATH_SUFFIXES bin)
|
||||||
|
@@ -26,8 +26,7 @@ IF(NOT OPENEXR_ROOT_DIR AND NOT $ENV{OPENEXR_ROOT_DIR} STREQUAL "")
|
|||||||
SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR})
|
SET(OPENEXR_ROOT_DIR $ENV{OPENEXR_ROOT_DIR})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# Old versions (before 2.0?) do not have any version string,
|
# Old versions (before 2.0?) do not have any version string, just assuming this should be fine though.
|
||||||
# just assuming this should be fine though.
|
|
||||||
SET(_openexr_libs_ver_init "2.0")
|
SET(_openexr_libs_ver_init "2.0")
|
||||||
|
|
||||||
SET(_openexr_SEARCH_DIRS
|
SET(_openexr_SEARCH_DIRS
|
||||||
|
@@ -71,6 +71,21 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenSubdiv DEFAULT_MSG
|
|||||||
IF(OPENSUBDIV_FOUND)
|
IF(OPENSUBDIV_FOUND)
|
||||||
SET(OPENSUBDIV_LIBRARIES ${_opensubdiv_LIBRARIES})
|
SET(OPENSUBDIV_LIBRARIES ${_opensubdiv_LIBRARIES})
|
||||||
SET(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_INCLUDE_DIR})
|
SET(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_INCLUDE_DIR})
|
||||||
|
|
||||||
|
# Find available compute controllers.
|
||||||
|
|
||||||
|
FIND_PACKAGE(OpenMP)
|
||||||
|
IF(OPENMP_FOUND)
|
||||||
|
SET(OPENSUBDIV_HAS_OPENMP TRUE)
|
||||||
|
ELSE()
|
||||||
|
SET(OPENSUBDIV_HAS_OPENMP FALSE)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
OPENSUBDIV_CHECK_CONTROLLER("tbbEvaluator.h" OPENSUBDIV_HAS_TBB)
|
||||||
|
OPENSUBDIV_CHECK_CONTROLLER("clEvaluator.h" OPENSUBDIV_HAS_OPENCL)
|
||||||
|
OPENSUBDIV_CHECK_CONTROLLER("cudaEvaluator.h" OPENSUBDIV_HAS_CUDA)
|
||||||
|
OPENSUBDIV_CHECK_CONTROLLER("glXFBEvaluator.h" OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK)
|
||||||
|
OPENSUBDIV_CHECK_CONTROLLER("glComputeEvaluator.h" OPENSUBDIV_HAS_GLSL_COMPUTE)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
|
@@ -34,17 +34,11 @@ SET(PYTHON_VERSION 3.10 CACHE STRING "Python Version (major and minor only)")
|
|||||||
MARK_AS_ADVANCED(PYTHON_VERSION)
|
MARK_AS_ADVANCED(PYTHON_VERSION)
|
||||||
|
|
||||||
|
|
||||||
if(APPLE)
|
# See: http://docs.python.org/extending/embedding.html#linking-requirements
|
||||||
if(WITH_PYTHON_MODULE)
|
# for why this is needed
|
||||||
set(PYTHON_LINKFLAGS "-undefined dynamic_lookup")
|
SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic" CACHE STRING "Linker flags for python")
|
||||||
else()
|
MARK_AS_ADVANCED(PYTHON_LINKFLAGS)
|
||||||
set(PYTHON_LINKFLAGS)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
# See: http://docs.python.org/extending/embedding.html#linking-requirements
|
|
||||||
SET(PYTHON_LINKFLAGS "-Xlinker -export-dynamic" CACHE STRING "Linker flags for python")
|
|
||||||
MARK_AS_ADVANCED(PYTHON_LINKFLAGS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# if the user passes these defines as args, we don't want to overwrite
|
# if the user passes these defines as args, we don't want to overwrite
|
||||||
SET(_IS_INC_DEF OFF)
|
SET(_IS_INC_DEF OFF)
|
||||||
|
@@ -30,7 +30,6 @@ SET(_sycl_search_dirs
|
|||||||
# dpcpp binary.
|
# dpcpp binary.
|
||||||
FIND_PROGRAM(SYCL_COMPILER
|
FIND_PROGRAM(SYCL_COMPILER
|
||||||
NAMES
|
NAMES
|
||||||
icpx
|
|
||||||
dpcpp
|
dpcpp
|
||||||
clang++
|
clang++
|
||||||
HINTS
|
HINTS
|
||||||
@@ -45,8 +44,7 @@ FIND_PROGRAM(SYCL_COMPILER
|
|||||||
# compiler.
|
# compiler.
|
||||||
if(NOT SYCL_COMPILER)
|
if(NOT SYCL_COMPILER)
|
||||||
FIND_PROGRAM(SYCL_COMPILER
|
FIND_PROGRAM(SYCL_COMPILER
|
||||||
NAMES
|
NAMES
|
||||||
icpx
|
|
||||||
dpcpp
|
dpcpp
|
||||||
HINTS
|
HINTS
|
||||||
${_sycl_search_dirs}
|
${_sycl_search_dirs}
|
||||||
@@ -57,8 +55,6 @@ endif()
|
|||||||
|
|
||||||
FIND_LIBRARY(SYCL_LIBRARY
|
FIND_LIBRARY(SYCL_LIBRARY
|
||||||
NAMES
|
NAMES
|
||||||
sycl7
|
|
||||||
sycl6
|
|
||||||
sycl
|
sycl
|
||||||
HINTS
|
HINTS
|
||||||
${_sycl_search_dirs}
|
${_sycl_search_dirs}
|
||||||
@@ -66,48 +62,23 @@ FIND_LIBRARY(SYCL_LIBRARY
|
|||||||
lib64 lib
|
lib64 lib
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
FIND_LIBRARY(SYCL_LIBRARY_DEBUG
|
|
||||||
NAMES
|
|
||||||
sycl7d
|
|
||||||
sycl6d
|
|
||||||
sycld
|
|
||||||
HINTS
|
|
||||||
${_sycl_search_dirs}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
lib64 lib
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
FIND_PATH(SYCL_INCLUDE_DIR
|
FIND_PATH(SYCL_INCLUDE_DIR
|
||||||
NAMES
|
NAMES
|
||||||
sycl/sycl.hpp
|
CL/sycl.hpp
|
||||||
HINTS
|
HINTS
|
||||||
${_sycl_search_dirs}
|
${_sycl_search_dirs}
|
||||||
PATH_SUFFIXES
|
PATH_SUFFIXES
|
||||||
include
|
include
|
||||||
|
include/sycl
|
||||||
)
|
)
|
||||||
|
|
||||||
IF(EXISTS "${SYCL_INCLUDE_DIR}/sycl/version.hpp")
|
|
||||||
FILE(STRINGS "${SYCL_INCLUDE_DIR}/sycl/version.hpp" _libsycl_major_version REGEX "^#define __LIBSYCL_MAJOR_VERSION[ \t].*$")
|
|
||||||
STRING(REGEX MATCHALL "[0-9]+" _libsycl_major_version ${_libsycl_major_version})
|
|
||||||
FILE(STRINGS "${SYCL_INCLUDE_DIR}/sycl/version.hpp" _libsycl_minor_version REGEX "^#define __LIBSYCL_MINOR_VERSION[ \t].*$")
|
|
||||||
STRING(REGEX MATCHALL "[0-9]+" _libsycl_minor_version ${_libsycl_minor_version})
|
|
||||||
FILE(STRINGS "${SYCL_INCLUDE_DIR}/sycl/version.hpp" _libsycl_patch_version REGEX "^#define __LIBSYCL_PATCH_VERSION[ \t].*$")
|
|
||||||
STRING(REGEX MATCHALL "[0-9]+" _libsycl_patch_version ${_libsycl_patch_version})
|
|
||||||
|
|
||||||
SET(SYCL_VERSION "${_libsycl_major_version}.${_libsycl_minor_version}.${_libsycl_patch_version}")
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
|
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SYCL
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SYCL DEFAULT_MSG SYCL_LIBRARY SYCL_INCLUDE_DIR)
|
||||||
REQUIRED_VARS SYCL_LIBRARY SYCL_INCLUDE_DIR
|
|
||||||
VERSION_VAR SYCL_VERSION
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(SYCL_FOUND)
|
IF(SYCL_FOUND)
|
||||||
SET(SYCL_INCLUDE_DIR ${SYCL_INCLUDE_DIR} ${SYCL_INCLUDE_DIR}/sycl)
|
get_filename_component(_SYCL_INCLUDE_PARENT_DIR ${SYCL_INCLUDE_DIR} DIRECTORY)
|
||||||
|
SET(SYCL_INCLUDE_DIR ${SYCL_INCLUDE_DIR} ${_SYCL_INCLUDE_PARENT_DIR})
|
||||||
ELSE()
|
ELSE()
|
||||||
SET(SYCL_SYCL_FOUND FALSE)
|
SET(SYCL_SYCL_FOUND FALSE)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@@ -32,8 +32,7 @@ FIND_PATH(USD_INCLUDE_DIR
|
|||||||
DOC "Universal Scene Description (USD) header files"
|
DOC "Universal Scene Description (USD) header files"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Since USD 21.11 the libraries are prefixed with "usd_", i.e.
|
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a".
|
||||||
# "libusd_m.a" became "libusd_usd_m.a".
|
|
||||||
# See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01
|
# See https://github.com/PixarAnimationStudios/USD/blob/release/CHANGELOG.md#2111---2021-11-01
|
||||||
FIND_LIBRARY(USD_LIBRARY
|
FIND_LIBRARY(USD_LIBRARY
|
||||||
NAMES
|
NAMES
|
||||||
|
@@ -268,8 +268,7 @@ same as the Google Test name (i.e. ``suite.testcase``); see also
|
|||||||
cmake_policy(PUSH)
|
cmake_policy(PUSH)
|
||||||
cmake_policy(SET CMP0057 NEW) # if IN_LIST
|
cmake_policy(SET CMP0057 NEW) # if IN_LIST
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
||||||
function(gtest_add_tests)
|
function(gtest_add_tests)
|
||||||
|
|
||||||
if(ARGC LESS 1)
|
if(ARGC LESS 1)
|
||||||
|
@@ -40,10 +40,12 @@ macro(BLENDER_SRC_GTEST_EX)
|
|||||||
set(MANIFEST "${CMAKE_BINARY_DIR}/tests.exe.manifest")
|
set(MANIFEST "${CMAKE_BINARY_DIR}/tests.exe.manifest")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_definitions(-DBLENDER_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
|
||||||
|
add_definitions(${GFLAGS_DEFINES})
|
||||||
|
add_definitions(${GLOG_DEFINES})
|
||||||
|
|
||||||
add_executable(${TARGET_NAME} ${ARG_SRC} ${MANIFEST})
|
add_executable(${TARGET_NAME} ${ARG_SRC} ${MANIFEST})
|
||||||
setup_platform_linker_flags(${TARGET_NAME})
|
setup_platform_linker_flags(${TARGET_NAME})
|
||||||
target_compile_definitions(${TARGET_NAME} PRIVATE ${GFLAGS_DEFINES})
|
|
||||||
target_compile_definitions(${TARGET_NAME} PRIVATE ${GLOG_DEFINES})
|
|
||||||
target_include_directories(${TARGET_NAME} PUBLIC "${TEST_INC}")
|
target_include_directories(${TARGET_NAME} PUBLIC "${TEST_INC}")
|
||||||
target_include_directories(${TARGET_NAME} SYSTEM PUBLIC "${TEST_INC_SYS}")
|
target_include_directories(${TARGET_NAME} SYSTEM PUBLIC "${TEST_INC_SYS}")
|
||||||
target_link_libraries(${TARGET_NAME} ${ARG_EXTRA_LIBS} ${PLATFORM_LINKLIBS})
|
target_link_libraries(${TARGET_NAME} ${ARG_EXTRA_LIBS} ${PLATFORM_LINKLIBS})
|
||||||
|
@@ -103,6 +103,10 @@ if(EXISTS ${SOURCE_DIR}/.git)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(MY_WC_BRANCH MATCHES "^blender-v")
|
||||||
|
set(MY_WC_BRANCH "master")
|
||||||
|
endif()
|
||||||
|
|
||||||
unset(_git_below_check)
|
unset(_git_below_check)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -146,10 +150,10 @@ endif()
|
|||||||
# BUILD_PLATFORM is taken from CMake
|
# BUILD_PLATFORM is taken from CMake
|
||||||
# but BUILD_DATE and BUILD_TIME are platform dependent
|
# but BUILD_DATE and BUILD_TIME are platform dependent
|
||||||
if(NOT BUILD_DATE)
|
if(NOT BUILD_DATE)
|
||||||
string(TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC)
|
STRING(TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC)
|
||||||
endif()
|
endif()
|
||||||
if(NOT BUILD_TIME)
|
if(NOT BUILD_TIME)
|
||||||
string(TIMESTAMP BUILD_TIME "%H:%M:%S" UTC)
|
STRING(TIMESTAMP BUILD_TIME "%H:%M:%S" UTC)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Write a file with the BUILD_HASH define
|
# Write a file with the BUILD_HASH define
|
||||||
|
@@ -8,11 +8,7 @@
|
|||||||
|
|
||||||
set(WITH_ASSERT_ABORT ON CACHE BOOL "" FORCE)
|
set(WITH_ASSERT_ABORT ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_BUILDINFO OFF CACHE BOOL "" FORCE)
|
set(WITH_BUILDINFO OFF CACHE BOOL "" FORCE)
|
||||||
# Sadly ASAN is more often broken than working with MSVC do not enable it in the
|
set(WITH_COMPILER_ASAN ON CACHE BOOL "" FORCE)
|
||||||
# developer profile for now.
|
|
||||||
if(NOT WIN32)
|
|
||||||
set(WITH_COMPILER_ASAN ON CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
|
||||||
set(WITH_CYCLES_NATIVE_ONLY ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_NATIVE_ONLY ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_DOC_MANPAGE OFF CACHE BOOL "" FORCE)
|
set(WITH_DOC_MANPAGE OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_GTESTS ON CACHE BOOL "" FORCE)
|
set(WITH_GTESTS ON CACHE BOOL "" FORCE)
|
||||||
|
@@ -17,7 +17,6 @@ set(WITH_COMPOSITOR_CPU ON CACHE BOOL "" FORCE)
|
|||||||
set(WITH_CYCLES ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_CYCLES_PATH_GUIDING ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
||||||
@@ -66,11 +65,13 @@ set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE)
|
|||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(WITH_COREAUDIO ON CACHE BOOL "" FORCE)
|
set(WITH_COREAUDIO ON CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT WIN32)
|
||||||
|
set(WITH_JACK ON CACHE BOOL "" FORCE)
|
||||||
|
endif()
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(WITH_WASAPI ON CACHE BOOL "" FORCE)
|
set(WITH_WASAPI ON CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
set(WITH_JACK ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
|
set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_GHOST_XDND ON CACHE BOOL "" FORCE)
|
set(WITH_GHOST_XDND ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_PULSEAUDIO ON CACHE BOOL "" FORCE)
|
set(WITH_PULSEAUDIO ON CACHE BOOL "" FORCE)
|
||||||
|
@@ -7,6 +7,8 @@
|
|||||||
# cmake -C../blender/build_files/cmake/config/blender_lite.cmake ../blender
|
# cmake -C../blender/build_files/cmake/config/blender_lite.cmake ../blender
|
||||||
#
|
#
|
||||||
|
|
||||||
|
set(WITH_INSTALL_PORTABLE ON CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE)
|
set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_AUDASPACE OFF CACHE BOOL "" FORCE)
|
set(WITH_AUDASPACE OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_BLENDER_THUMBNAILER OFF CACHE BOOL "" FORCE)
|
set(WITH_BLENDER_THUMBNAILER OFF CACHE BOOL "" FORCE)
|
||||||
|
@@ -18,7 +18,6 @@ set(WITH_COMPOSITOR_CPU ON CACHE BOOL "" FORCE)
|
|||||||
set(WITH_CYCLES ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_CYCLES_PATH_GUIDING ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
||||||
@@ -67,11 +66,13 @@ if(APPLE)
|
|||||||
set(WITH_COREAUDIO ON CACHE BOOL "" FORCE)
|
set(WITH_COREAUDIO ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_CYCLES_DEVICE_METAL ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_DEVICE_METAL ON CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT WIN32)
|
||||||
|
set(WITH_JACK ON CACHE BOOL "" FORCE)
|
||||||
|
endif()
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(WITH_WASAPI ON CACHE BOOL "" FORCE)
|
set(WITH_WASAPI ON CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
set(WITH_JACK ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
|
set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_GHOST_XDND ON CACHE BOOL "" FORCE)
|
set(WITH_GHOST_XDND ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_PULSEAUDIO ON CACHE BOOL "" FORCE)
|
set(WITH_PULSEAUDIO ON CACHE BOOL "" FORCE)
|
||||||
|
@@ -8,81 +8,41 @@
|
|||||||
|
|
||||||
set(WITH_PYTHON_MODULE ON CACHE BOOL "" FORCE)
|
set(WITH_PYTHON_MODULE ON CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
# install into the systems python dir
|
||||||
|
set(WITH_INSTALL_PORTABLE OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# no point int copying python into python
|
||||||
# Installation Configuration.
|
|
||||||
#
|
|
||||||
# NOTE: `WITH_INSTALL_PORTABLE` always defaults to ON when building as a Python module and
|
|
||||||
# isn't set here as it makes changing the setting impractical.
|
|
||||||
# Python-developers could prefer either ON/OFF depending on their usage:
|
|
||||||
#
|
|
||||||
# - When using the system's Python, disabling will install into their `site-packages`,
|
|
||||||
# allowing them to run Python from any directory and `import bpy`.
|
|
||||||
# - When using Blender's bundled Python in `./../lib/` it will install there
|
|
||||||
# which isn't especially useful as it requires running Python from this directory too.
|
|
||||||
#
|
|
||||||
# So default `WITH_INSTALL_PORTABLE` to ON, and developers who don't use Python from `./../lib/`
|
|
||||||
# can disable it if they wish to install into their systems Python.
|
|
||||||
|
|
||||||
# There is no point in copying python into Python.
|
|
||||||
set(WITH_PYTHON_INSTALL OFF CACHE BOOL "" FORCE)
|
set(WITH_PYTHON_INSTALL OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
# disable audio, its possible some devs may want this but for now disable
|
||||||
|
# so the python module doesn't hold the audio device and loads quickly.
|
||||||
|
set(WITH_AUDASPACE OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_CODEC_FFMPEG OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_CODEC_SNDFILE OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_COREAUDIO OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_OPENAL OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_PULSEAUDIO OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_SDL OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_WASAPI OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
# other features which are not especially useful as a python module
|
||||||
|
set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_BULLET OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_NANOVDB OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_OPENCOLLADA OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_OPENVDB OFF CACHE BOOL "" FORCE)
|
||||||
|
set(WITH_X11_XINPUT OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
# Depends on Python install, do this to quiet warning.
|
# Depends on Python install, do this to quiet warning.
|
||||||
set(WITH_DRACO OFF CACHE BOOL "" FORCE)
|
set(WITH_DRACO OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
if(WIN32)
|
# Jemalloc does not work with dlopen() of Python modules:
|
||||||
set(WITH_WINDOWS_BUNDLE_CRT OFF CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Library Compatibility.
|
|
||||||
|
|
||||||
# JEMALLOC does not work with `dlopen()` of Python modules:
|
|
||||||
# https://github.com/jemalloc/jemalloc/issues/1237
|
# https://github.com/jemalloc/jemalloc/issues/1237
|
||||||
set(WITH_MEM_JEMALLOC OFF CACHE BOOL "" FORCE)
|
set(WITH_MEM_JEMALLOC OFF CACHE BOOL "" FORCE)
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Application Support.
|
|
||||||
|
|
||||||
# Not useful to include with the Python module.
|
|
||||||
# Although a way to extract this from Python could be handle,
|
|
||||||
# this would be better exposed directly via the Python API.
|
|
||||||
set(WITH_BLENDER_THUMBNAILER OFF CACHE BOOL "" FORCE)
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Audio Support.
|
|
||||||
|
|
||||||
# Disable audio, its possible some developers may want this but for now disable
|
|
||||||
# so the Python module doesn't hold the audio device and loads quickly.
|
|
||||||
set(WITH_AUDASPACE OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_OPENAL OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_SDL OFF CACHE BOOL "" FORCE)
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
set(WITH_PULSEAUDIO OFF CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(WITH_WASAPI OFF CACHE BOOL "" FORCE)
|
set(WITH_WINDOWS_BUNDLE_CRT OFF CACHE BOOL "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
if(APPLE)
|
|
||||||
set(WITH_COREAUDIO OFF CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Input Device Support.
|
|
||||||
|
|
||||||
# Other features which are not especially useful as a python module.
|
|
||||||
set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE)
|
|
||||||
if(WIN32 OR APPLE)
|
|
||||||
set(WITH_INPUT_IME OFF CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Language Support.
|
|
||||||
|
|
||||||
set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE)
|
|
||||||
|
@@ -57,25 +57,6 @@ macro(path_ensure_trailing_slash
|
|||||||
unset(_path_sep)
|
unset(_path_sep)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# Our own version of `cmake_path(IS_PREFIX ..)`.
|
|
||||||
# This can be removed when 3.20 or greater is the minimum supported version.
|
|
||||||
macro(path_is_prefix
|
|
||||||
path_prefix path result_var
|
|
||||||
)
|
|
||||||
# Remove when CMAKE version is bumped to "3.20" or greater.
|
|
||||||
# `cmake_path(IS_PREFIX ${path_prefix} ${path} NORMALIZE result_var)`
|
|
||||||
# Get the normalized paths (needed to remove `..`).
|
|
||||||
get_filename_component(_abs_prefix "${${path_prefix}}" ABSOLUTE)
|
|
||||||
get_filename_component(_abs_suffix "${${path}}" ABSOLUTE)
|
|
||||||
string(LENGTH "${_abs_prefix}" _len)
|
|
||||||
string(SUBSTRING "${_abs_suffix}" 0 "${_len}" _substr)
|
|
||||||
string(COMPARE EQUAL "${_abs_prefix}" "${_substr}" "${result_var}")
|
|
||||||
unset(_abs_prefix)
|
|
||||||
unset(_abs_suffix)
|
|
||||||
unset(_len)
|
|
||||||
unset(_substr)
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# foo_bar.spam --> foo_barMySuffix.spam
|
# foo_bar.spam --> foo_barMySuffix.spam
|
||||||
macro(file_suffix
|
macro(file_suffix
|
||||||
file_name_new file_name file_suffix
|
file_name_new file_name file_suffix
|
||||||
@@ -153,11 +134,12 @@ endfunction()
|
|||||||
|
|
||||||
# Nicer makefiles with -I/1/foo/ instead of -I/1/2/3/../../foo/
|
# Nicer makefiles with -I/1/foo/ instead of -I/1/2/3/../../foo/
|
||||||
# use it instead of include_directories()
|
# use it instead of include_directories()
|
||||||
function(absolute_include_dirs
|
function(blender_include_dirs
|
||||||
includes_absolute)
|
includes
|
||||||
|
)
|
||||||
|
|
||||||
set(_ALL_INCS "")
|
set(_ALL_INCS "")
|
||||||
foreach(_INC ${ARGN})
|
foreach(_INC ${ARGV})
|
||||||
get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
|
get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
|
||||||
list(APPEND _ALL_INCS ${_ABS_INC})
|
list(APPEND _ALL_INCS ${_ABS_INC})
|
||||||
# for checking for invalid includes, disable for regular use
|
# for checking for invalid includes, disable for regular use
|
||||||
@@ -165,24 +147,22 @@ function(absolute_include_dirs
|
|||||||
# message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
|
# message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
|
||||||
# endif()
|
# endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
include_directories(${_ALL_INCS})
|
||||||
set(${includes_absolute} ${_ALL_INCS} PARENT_SCOPE)
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(blender_target_include_dirs
|
function(blender_include_dirs_sys
|
||||||
name
|
includes
|
||||||
)
|
)
|
||||||
|
|
||||||
absolute_include_dirs(_ALL_INCS ${ARGN})
|
set(_ALL_INCS "")
|
||||||
target_include_directories(${name} PRIVATE ${_ALL_INCS})
|
foreach(_INC ${ARGV})
|
||||||
endfunction()
|
get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
|
||||||
|
list(APPEND _ALL_INCS ${_ABS_INC})
|
||||||
function(blender_target_include_dirs_sys
|
# if(NOT EXISTS "${_ABS_INC}/")
|
||||||
name
|
# message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
|
||||||
)
|
# endif()
|
||||||
|
endforeach()
|
||||||
absolute_include_dirs(_ALL_INCS ${ARGN})
|
include_directories(SYSTEM ${_ALL_INCS})
|
||||||
target_include_directories(${name} SYSTEM PRIVATE ${_ALL_INCS})
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Set include paths for header files included with "*.h" syntax.
|
# Set include paths for header files included with "*.h" syntax.
|
||||||
@@ -288,10 +268,12 @@ function(blender_add_lib__impl
|
|||||||
|
|
||||||
# message(STATUS "Configuring library ${name}")
|
# message(STATUS "Configuring library ${name}")
|
||||||
|
|
||||||
add_library(${name} ${sources})
|
# include_directories(${includes})
|
||||||
|
# include_directories(SYSTEM ${includes_sys})
|
||||||
|
blender_include_dirs("${includes}")
|
||||||
|
blender_include_dirs_sys("${includes_sys}")
|
||||||
|
|
||||||
blender_target_include_dirs(${name} ${includes})
|
add_library(${name} ${sources})
|
||||||
blender_target_include_dirs_sys(${name} ${includes_sys})
|
|
||||||
|
|
||||||
# On Windows certain libraries have two sets of binaries: one for debug builds and one for
|
# On Windows certain libraries have two sets of binaries: one for debug builds and one for
|
||||||
# release builds. The root of this requirement goes into ABI, I believe, but that's outside
|
# release builds. The root of this requirement goes into ABI, I believe, but that's outside
|
||||||
@@ -400,7 +382,7 @@ function(blender_add_test_suite)
|
|||||||
cmake_parse_arguments(ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
cmake_parse_arguments(ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
# Figure out the release dir, as some tests need files from there.
|
# Figure out the release dir, as some tests need files from there.
|
||||||
get_blender_test_install_dir(TEST_INSTALL_DIR)
|
GET_BLENDER_TEST_INSTALL_DIR(TEST_INSTALL_DIR)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(_test_release_dir ${TEST_INSTALL_DIR}/Blender.app/Contents/Resources/${BLENDER_VERSION})
|
set(_test_release_dir ${TEST_INSTALL_DIR}/Blender.app/Contents/Resources/${BLENDER_VERSION})
|
||||||
else()
|
else()
|
||||||
@@ -443,21 +425,21 @@ function(blender_add_test_lib
|
|||||||
|
|
||||||
# This duplicates logic that's also in GTestTesting.cmake, macro BLENDER_SRC_GTEST_EX.
|
# This duplicates logic that's also in GTestTesting.cmake, macro BLENDER_SRC_GTEST_EX.
|
||||||
# TODO(Sybren): deduplicate after the general approach in D7649 has been approved.
|
# TODO(Sybren): deduplicate after the general approach in D7649 has been approved.
|
||||||
list(APPEND includes
|
LIST(APPEND includes
|
||||||
${CMAKE_SOURCE_DIR}/tests/gtests
|
${CMAKE_SOURCE_DIR}/tests/gtests
|
||||||
)
|
)
|
||||||
list(APPEND includes_sys
|
LIST(APPEND includes_sys
|
||||||
${GLOG_INCLUDE_DIRS}
|
${GLOG_INCLUDE_DIRS}
|
||||||
${GFLAGS_INCLUDE_DIRS}
|
${GFLAGS_INCLUDE_DIRS}
|
||||||
${CMAKE_SOURCE_DIR}/extern/gtest/include
|
${CMAKE_SOURCE_DIR}/extern/gtest/include
|
||||||
${CMAKE_SOURCE_DIR}/extern/gmock/include
|
${CMAKE_SOURCE_DIR}/extern/gmock/include
|
||||||
)
|
)
|
||||||
|
add_definitions(-DBLENDER_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
|
||||||
|
add_definitions(${GFLAGS_DEFINES})
|
||||||
|
add_definitions(${GLOG_DEFINES})
|
||||||
|
|
||||||
blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
|
blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
|
||||||
|
|
||||||
target_compile_definitions(${name} PRIVATE ${GFLAGS_DEFINES})
|
|
||||||
target_compile_definitions(${name} PRIVATE ${GLOG_DEFINES})
|
|
||||||
|
|
||||||
set_property(GLOBAL APPEND PROPERTY BLENDER_TEST_LIBS ${name})
|
set_property(GLOBAL APPEND PROPERTY BLENDER_TEST_LIBS ${name})
|
||||||
|
|
||||||
blender_add_test_suite(
|
blender_add_test_suite(
|
||||||
@@ -487,16 +469,16 @@ function(blender_add_test_executable
|
|||||||
## Otherwise external projects will produce warnings that we cannot fix.
|
## Otherwise external projects will produce warnings that we cannot fix.
|
||||||
remove_strict_flags()
|
remove_strict_flags()
|
||||||
|
|
||||||
blender_src_gtest_ex(
|
include_directories(${includes})
|
||||||
|
include_directories(${includes_sys})
|
||||||
|
|
||||||
|
BLENDER_SRC_GTEST_EX(
|
||||||
NAME ${name}
|
NAME ${name}
|
||||||
SRC "${sources}"
|
SRC "${sources}"
|
||||||
EXTRA_LIBS "${library_deps}"
|
EXTRA_LIBS "${library_deps}"
|
||||||
SKIP_ADD_TEST
|
SKIP_ADD_TEST
|
||||||
)
|
)
|
||||||
|
|
||||||
blender_target_include_dirs(${name}_test ${includes})
|
|
||||||
blender_target_include_dirs_sys(${name}_test ${includes_sys})
|
|
||||||
|
|
||||||
blender_add_test_suite(
|
blender_add_test_suite(
|
||||||
TARGET ${name}_test
|
TARGET ${name}_test
|
||||||
SUITE_NAME ${name}
|
SUITE_NAME ${name}
|
||||||
@@ -531,11 +513,6 @@ function(setup_platform_linker_flags
|
|||||||
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " ${PLATFORM_LINKFLAGS}")
|
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " ${PLATFORM_LINKFLAGS}")
|
||||||
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " ${PLATFORM_LINKFLAGS_RELEASE}")
|
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_RELEASE " ${PLATFORM_LINKFLAGS_RELEASE}")
|
||||||
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_DEBUG " ${PLATFORM_LINKFLAGS_DEBUG}")
|
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS_DEBUG " ${PLATFORM_LINKFLAGS_DEBUG}")
|
||||||
|
|
||||||
get_target_property(target_type ${target} TYPE)
|
|
||||||
if (target_type STREQUAL "EXECUTABLE")
|
|
||||||
set_property(TARGET ${target} APPEND_STRING PROPERTY LINK_FLAGS " ${PLATFORM_LINKFLAGS_EXECUTABLE}")
|
|
||||||
endif()
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# Platform specific libraries for targets.
|
# Platform specific libraries for targets.
|
||||||
@@ -783,7 +760,7 @@ function(ADD_CHECK_C_COMPILER_FLAG
|
|||||||
|
|
||||||
include(CheckCCompilerFlag)
|
include(CheckCCompilerFlag)
|
||||||
|
|
||||||
check_c_compiler_flag("${_FLAG}" "${_CACHE_VAR}")
|
CHECK_C_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
|
||||||
if(${_CACHE_VAR})
|
if(${_CACHE_VAR})
|
||||||
# message(STATUS "Using CFLAG: ${_FLAG}")
|
# message(STATUS "Using CFLAG: ${_FLAG}")
|
||||||
set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}" PARENT_SCOPE)
|
set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}" PARENT_SCOPE)
|
||||||
@@ -800,7 +777,7 @@ function(ADD_CHECK_CXX_COMPILER_FLAG
|
|||||||
|
|
||||||
include(CheckCXXCompilerFlag)
|
include(CheckCXXCompilerFlag)
|
||||||
|
|
||||||
check_cxx_compiler_flag("${_FLAG}" "${_CACHE_VAR}")
|
CHECK_CXX_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
|
||||||
if(${_CACHE_VAR})
|
if(${_CACHE_VAR})
|
||||||
# message(STATUS "Using CXXFLAG: ${_FLAG}")
|
# message(STATUS "Using CXXFLAG: ${_FLAG}")
|
||||||
set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}" PARENT_SCOPE)
|
set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}" PARENT_SCOPE)
|
||||||
@@ -818,11 +795,9 @@ function(get_blender_version)
|
|||||||
# - BLENDER_VERSION_PATCH
|
# - BLENDER_VERSION_PATCH
|
||||||
# - BLENDER_VERSION_CYCLE (alpha, beta, rc, release)
|
# - BLENDER_VERSION_CYCLE (alpha, beta, rc, release)
|
||||||
|
|
||||||
# So CMAKE depends on `BKE_blender.h`, beware of infinite-loops!
|
# So cmake depends on BKE_blender.h, beware of inf-loops!
|
||||||
configure_file(
|
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h
|
||||||
${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h
|
${CMAKE_BINARY_DIR}/source/blender/blenkernel/BKE_blender_version.h.done)
|
||||||
${CMAKE_BINARY_DIR}/source/blender/blenkernel/BKE_blender_version.h.done
|
|
||||||
)
|
|
||||||
|
|
||||||
file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$")
|
file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$")
|
||||||
|
|
||||||
@@ -1014,8 +989,7 @@ function(data_to_c_simple_icons
|
|||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${_file_from} ${_file_to}
|
OUTPUT ${_file_from} ${_file_to}
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
|
||||||
# COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py
|
# COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py ${_path_from_abs} ${_file_from}
|
||||||
# ${_path_from_abs} ${_file_from}
|
|
||||||
COMMAND "$<TARGET_FILE:datatoc_icon>" ${_path_from_abs} ${_file_from}
|
COMMAND "$<TARGET_FILE:datatoc_icon>" ${_path_from_abs} ${_file_from}
|
||||||
COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
|
COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
@@ -1093,27 +1067,23 @@ function(msgfmt_simple
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(find_python_package
|
function(find_python_package
|
||||||
package
|
package
|
||||||
relative_include_dir
|
relative_include_dir
|
||||||
)
|
)
|
||||||
|
|
||||||
string(TOUPPER ${package} _upper_package)
|
string(TOUPPER ${package} _upper_package)
|
||||||
|
|
||||||
# Set but invalid.
|
# set but invalid
|
||||||
if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND
|
if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND
|
||||||
(NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND))
|
(NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND))
|
||||||
# if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}")
|
# if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}")
|
||||||
# message(
|
# message(WARNING "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in '${PYTHON_${_upper_package}_PATH}' "
|
||||||
# WARNING
|
# "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python")
|
||||||
# "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in "
|
# set(WITH_PYTHON_INSTALL${_upper_package} OFF)
|
||||||
# "'${PYTHON_${_upper_package}_PATH}' "
|
# endif()
|
||||||
# "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing Python"
|
# not set, so initialize
|
||||||
# )
|
|
||||||
# set(WITH_PYTHON_INSTALL${_upper_package} OFF)
|
|
||||||
# endif()
|
|
||||||
# Not set, so initialize.
|
|
||||||
else()
|
else()
|
||||||
string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}")
|
string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}")
|
||||||
list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR)
|
list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR)
|
||||||
|
|
||||||
# re-cache
|
# re-cache
|
||||||
@@ -1214,6 +1184,8 @@ macro(openmp_delayload
|
|||||||
if(WITH_OPENMP)
|
if(WITH_OPENMP)
|
||||||
if(MSVC_CLANG)
|
if(MSVC_CLANG)
|
||||||
set(OPENMP_DLL_NAME "libomp")
|
set(OPENMP_DLL_NAME "libomp")
|
||||||
|
elseif(MSVC_VERSION EQUAL 1800)
|
||||||
|
set(OPENMP_DLL_NAME "vcomp120")
|
||||||
else()
|
else()
|
||||||
set(OPENMP_DLL_NAME "vcomp140")
|
set(OPENMP_DLL_NAME "vcomp140")
|
||||||
endif()
|
endif()
|
||||||
@@ -1229,31 +1201,23 @@ macro(set_and_warn_dependency
|
|||||||
_dependency _setting _val)
|
_dependency _setting _val)
|
||||||
# when $_dependency is disabled, forces $_setting = $_val
|
# when $_dependency is disabled, forces $_setting = $_val
|
||||||
if(NOT ${${_dependency}} AND ${${_setting}})
|
if(NOT ${${_dependency}} AND ${${_setting}})
|
||||||
if(WITH_STRICT_BUILD_OPTIONS)
|
message(STATUS "'${_dependency}' is disabled: forcing 'set(${_setting} ${_val})'")
|
||||||
message(SEND_ERROR "${_dependency} disabled but required by ${_setting}")
|
|
||||||
else()
|
|
||||||
message(STATUS "${_dependency} is disabled, setting ${_setting}=${_val}")
|
|
||||||
endif()
|
|
||||||
set(${_setting} ${_val})
|
set(${_setting} ${_val})
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(set_and_warn_library_found
|
|
||||||
_library_name _library_found _setting)
|
|
||||||
if(((NOT ${_library_found}) OR (NOT ${${_library_found}})) AND ${${_setting}})
|
|
||||||
if(WITH_STRICT_BUILD_OPTIONS)
|
|
||||||
message(SEND_ERROR "${_library_name} required but not found")
|
|
||||||
else()
|
|
||||||
message(STATUS "${_library_name} not found, disabling ${_setting}")
|
|
||||||
endif()
|
|
||||||
set(${_setting} OFF)
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(without_system_libs_begin)
|
macro(without_system_libs_begin)
|
||||||
set(CMAKE_IGNORE_PATH "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES};${CMAKE_SYSTEM_INCLUDE_PATH};${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES};${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}")
|
set(CMAKE_IGNORE_PATH "${CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES};${CMAKE_SYSTEM_INCLUDE_PATH};${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES};${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}")
|
||||||
|
if(APPLE)
|
||||||
|
# Avoid searching for headers in frameworks (like Mono), and libraries in LIBDIR.
|
||||||
|
set(CMAKE_FIND_FRAMEWORK NEVER)
|
||||||
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(without_system_libs_end)
|
macro(without_system_libs_end)
|
||||||
unset(CMAKE_IGNORE_PATH)
|
unset(CMAKE_IGNORE_PATH)
|
||||||
|
if(APPLE)
|
||||||
|
# FIRST is the default.
|
||||||
|
set(CMAKE_FIND_FRAMEWORK FIRST)
|
||||||
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
@@ -17,9 +17,9 @@ set(CPACK_PACKAGE_VENDOR ${PROJECT_VENDOR})
|
|||||||
set(CPACK_PACKAGE_CONTACT ${PROJECT_CONTACT})
|
set(CPACK_PACKAGE_CONTACT ${PROJECT_CONTACT})
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
|
||||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")
|
SET(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")
|
SET(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
|
SET(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
|
||||||
|
|
||||||
|
|
||||||
# Get the build revision, note that this can get out-of-sync, so for packaging run cmake first.
|
# Get the build revision, note that this can get out-of-sync, so for packaging run cmake first.
|
||||||
@@ -48,7 +48,7 @@ if(MSVC)
|
|||||||
else()
|
else()
|
||||||
set(PACKAGE_ARCH windows32)
|
set(PACKAGE_ARCH windows32)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else(MSVC)
|
||||||
set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -106,8 +106,8 @@ if(WIN32)
|
|||||||
set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:medium)
|
set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:medium)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CPACK_PACKAGE_EXECUTABLES "blender-launcher" "Blender ${MAJOR_VERSION}.${MINOR_VERSION}")
|
set(CPACK_PACKAGE_EXECUTABLES "blender-launcher" "Blender")
|
||||||
set(CPACK_CREATE_DESKTOP_LINKS "blender-launcher" "Blender ${MAJOR_VERSION}.${MINOR_VERSION}")
|
set(CPACK_CREATE_DESKTOP_LINKS "blender-launcher" "Blender")
|
||||||
|
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
|
||||||
|
@@ -30,7 +30,7 @@ macro(add_bundled_libraries library)
|
|||||||
list(APPEND PLATFORM_BUNDLED_LIBRARY_DIRS ${_library_dir})
|
list(APPEND PLATFORM_BUNDLED_LIBRARY_DIRS ${_library_dir})
|
||||||
unset(_all_library_versions)
|
unset(_all_library_versions)
|
||||||
unset(_library_dir)
|
unset(_library_dir)
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# ------------------------------------------------------------------------
|
# ------------------------------------------------------------------------
|
||||||
@@ -43,18 +43,22 @@ find_package(BZip2 REQUIRED)
|
|||||||
list(APPEND ZLIB_LIBRARIES ${BZIP2_LIBRARIES})
|
list(APPEND ZLIB_LIBRARIES ${BZIP2_LIBRARIES})
|
||||||
|
|
||||||
if(WITH_OPENAL)
|
if(WITH_OPENAL)
|
||||||
find_package(OpenAL REQUIRED)
|
find_package(OpenAL)
|
||||||
|
if(NOT OPENAL_FOUND)
|
||||||
|
message(WARNING "OpenAL not found, disabling WITH_OPENAL")
|
||||||
|
set(WITH_OPENAL OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_JACK)
|
if(WITH_JACK)
|
||||||
find_library(JACK_FRAMEWORK
|
find_library(JACK_FRAMEWORK
|
||||||
NAMES jackmp
|
NAMES jackmp
|
||||||
)
|
)
|
||||||
|
if(NOT JACK_FRAMEWORK)
|
||||||
if(JACK_FRAMEWORK)
|
message(STATUS "JACK not found, disabling WITH_JACK")
|
||||||
set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers)
|
set(WITH_JACK OFF)
|
||||||
else()
|
else()
|
||||||
set_and_warn_library_found("JACK" JACK_FRAMEWORK WITH_JACK)
|
set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -71,15 +75,6 @@ if(NOT EXISTS "${LIBDIR}/")
|
|||||||
message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
|
message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Avoid searching for headers since this would otherwise override our lib
|
|
||||||
# directory as well as PYTHON_ROOT_DIR.
|
|
||||||
set(CMAKE_FIND_FRAMEWORK NEVER)
|
|
||||||
|
|
||||||
# Optionally use system Python if PYTHON_ROOT_DIR is specified.
|
|
||||||
if(WITH_PYTHON AND (WITH_PYTHON_MODULE AND PYTHON_ROOT_DIR))
|
|
||||||
find_package(PythonLibsUnix REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Prefer lib directory paths
|
# Prefer lib directory paths
|
||||||
file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
|
file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
|
||||||
set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
|
set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
|
||||||
@@ -97,23 +92,10 @@ if(WITH_ALEMBIC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_USD)
|
if(WITH_USD)
|
||||||
find_package(USD REQUIRED)
|
find_package(USD)
|
||||||
endif()
|
if(NOT USD_FOUND)
|
||||||
|
message(STATUS "USD not found, disabling WITH_USD")
|
||||||
if(WITH_VULKAN_BACKEND)
|
set(WITH_USD OFF)
|
||||||
find_package(MoltenVK REQUIRED)
|
|
||||||
|
|
||||||
if(EXISTS ${LIBDIR}/vulkan)
|
|
||||||
set(VULKAN_FOUND On)
|
|
||||||
set(VULKAN_ROOT_DIR ${LIBDIR}/vulkan/macOS)
|
|
||||||
set(VULKAN_INCLUDE_DIR ${VULKAN_ROOT_DIR}/include)
|
|
||||||
set(VULKAN_LIBRARY ${VULKAN_ROOT_DIR}/lib/libvulkan.1.dylib)
|
|
||||||
|
|
||||||
set(VULKAN_INCLUDE_DIRS ${VULKAN_INCLUDE_DIR} ${MOLTENVK_INCLUDE_DIRS})
|
|
||||||
set(VULKAN_LIBRARIES ${VULKAN_LIBRARY} ${MOLTENVK_LIBRARIES})
|
|
||||||
else()
|
|
||||||
message(WARNING "Vulkan SDK was not found, disabling WITH_VULKAN_BACKEND")
|
|
||||||
set(WITH_VULKAN_BACKEND OFF)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -141,8 +123,34 @@ if(WITH_CODEC_SNDFILE)
|
|||||||
unset(_sndfile_VORBISENC_LIBRARY)
|
unset(_sndfile_VORBISENC_LIBRARY)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_PYTHON AND NOT (WITH_PYTHON_MODULE AND PYTHON_ROOT_DIR))
|
if(WITH_PYTHON)
|
||||||
find_package(PythonLibsUnix REQUIRED)
|
# Use precompiled libraries by default.
|
||||||
|
set(PYTHON_VERSION 3.10)
|
||||||
|
if(NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
|
||||||
|
# Normally cached but not since we include them with blender.
|
||||||
|
set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}")
|
||||||
|
set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}")
|
||||||
|
set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}.a)
|
||||||
|
set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
|
||||||
|
else()
|
||||||
|
# Module must be compiled against Python framework.
|
||||||
|
set(_py_framework "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}")
|
||||||
|
set(PYTHON_INCLUDE_DIR "${_py_framework}/include/python${PYTHON_VERSION}")
|
||||||
|
set(PYTHON_EXECUTABLE "${_py_framework}/bin/python${PYTHON_VERSION}")
|
||||||
|
set(PYTHON_LIBPATH "${_py_framework}/lib/python${PYTHON_VERSION}")
|
||||||
|
unset(_py_framework)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# uncached vars
|
||||||
|
set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
|
||||||
|
set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
|
||||||
|
|
||||||
|
# needed for Audaspace, numpy is installed into python site-packages
|
||||||
|
set(PYTHON_NUMPY_INCLUDE_DIRS "${PYTHON_LIBPATH}/site-packages/numpy/core/include")
|
||||||
|
|
||||||
|
if(NOT EXISTS "${PYTHON_EXECUTABLE}")
|
||||||
|
message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_FFTW3)
|
if(WITH_FFTW3)
|
||||||
@@ -205,6 +213,11 @@ if(WITH_JACK)
|
|||||||
string(APPEND PLATFORM_LINKFLAGS " -F/Library/Frameworks -weak_framework jackmp")
|
string(APPEND PLATFORM_LINKFLAGS " -F/Library/Frameworks -weak_framework jackmp")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_PYTHON_MODULE OR WITH_PYTHON_FRAMEWORK)
|
||||||
|
# force cmake to link right framework
|
||||||
|
string(APPEND PLATFORM_LINKFLAGS " /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENCOLLADA)
|
if(WITH_OPENCOLLADA)
|
||||||
find_package(OpenCOLLADA)
|
find_package(OpenCOLLADA)
|
||||||
find_library(PCRE_LIBRARIES NAMES pcre HINTS ${LIBDIR}/opencollada/lib)
|
find_library(PCRE_LIBRARIES NAMES pcre HINTS ${LIBDIR}/opencollada/lib)
|
||||||
@@ -236,12 +249,20 @@ find_package(JPEG REQUIRED)
|
|||||||
|
|
||||||
if(WITH_IMAGE_TIFF)
|
if(WITH_IMAGE_TIFF)
|
||||||
set(TIFF_ROOT ${LIBDIR}/tiff)
|
set(TIFF_ROOT ${LIBDIR}/tiff)
|
||||||
find_package(TIFF REQUIRED)
|
find_package(TIFF)
|
||||||
|
if(NOT TIFF_FOUND)
|
||||||
|
message(WARNING "TIFF not found, disabling WITH_IMAGE_TIFF")
|
||||||
|
set(WITH_IMAGE_TIFF OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_WEBP)
|
if(WITH_IMAGE_WEBP)
|
||||||
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
||||||
find_package(WebP REQUIRED)
|
find_package(WebP)
|
||||||
|
if(NOT WEBP_FOUND)
|
||||||
|
message(WARNING "WebP not found, disabling WITH_IMAGE_WEBP")
|
||||||
|
set(WITH_IMAGE_WEBP OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_BOOST)
|
if(WITH_BOOST)
|
||||||
@@ -271,7 +292,11 @@ if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_PUGIXML)
|
if(WITH_PUGIXML)
|
||||||
find_package(PugiXML REQUIRED)
|
find_package(PugiXML)
|
||||||
|
if(NOT PUGIXML_FOUND)
|
||||||
|
message(WARNING "PugiXML not found, disabling WITH_PUGIXML")
|
||||||
|
set(WITH_PUGIXML OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENIMAGEIO)
|
if(WITH_OPENIMAGEIO)
|
||||||
@@ -289,7 +314,12 @@ if(WITH_OPENIMAGEIO)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENCOLORIO)
|
if(WITH_OPENCOLORIO)
|
||||||
find_package(OpenColorIO 2.0.0 REQUIRED)
|
find_package(OpenColorIO 2.0.0)
|
||||||
|
|
||||||
|
if(NOT OPENCOLORIO_FOUND)
|
||||||
|
set(WITH_OPENCOLORIO OFF)
|
||||||
|
message(STATUS "OpenColorIO not found, disabling WITH_OPENCOLORIO")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENVDB)
|
if(WITH_OPENVDB)
|
||||||
@@ -316,18 +346,38 @@ if(WITH_LLVM)
|
|||||||
if(WITH_CLANG)
|
if(WITH_CLANG)
|
||||||
find_package(Clang)
|
find_package(Clang)
|
||||||
if(NOT CLANG_FOUND)
|
if(NOT CLANG_FOUND)
|
||||||
message(FATAL_ERROR "Clang not found.")
|
message(FATAL_ERROR "Clang not found.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
||||||
find_package(OSL REQUIRED)
|
set(CYCLES_OSL ${LIBDIR}/osl)
|
||||||
|
|
||||||
|
find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
|
||||||
|
find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
|
||||||
|
find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
|
||||||
|
# WARNING! depends on correct order of OSL libs linking
|
||||||
|
list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
|
||||||
|
find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
|
||||||
|
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
|
||||||
|
find_path(OSL_SHADER_DIR NAMES stdosl.h PATHS ${CYCLES_OSL}/share/OSL/shaders)
|
||||||
|
|
||||||
|
if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER AND OSL_SHADER_DIR)
|
||||||
|
set(OSL_FOUND TRUE)
|
||||||
|
else()
|
||||||
|
message(WARNING "OSL not found, disabling WITH_CYCLES_OSL")
|
||||||
|
set(WITH_CYCLES_OSL OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
||||||
find_package(Embree 3.8.0 REQUIRED)
|
find_package(Embree 3.8.0 REQUIRED)
|
||||||
|
# Increase stack size for Embree, only works for executables.
|
||||||
|
if(NOT WITH_PYTHON_MODULE)
|
||||||
|
string(APPEND PLATFORM_LINKFLAGS " -Wl,-stack_size,0x100000")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Embree static library linking can mix up SSE and AVX symbols, causing
|
# Embree static library linking can mix up SSE and AVX symbols, causing
|
||||||
# crashes on macOS systems with older CPUs that don't have AVX. Using
|
# crashes on macOS systems with older CPUs that don't have AVX. Using
|
||||||
@@ -341,15 +391,28 @@ if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENIMAGEDENOISE)
|
if(WITH_OPENIMAGEDENOISE)
|
||||||
find_package(OpenImageDenoise REQUIRED)
|
find_package(OpenImageDenoise)
|
||||||
|
|
||||||
|
if(NOT OPENIMAGEDENOISE_FOUND)
|
||||||
|
set(WITH_OPENIMAGEDENOISE OFF)
|
||||||
|
message(STATUS "OpenImageDenoise not found, disabling WITH_OPENIMAGEDENOISE")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_TBB)
|
if(WITH_TBB)
|
||||||
find_package(TBB REQUIRED)
|
find_package(TBB)
|
||||||
|
if(NOT TBB_FOUND)
|
||||||
|
message(WARNING "TBB not found, disabling WITH_TBB")
|
||||||
|
set(WITH_TBB OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_POTRACE)
|
if(WITH_POTRACE)
|
||||||
find_package(Potrace REQUIRED)
|
find_package(Potrace)
|
||||||
|
if(NOT POTRACE_FOUND)
|
||||||
|
message(WARNING "potrace not found, disabling WITH_POTRACE")
|
||||||
|
set(WITH_POTRACE OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags.
|
# CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags.
|
||||||
@@ -369,26 +432,26 @@ if(WITH_OPENMP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XR_OPENXR)
|
if(WITH_XR_OPENXR)
|
||||||
find_package(XR_OpenXR_SDK REQUIRED)
|
find_package(XR_OpenXR_SDK)
|
||||||
|
if(NOT XR_OPENXR_SDK_FOUND)
|
||||||
|
message(WARNING "OpenXR-SDK was not found, disabling WITH_XR_OPENXR")
|
||||||
|
set(WITH_XR_OPENXR OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
if(WITH_GMP)
|
||||||
find_package(GMP REQUIRED)
|
find_package(GMP)
|
||||||
|
if(NOT GMP_FOUND)
|
||||||
|
message(WARNING "GMP not found, disabling WITH_GMP")
|
||||||
|
set(WITH_GMP OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_HARU)
|
if(WITH_HARU)
|
||||||
find_package(Haru REQUIRED)
|
find_package(Haru)
|
||||||
endif()
|
if(NOT HARU_FOUND)
|
||||||
|
message(WARNING "Haru not found, disabling WITH_HARU")
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING)
|
set(WITH_HARU OFF)
|
||||||
find_package(openpgl QUIET)
|
|
||||||
if(openpgl_FOUND)
|
|
||||||
get_target_property(OPENPGL_LIBRARIES openpgl::openpgl LOCATION)
|
|
||||||
get_target_property(OPENPGL_INCLUDE_DIR openpgl::openpgl INTERFACE_INCLUDE_DIRECTORIES)
|
|
||||||
message(STATUS "Found OpenPGL: ${OPENPGL_LIBRARIES}")
|
|
||||||
else()
|
|
||||||
set(WITH_CYCLES_PATH_GUIDING OFF)
|
|
||||||
message(STATUS "OpenPGL not found, disabling WITH_CYCLES_PATH_GUIDING")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -399,9 +462,6 @@ if(EXISTS ${LIBDIR})
|
|||||||
without_system_libs_end()
|
without_system_libs_end()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Restore to default.
|
|
||||||
set(CMAKE_FIND_FRAMEWORK FIRST)
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
# Set compiler and linker flags.
|
# Set compiler and linker flags.
|
||||||
|
|
||||||
@@ -434,9 +494,6 @@ string(APPEND PLATFORM_LINKFLAGS
|
|||||||
string(APPEND CMAKE_CXX_FLAGS " -stdlib=libc++")
|
string(APPEND CMAKE_CXX_FLAGS " -stdlib=libc++")
|
||||||
string(APPEND PLATFORM_LINKFLAGS " -stdlib=libc++")
|
string(APPEND PLATFORM_LINKFLAGS " -stdlib=libc++")
|
||||||
|
|
||||||
# Make stack size more similar to Embree, required for Embree.
|
|
||||||
string(APPEND PLATFORM_LINKFLAGS_EXECUTABLE " -Wl,-stack_size,0x100000")
|
|
||||||
|
|
||||||
# Suppress ranlib "has no symbols" warnings (workaround for T48250)
|
# Suppress ranlib "has no symbols" warnings (workaround for T48250)
|
||||||
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||||
|
@@ -16,15 +16,13 @@ if(NOT DEFINED LIBDIR)
|
|||||||
# Choose the best suitable libraries.
|
# Choose the best suitable libraries.
|
||||||
if(EXISTS ${LIBDIR_NATIVE_ABI})
|
if(EXISTS ${LIBDIR_NATIVE_ABI})
|
||||||
set(LIBDIR ${LIBDIR_NATIVE_ABI})
|
set(LIBDIR ${LIBDIR_NATIVE_ABI})
|
||||||
set(WITH_LIBC_MALLOC_HOOK_WORKAROUND True)
|
|
||||||
elseif(EXISTS ${LIBDIR_CENTOS7_ABI})
|
elseif(EXISTS ${LIBDIR_CENTOS7_ABI})
|
||||||
set(LIBDIR ${LIBDIR_CENTOS7_ABI})
|
set(LIBDIR ${LIBDIR_CENTOS7_ABI})
|
||||||
set(WITH_CXX11_ABI OFF)
|
set(WITH_CXX11_ABI OFF)
|
||||||
if(WITH_MEM_JEMALLOC)
|
|
||||||
# jemalloc provides malloc hooks.
|
if(CMAKE_COMPILER_IS_GNUCC AND
|
||||||
set(WITH_LIBC_MALLOC_HOOK_WORKAROUND False)
|
CMAKE_C_COMPILER_VERSION VERSION_LESS 9.3)
|
||||||
else()
|
message(FATAL_ERROR "GCC version must be at least 9.3 for precompiled libraries, found ${CMAKE_C_COMPILER_VERSION}")
|
||||||
set(WITH_LIBC_MALLOC_HOOK_WORKAROUND True)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -89,7 +87,7 @@ macro(add_bundled_libraries library)
|
|||||||
file(GLOB _all_library_versions ${LIBDIR}/${library}/lib/*\.so*)
|
file(GLOB _all_library_versions ${LIBDIR}/${library}/lib/*\.so*)
|
||||||
list(APPEND PLATFORM_BUNDLED_LIBRARIES ${_all_library_versions})
|
list(APPEND PLATFORM_BUNDLED_LIBRARIES ${_all_library_versions})
|
||||||
unset(_all_library_versions)
|
unset(_all_library_versions)
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
@@ -108,10 +106,6 @@ find_package_wrapper(ZLIB REQUIRED)
|
|||||||
find_package_wrapper(Zstd REQUIRED)
|
find_package_wrapper(Zstd REQUIRED)
|
||||||
find_package_wrapper(Epoxy REQUIRED)
|
find_package_wrapper(Epoxy REQUIRED)
|
||||||
|
|
||||||
if(WITH_VULKAN_BACKEND)
|
|
||||||
find_package_wrapper(Vulkan REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
function(check_freetype_for_brotli)
|
function(check_freetype_for_brotli)
|
||||||
include(CheckSymbolExists)
|
include(CheckSymbolExists)
|
||||||
set(CMAKE_REQUIRED_INCLUDES ${FREETYPE_INCLUDE_DIRS})
|
set(CMAKE_REQUIRED_INCLUDES ${FREETYPE_INCLUDE_DIRS})
|
||||||
@@ -142,60 +136,44 @@ if(NOT WITH_SYSTEM_FREETYPE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_PYTHON)
|
if(WITH_PYTHON)
|
||||||
# This could be used, see: D14954 for details.
|
# No way to set py35, remove for now.
|
||||||
# `find_package(PythonLibs)`
|
# find_package(PythonLibs)
|
||||||
|
|
||||||
# Use our own instead, since without Python is such a rare case,
|
# Use our own instead, since without py is such a rare case,
|
||||||
# require this package.
|
# require this package
|
||||||
# XXX: Linking errors with Debian static Python (sigh).
|
# XXX Linking errors with debian static python :/
|
||||||
# find_package_wrapper(PythonLibsUnix REQUIRED)
|
# find_package_wrapper(PythonLibsUnix REQUIRED)
|
||||||
find_package(PythonLibsUnix REQUIRED)
|
find_package(PythonLibsUnix REQUIRED)
|
||||||
|
|
||||||
if(WITH_PYTHON_MODULE AND NOT WITH_INSTALL_PORTABLE)
|
|
||||||
# Installing into `site-packages`, warn when installing into `./../lib/`
|
|
||||||
# which script authors almost certainly don't want.
|
|
||||||
if(EXISTS ${LIBDIR})
|
|
||||||
path_is_prefix(LIBDIR PYTHON_SITE_PACKAGES _is_prefix)
|
|
||||||
if(_is_prefix)
|
|
||||||
message(WARNING "
|
|
||||||
Building Blender with the following configuration:
|
|
||||||
- WITH_PYTHON_MODULE=ON
|
|
||||||
- WITH_INSTALL_PORTABLE=OFF
|
|
||||||
- LIBDIR=\"${LIBDIR}\"
|
|
||||||
- PYTHON_SITE_PACKAGES=\"${PYTHON_SITE_PACKAGES}\"
|
|
||||||
In this case you may want to either:
|
|
||||||
- Use the system Python's site-packages, see:
|
|
||||||
python -c \"import site; print(site.getsitepackages()[0])\"
|
|
||||||
- Set WITH_INSTALL_PORTABLE=ON to create a stand-alone \"bpy\" module
|
|
||||||
which you will need to ensure is in Python's module search path.
|
|
||||||
Proceeding with PYTHON_SITE_PACKAGES install target, you have been warned!"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
unset(_is_prefix)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_OPENEXR)
|
if(WITH_IMAGE_OPENEXR)
|
||||||
find_package_wrapper(OpenEXR) # our own module
|
find_package_wrapper(OpenEXR) # our own module
|
||||||
set_and_warn_library_found("OpenEXR" OPENEXR_FOUND WITH_IMAGE_OPENEXR)
|
if(NOT OPENEXR_FOUND)
|
||||||
|
set(WITH_IMAGE_OPENEXR OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_OPENJPEG)
|
if(WITH_IMAGE_OPENJPEG)
|
||||||
find_package_wrapper(OpenJPEG)
|
find_package_wrapper(OpenJPEG)
|
||||||
set_and_warn_library_found("OpenJPEG" OPENJPEG_FOUND WITH_IMAGE_OPENJPEG)
|
if(NOT OPENJPEG_FOUND)
|
||||||
|
set(WITH_IMAGE_OPENJPEG OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_TIFF)
|
if(WITH_IMAGE_TIFF)
|
||||||
# XXX Linking errors with debian static tiff :/
|
# XXX Linking errors with debian static tiff :/
|
||||||
# find_package_wrapper(TIFF)
|
# find_package_wrapper(TIFF)
|
||||||
find_package(TIFF)
|
find_package(TIFF)
|
||||||
set_and_warn_library_found("TIFF" TIFF_FOUND WITH_IMAGE_TIFF)
|
if(NOT TIFF_FOUND)
|
||||||
|
set(WITH_IMAGE_TIFF OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENAL)
|
if(WITH_OPENAL)
|
||||||
find_package_wrapper(OpenAL)
|
find_package_wrapper(OpenAL)
|
||||||
set_and_warn_library_found("OpenAL" OPENAL_FOUND WITH_OPENAL)
|
if(NOT OPENAL_FOUND)
|
||||||
|
set(WITH_OPENAL OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_SDL)
|
if(WITH_SDL)
|
||||||
@@ -217,14 +195,18 @@ if(WITH_SDL)
|
|||||||
SDL_LIBRARY
|
SDL_LIBRARY
|
||||||
)
|
)
|
||||||
# unset(SDLMAIN_LIBRARY CACHE)
|
# unset(SDLMAIN_LIBRARY CACHE)
|
||||||
set_and_warn_library_found("SDL" SDL_FOUND WITH_SDL)
|
if(NOT SDL_FOUND)
|
||||||
|
set(WITH_SDL OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Codecs
|
# Codecs
|
||||||
if(WITH_CODEC_SNDFILE)
|
if(WITH_CODEC_SNDFILE)
|
||||||
find_package_wrapper(SndFile)
|
find_package_wrapper(SndFile)
|
||||||
set_and_warn_library_found("libsndfile" SNDFILE_FOUND WITH_CODEC_SNDFILE)
|
if(NOT SNDFILE_FOUND)
|
||||||
|
set(WITH_CODEC_SNDFILE OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CODEC_FFMPEG)
|
if(WITH_CODEC_FFMPEG)
|
||||||
@@ -252,12 +234,17 @@ if(WITH_CODEC_FFMPEG)
|
|||||||
endif()
|
endif()
|
||||||
find_package(FFmpeg)
|
find_package(FFmpeg)
|
||||||
|
|
||||||
set_and_warn_library_found("FFmpeg" FFMPEG_FOUND WITH_CODEC_FFMPEG)
|
if(NOT FFMPEG_FOUND)
|
||||||
|
set(WITH_CODEC_FFMPEG OFF)
|
||||||
|
message(STATUS "FFmpeg not found, disabling it")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_FFTW3)
|
if(WITH_FFTW3)
|
||||||
find_package_wrapper(Fftw3)
|
find_package_wrapper(Fftw3)
|
||||||
set_and_warn_library_found("fftw3" FFTW3_FOUND WITH_FFTW3)
|
if(NOT FFTW3_FOUND)
|
||||||
|
set(WITH_FFTW3 OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENCOLLADA)
|
if(WITH_OPENCOLLADA)
|
||||||
@@ -272,23 +259,25 @@ if(WITH_OPENCOLLADA)
|
|||||||
endif()
|
endif()
|
||||||
find_package_wrapper(XML2)
|
find_package_wrapper(XML2)
|
||||||
else()
|
else()
|
||||||
set_and_warn_library_found("OpenCollada" OPENCOLLADA_FOUND WITH_OPENCOLLADA)
|
set(WITH_OPENCOLLADA OFF)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_MEM_JEMALLOC)
|
if(WITH_MEM_JEMALLOC)
|
||||||
find_package_wrapper(JeMalloc)
|
find_package_wrapper(JeMalloc)
|
||||||
set_and_warn_library_found("JeMalloc" JEMALLOC_FOUND WITH_MEM_JEMALLOC)
|
if(NOT JEMALLOC_FOUND)
|
||||||
|
set(WITH_MEM_JEMALLOC OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_INPUT_NDOF)
|
if(WITH_INPUT_NDOF)
|
||||||
find_package_wrapper(Spacenav)
|
find_package_wrapper(Spacenav)
|
||||||
set_and_warn_library_found("SpaceNav" SPACENAV_FOUND WITH_INPUT_NDOF)
|
|
||||||
|
|
||||||
if(SPACENAV_FOUND)
|
if(SPACENAV_FOUND)
|
||||||
# use generic names within blenders buildsystem.
|
# use generic names within blenders buildsystem.
|
||||||
set(NDOF_INCLUDE_DIRS ${SPACENAV_INCLUDE_DIRS})
|
set(NDOF_INCLUDE_DIRS ${SPACENAV_INCLUDE_DIRS})
|
||||||
set(NDOF_LIBRARIES ${SPACENAV_LIBRARIES})
|
set(NDOF_LIBRARIES ${SPACENAV_LIBRARIES})
|
||||||
|
else()
|
||||||
|
set(WITH_INPUT_NDOF OFF)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -298,8 +287,6 @@ if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
|||||||
set(OSL_ROOT ${CYCLES_OSL})
|
set(OSL_ROOT ${CYCLES_OSL})
|
||||||
endif()
|
endif()
|
||||||
find_package_wrapper(OSL)
|
find_package_wrapper(OSL)
|
||||||
set_and_warn_library_found("OSL" OSL_FOUND WITH_CYCLES_OSL)
|
|
||||||
|
|
||||||
if(OSL_FOUND)
|
if(OSL_FOUND)
|
||||||
if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")
|
if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")
|
||||||
# Note: --whole-archive is needed to force loading of all symbols in liboslexec,
|
# Note: --whole-archive is needed to force loading of all symbols in liboslexec,
|
||||||
@@ -310,43 +297,45 @@ if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
|||||||
-Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY}
|
-Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "OSL not found, disabling it from Cycles")
|
||||||
|
set(WITH_CYCLES_OSL OFF)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_DEVICE_ONEAPI)
|
if(WITH_CYCLES_DEVICE_ONEAPI)
|
||||||
set(CYCLES_LEVEL_ZERO ${LIBDIR}/level-zero CACHE PATH "Path to Level Zero installation")
|
set(CYCLES_LEVEL_ZERO ${LIBDIR}/level-zero CACHE PATH "Path to Level Zero installation")
|
||||||
if(EXISTS ${CYCLES_LEVEL_ZERO} AND NOT LEVEL_ZERO_ROOT_DIR)
|
if(EXISTS ${CYCLES_LEVEL_ZERO} AND NOT LEVEL_ZERO_ROOT_DIR)
|
||||||
set(LEVEL_ZERO_ROOT_DIR ${CYCLES_LEVEL_ZERO})
|
set(LEVEL_ZERO_ROOT_DIR ${CYCLES_LEVEL_ZERO})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CYCLES_SYCL ${LIBDIR}/dpcpp CACHE PATH "Path to oneAPI DPC++ compiler")
|
set(CYCLES_SYCL ${LIBDIR}/dpcpp CACHE PATH "Path to DPC++ and SYCL installation")
|
||||||
if(EXISTS ${CYCLES_SYCL} AND NOT SYCL_ROOT_DIR)
|
if(EXISTS ${CYCLES_SYCL} AND NOT SYCL_ROOT_DIR)
|
||||||
set(SYCL_ROOT_DIR ${CYCLES_SYCL})
|
set(SYCL_ROOT_DIR ${CYCLES_SYCL})
|
||||||
endif()
|
endif()
|
||||||
file(GLOB _sycl_runtime_libraries
|
|
||||||
${SYCL_ROOT_DIR}/lib/libsycl.so
|
|
||||||
${SYCL_ROOT_DIR}/lib/libsycl.so.*
|
|
||||||
${SYCL_ROOT_DIR}/lib/libpi_*.so
|
|
||||||
)
|
|
||||||
list(FILTER _sycl_runtime_libraries EXCLUDE REGEX ".*\.py")
|
|
||||||
list(REMOVE_ITEM _sycl_runtime_libraries "${SYCL_ROOT_DIR}/lib/libpi_opencl.so")
|
|
||||||
list(APPEND PLATFORM_BUNDLED_LIBRARIES ${_sycl_runtime_libraries})
|
|
||||||
unset(_sycl_runtime_libraries)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENVDB)
|
if(WITH_OPENVDB)
|
||||||
find_package_wrapper(OpenVDB)
|
find_package_wrapper(OpenVDB)
|
||||||
set_and_warn_library_found("OpenVDB" OPENVDB_FOUND WITH_OPENVDB)
|
find_package_wrapper(Blosc)
|
||||||
|
|
||||||
if(OPENVDB_FOUND)
|
if(NOT OPENVDB_FOUND)
|
||||||
find_package_wrapper(Blosc)
|
set(WITH_OPENVDB OFF)
|
||||||
set_and_warn_library_found("Blosc" BLOSC_FOUND WITH_OPENVDB_BLOSC)
|
set(WITH_OPENVDB_BLOSC OFF)
|
||||||
|
message(STATUS "OpenVDB not found, disabling it")
|
||||||
|
elseif(NOT BLOSC_FOUND)
|
||||||
|
set(WITH_OPENVDB_BLOSC OFF)
|
||||||
|
message(STATUS "Blosc not found, disabling it for OpenVBD")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_NANOVDB)
|
if(WITH_NANOVDB)
|
||||||
find_package_wrapper(NanoVDB)
|
find_package_wrapper(NanoVDB)
|
||||||
set_and_warn_library_found("NanoVDB" NANOVDB_FOUND WITH_NANOVDB)
|
|
||||||
|
if(NOT NANOVDB_FOUND)
|
||||||
|
set(WITH_NANOVDB OFF)
|
||||||
|
message(STATUS "NanoVDB not found, disabling it")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CPU_SIMD AND SUPPORT_NEON_BUILD)
|
if(WITH_CPU_SIMD AND SUPPORT_NEON_BUILD)
|
||||||
@@ -355,12 +344,18 @@ endif()
|
|||||||
|
|
||||||
if(WITH_ALEMBIC)
|
if(WITH_ALEMBIC)
|
||||||
find_package_wrapper(Alembic)
|
find_package_wrapper(Alembic)
|
||||||
set_and_warn_library_found("Alembic" ALEMBIC_FOUND WITH_ALEMBIC)
|
|
||||||
|
if(NOT ALEMBIC_FOUND)
|
||||||
|
set(WITH_ALEMBIC OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_USD)
|
if(WITH_USD)
|
||||||
find_package_wrapper(USD)
|
find_package_wrapper(USD)
|
||||||
set_and_warn_library_found("USD" USD_FOUND WITH_USD)
|
|
||||||
|
if(NOT USD_FOUND)
|
||||||
|
set(WITH_USD OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_BOOST)
|
if(WITH_BOOST)
|
||||||
@@ -413,13 +408,20 @@ endif()
|
|||||||
|
|
||||||
if(WITH_PUGIXML)
|
if(WITH_PUGIXML)
|
||||||
find_package_wrapper(PugiXML)
|
find_package_wrapper(PugiXML)
|
||||||
set_and_warn_library_found("PugiXML" PUGIXML_FOUND WITH_PUGIXML)
|
|
||||||
|
if(NOT PUGIXML_FOUND)
|
||||||
|
set(WITH_PUGIXML OFF)
|
||||||
|
message(STATUS "PugiXML not found, disabling WITH_PUGIXML")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_WEBP)
|
if(WITH_IMAGE_WEBP)
|
||||||
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
||||||
find_package_wrapper(WebP)
|
find_package_wrapper(WebP)
|
||||||
set_and_warn_library_found("WebP" WEBP_FOUND WITH_IMAGE_WEBP)
|
if(NOT WEBP_FOUND)
|
||||||
|
set(WITH_IMAGE_WEBP OFF)
|
||||||
|
message(WARNING "WebP not found, disabling WITH_IMAGE_WEBP")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENIMAGEIO)
|
if(WITH_OPENIMAGEIO)
|
||||||
@@ -444,7 +446,10 @@ if(WITH_OPENIMAGEIO)
|
|||||||
list(APPEND OPENIMAGEIO_LIBRARIES "${WEBP_LIBRARIES}")
|
list(APPEND OPENIMAGEIO_LIBRARIES "${WEBP_LIBRARIES}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set_and_warn_library_found("OPENIMAGEIO" OPENIMAGEIO_FOUND WITH_OPENIMAGEIO)
|
if(NOT OPENIMAGEIO_FOUND)
|
||||||
|
set(WITH_OPENIMAGEIO OFF)
|
||||||
|
message(STATUS "OpenImageIO not found, disabling WITH_CYCLES")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENCOLORIO)
|
if(WITH_OPENCOLORIO)
|
||||||
@@ -454,7 +459,10 @@ if(WITH_OPENCOLORIO)
|
|||||||
set(OPENCOLORIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
|
set(OPENCOLORIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
|
||||||
set(OPENCOLORIO_DEFINITIONS)
|
set(OPENCOLORIO_DEFINITIONS)
|
||||||
|
|
||||||
set_and_warn_library_found("OpenColorIO" OPENCOLORIO_FOUND WITH_OPENCOLORIO)
|
if(NOT OPENCOLORIO_FOUND)
|
||||||
|
set(WITH_OPENCOLORIO OFF)
|
||||||
|
message(STATUS "OpenColorIO not found")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
||||||
@@ -463,7 +471,11 @@ endif()
|
|||||||
|
|
||||||
if(WITH_OPENIMAGEDENOISE)
|
if(WITH_OPENIMAGEDENOISE)
|
||||||
find_package_wrapper(OpenImageDenoise)
|
find_package_wrapper(OpenImageDenoise)
|
||||||
set_and_warn_library_found("OpenImageDenoise" OPENIMAGEDENOISE_FOUND WITH_OPENIMAGEDENOISE)
|
|
||||||
|
if(NOT OPENIMAGEDENOISE_FOUND)
|
||||||
|
set(WITH_OPENIMAGEDENOISE OFF)
|
||||||
|
message(STATUS "OpenImageDenoise not found")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_LLVM)
|
if(WITH_LLVM)
|
||||||
@@ -472,19 +484,24 @@ if(WITH_LLVM)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package_wrapper(LLVM)
|
find_package_wrapper(LLVM)
|
||||||
set_and_warn_library_found("LLVM" LLVM_FOUND WITH_LLVM)
|
if(WITH_CLANG)
|
||||||
|
find_package_wrapper(Clang)
|
||||||
if(LLVM_FOUND)
|
endif()
|
||||||
if(WITH_CLANG)
|
# Symbol conflicts with same UTF library used by OpenCollada
|
||||||
find_package_wrapper(Clang)
|
if(EXISTS ${LIBDIR})
|
||||||
set_and_warn_library_found("Clang" CLANG_FOUND WITH_CLANG)
|
if(WITH_OPENCOLLADA AND (${LLVM_VERSION} VERSION_LESS "4.0.0"))
|
||||||
|
list(REMOVE_ITEM OPENCOLLADA_LIBRARIES ${OPENCOLLADA_UTF_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Symbol conflicts with same UTF library used by OpenCollada
|
if(NOT LLVM_FOUND)
|
||||||
if(EXISTS ${LIBDIR})
|
set(WITH_LLVM OFF)
|
||||||
if(WITH_OPENCOLLADA AND (${LLVM_VERSION} VERSION_LESS "4.0.0"))
|
set(WITH_CLANG OFF)
|
||||||
list(REMOVE_ITEM OPENCOLLADA_LIBRARIES ${OPENCOLLADA_UTF_LIBRARY})
|
message(STATUS "LLVM not found")
|
||||||
endif()
|
else()
|
||||||
|
if(NOT CLANG_FOUND)
|
||||||
|
set(WITH_CLANG OFF)
|
||||||
|
message(STATUS "Clang not found")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@@ -495,43 +512,49 @@ if(WITH_OPENSUBDIV)
|
|||||||
set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBRARIES})
|
set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBRARIES})
|
||||||
set(OPENSUBDIV_LIBPATH) # TODO, remove and reference the absolute path everywhere
|
set(OPENSUBDIV_LIBPATH) # TODO, remove and reference the absolute path everywhere
|
||||||
|
|
||||||
set_and_warn_library_found("OpenSubdiv" OPENSUBDIV_FOUND WITH_OPENSUBDIV)
|
if(NOT OPENSUBDIV_FOUND)
|
||||||
|
set(WITH_OPENSUBDIV OFF)
|
||||||
|
message(STATUS "OpenSubdiv not found")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_TBB)
|
if(WITH_TBB)
|
||||||
find_package_wrapper(TBB)
|
find_package_wrapper(TBB)
|
||||||
set_and_warn_library_found("TBB" TBB_FOUND WITH_TBB)
|
if(NOT TBB_FOUND)
|
||||||
|
message(WARNING "TBB not found, disabling WITH_TBB")
|
||||||
|
set(WITH_TBB OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XR_OPENXR)
|
if(WITH_XR_OPENXR)
|
||||||
find_package(XR_OpenXR_SDK)
|
find_package(XR_OpenXR_SDK)
|
||||||
set_and_warn_library_found("OpenXR-SDK" XR_OPENXR_SDK_FOUND WITH_XR_OPENXR)
|
if(NOT XR_OPENXR_SDK_FOUND)
|
||||||
|
message(WARNING "OpenXR-SDK not found, disabling WITH_XR_OPENXR")
|
||||||
|
set(WITH_XR_OPENXR OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
if(WITH_GMP)
|
||||||
find_package_wrapper(GMP)
|
find_package_wrapper(GMP)
|
||||||
set_and_warn_library_found("GMP" GMP_FOUND WITH_GMP)
|
if(NOT GMP_FOUND)
|
||||||
|
message(WARNING "GMP not found, disabling WITH_GMP")
|
||||||
|
set(WITH_GMP OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_POTRACE)
|
if(WITH_POTRACE)
|
||||||
find_package_wrapper(Potrace)
|
find_package_wrapper(Potrace)
|
||||||
set_and_warn_library_found("Potrace" POTRACE_FOUND WITH_POTRACE)
|
if(NOT POTRACE_FOUND)
|
||||||
|
message(WARNING "potrace not found, disabling WITH_POTRACE")
|
||||||
|
set(WITH_POTRACE OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_HARU)
|
if(WITH_HARU)
|
||||||
find_package_wrapper(Haru)
|
find_package_wrapper(Haru)
|
||||||
set_and_warn_library_found("Haru" HARU_FOUND WITH_HARU)
|
if(NOT HARU_FOUND)
|
||||||
endif()
|
message(WARNING "Haru not found, disabling WITH_HARU")
|
||||||
|
set(WITH_HARU OFF)
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING)
|
|
||||||
find_package_wrapper(openpgl)
|
|
||||||
if(openpgl_FOUND)
|
|
||||||
get_target_property(OPENPGL_LIBRARIES openpgl::openpgl LOCATION)
|
|
||||||
get_target_property(OPENPGL_INCLUDE_DIR openpgl::openpgl INTERFACE_INCLUDE_DIRECTORIES)
|
|
||||||
message(STATUS "Found OpenPGL: ${OPENPGL_LIBRARIES}")
|
|
||||||
else()
|
|
||||||
set(WITH_CYCLES_PATH_GUIDING OFF)
|
|
||||||
message(STATUS "OpenPGL not found, disabling WITH_CYCLES_PATH_GUIDING")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -607,41 +630,37 @@ endif()
|
|||||||
# Jack is intended to use the system library.
|
# Jack is intended to use the system library.
|
||||||
if(WITH_JACK)
|
if(WITH_JACK)
|
||||||
find_package_wrapper(Jack)
|
find_package_wrapper(Jack)
|
||||||
set_and_warn_library_found("JACK" JACK_FOUND WITH_JACK)
|
if(NOT JACK_FOUND)
|
||||||
|
set(WITH_JACK OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Pulse is intended to use the system library.
|
# Pulse is intended to use the system library.
|
||||||
if(WITH_PULSEAUDIO)
|
if(WITH_PULSEAUDIO)
|
||||||
find_package_wrapper(Pulse)
|
find_package_wrapper(Pulse)
|
||||||
set_and_warn_library_found("PulseAudio" PULSE_FOUND WITH_PULSEAUDIO)
|
if(NOT PULSE_FOUND)
|
||||||
|
set(WITH_PULSEAUDIO OFF)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Audio IO
|
# Audio IO
|
||||||
if(WITH_SYSTEM_AUDASPACE)
|
if(WITH_SYSTEM_AUDASPACE)
|
||||||
find_package_wrapper(Audaspace)
|
find_package_wrapper(Audaspace)
|
||||||
set(AUDASPACE_FOUND ${AUDASPACE_FOUND} AND ${AUDASPACE_C_FOUND})
|
if(NOT AUDASPACE_FOUND OR NOT AUDASPACE_C_FOUND)
|
||||||
set_and_warn_library_found("External Audaspace" AUDASPACE_FOUND WITH_SYSTEM_AUDASPACE)
|
message(FATAL_ERROR "Audaspace external library not found!")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GHOST_WAYLAND)
|
if(WITH_GHOST_WAYLAND)
|
||||||
find_package(PkgConfig)
|
find_package(PkgConfig)
|
||||||
|
pkg_check_modules(wayland-client wayland-client>=1.12)
|
||||||
|
pkg_check_modules(wayland-egl wayland-egl)
|
||||||
|
pkg_check_modules(wayland-scanner wayland-scanner)
|
||||||
pkg_check_modules(xkbcommon xkbcommon)
|
pkg_check_modules(xkbcommon xkbcommon)
|
||||||
|
pkg_check_modules(wayland-cursor wayland-cursor)
|
||||||
|
pkg_check_modules(wayland-protocols wayland-protocols>=1.15)
|
||||||
|
|
||||||
# When dynamically linked WAYLAND is used and `${LIBDIR}/wayland` is present,
|
if(${wayland-protocols_FOUND})
|
||||||
# there is no need to search for the libraries as they are not needed for building.
|
|
||||||
# Only the headers are needed which can reference the known paths.
|
|
||||||
if(EXISTS "${LIBDIR}/wayland" AND WITH_GHOST_WAYLAND_DYNLOAD)
|
|
||||||
set(_use_system_wayland OFF)
|
|
||||||
else()
|
|
||||||
set(_use_system_wayland ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(_use_system_wayland)
|
|
||||||
pkg_check_modules(wayland-client wayland-client>=1.12)
|
|
||||||
pkg_check_modules(wayland-egl wayland-egl)
|
|
||||||
pkg_check_modules(wayland-scanner wayland-scanner)
|
|
||||||
pkg_check_modules(wayland-cursor wayland-cursor)
|
|
||||||
pkg_check_modules(wayland-protocols wayland-protocols>=1.15)
|
|
||||||
pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
|
pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
|
||||||
else()
|
else()
|
||||||
# CentOS 7 packages have too old a version, a newer version exist in the
|
# CentOS 7 packages have too old a version, a newer version exist in the
|
||||||
@@ -655,24 +674,32 @@ if(WITH_GHOST_WAYLAND)
|
|||||||
if(EXISTS ${WAYLAND_PROTOCOLS_DIR})
|
if(EXISTS ${WAYLAND_PROTOCOLS_DIR})
|
||||||
set(wayland-protocols_FOUND ON)
|
set(wayland-protocols_FOUND ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(wayland-client_INCLUDE_DIRS "${LIBDIR}/wayland/include")
|
|
||||||
set(wayland-egl_INCLUDE_DIRS "${LIBDIR}/wayland/include")
|
|
||||||
set(wayland-cursor_INCLUDE_DIRS "${LIBDIR}/wayland/include")
|
|
||||||
|
|
||||||
set(wayland-client_FOUND ON)
|
|
||||||
set(wayland-egl_FOUND ON)
|
|
||||||
set(wayland-scanner_FOUND ON)
|
|
||||||
set(wayland-cursor_FOUND ON)
|
|
||||||
endif()
|
endif()
|
||||||
mark_as_advanced(WAYLAND_PROTOCOLS_DIR)
|
|
||||||
|
|
||||||
set_and_warn_library_found("wayland-client" wayland-client_FOUND WITH_GHOST_WAYLAND)
|
if (NOT ${wayland-client_FOUND})
|
||||||
set_and_warn_library_found("wayland-egl" wayland-egl_FOUND WITH_GHOST_WAYLAND)
|
message(STATUS "wayland-client not found, disabling WITH_GHOST_WAYLAND")
|
||||||
set_and_warn_library_found("wayland-scanner" wayland-scanner_FOUND WITH_GHOST_WAYLAND)
|
set(WITH_GHOST_WAYLAND OFF)
|
||||||
set_and_warn_library_found("wayland-cursor" wayland-cursor_FOUND WITH_GHOST_WAYLAND)
|
endif()
|
||||||
set_and_warn_library_found("wayland-protocols" wayland-protocols_FOUND WITH_GHOST_WAYLAND)
|
if (NOT ${wayland-egl_FOUND})
|
||||||
set_and_warn_library_found("xkbcommon" xkbcommon_FOUND WITH_GHOST_WAYLAND)
|
message(STATUS "wayland-egl not found, disabling WITH_GHOST_WAYLAND")
|
||||||
|
set(WITH_GHOST_WAYLAND OFF)
|
||||||
|
endif()
|
||||||
|
if (NOT ${wayland-scanner_FOUND})
|
||||||
|
message(STATUS "wayland-scanner not found, disabling WITH_GHOST_WAYLAND")
|
||||||
|
set(WITH_GHOST_WAYLAND OFF)
|
||||||
|
endif()
|
||||||
|
if (NOT ${wayland-cursor_FOUND})
|
||||||
|
message(STATUS "wayland-cursor not found, disabling WITH_GHOST_WAYLAND")
|
||||||
|
set(WITH_GHOST_WAYLAND OFF)
|
||||||
|
endif()
|
||||||
|
if (NOT ${wayland-protocols_FOUND})
|
||||||
|
message(STATUS "wayland-protocols not found, disabling WITH_GHOST_WAYLAND")
|
||||||
|
set(WITH_GHOST_WAYLAND OFF)
|
||||||
|
endif()
|
||||||
|
if (NOT ${xkbcommon_FOUND})
|
||||||
|
message(STATUS "xkbcommon not found, disabling WITH_GHOST_WAYLAND")
|
||||||
|
set(WITH_GHOST_WAYLAND OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WITH_GHOST_WAYLAND)
|
if(WITH_GHOST_WAYLAND)
|
||||||
if(WITH_GHOST_WAYLAND_DBUS)
|
if(WITH_GHOST_WAYLAND_DBUS)
|
||||||
@@ -680,63 +707,39 @@ if(WITH_GHOST_WAYLAND)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
||||||
if(_use_system_wayland)
|
pkg_check_modules(libdecor REQUIRED libdecor-0>=0.1)
|
||||||
pkg_check_modules(libdecor REQUIRED libdecor-0>=0.1)
|
endif()
|
||||||
else()
|
|
||||||
set(libdecor_INCLUDE_DIRS "${LIBDIR}/wayland_libdecor/include/libdecor-0")
|
list(APPEND PLATFORM_LINKLIBS
|
||||||
endif()
|
${xkbcommon_LINK_LIBRARIES}
|
||||||
|
)
|
||||||
|
|
||||||
|
if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
|
||||||
|
list(APPEND PLATFORM_LINKLIBS
|
||||||
|
${wayland-client_LINK_LIBRARIES}
|
||||||
|
${wayland-egl_LINK_LIBRARIES}
|
||||||
|
${wayland-cursor_LINK_LIBRARIES}
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GHOST_WAYLAND_DBUS)
|
if(WITH_GHOST_WAYLAND_DBUS)
|
||||||
|
list(APPEND PLATFORM_LINKLIBS
|
||||||
|
${dbus_LINK_LIBRARIES}
|
||||||
|
)
|
||||||
add_definitions(-DWITH_GHOST_WAYLAND_DBUS)
|
add_definitions(-DWITH_GHOST_WAYLAND_DBUS)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
if(WITH_GHOST_WAYLAND_LIBDECOR)
|
||||||
|
if(NOT WITH_GHOST_WAYLAND_DYNLOAD)
|
||||||
|
list(APPEND PLATFORM_LINKLIBS
|
||||||
|
${libdecor_LIBRARIES}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
add_definitions(-DWITH_GHOST_WAYLAND_LIBDECOR)
|
add_definitions(-DWITH_GHOST_WAYLAND_LIBDECOR)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(EXISTS "${LIBDIR}/wayland/bin/wayland-scanner")
|
pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner)
|
||||||
set(WAYLAND_SCANNER "${LIBDIR}/wayland/bin/wayland-scanner")
|
|
||||||
else()
|
|
||||||
pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner)
|
|
||||||
endif()
|
|
||||||
mark_as_advanced(WAYLAND_SCANNER)
|
|
||||||
|
|
||||||
# When using dynamic loading, headers generated
|
|
||||||
# from older versions of `wayland-scanner` aren't compatible.
|
|
||||||
if(WITH_GHOST_WAYLAND_DYNLOAD)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${WAYLAND_SCANNER} --version
|
|
||||||
# The version is written to the `stderr`.
|
|
||||||
ERROR_VARIABLE _wayland_scanner_out
|
|
||||||
ERROR_STRIP_TRAILING_WHITESPACE
|
|
||||||
)
|
|
||||||
if(NOT "${_wayland_scanner_out}" STREQUAL "")
|
|
||||||
string(
|
|
||||||
REGEX REPLACE
|
|
||||||
"^wayland-scanner[ \t]+([0-9]+)\.([0-9]+).*"
|
|
||||||
"\\1.\\2"
|
|
||||||
_wayland_scanner_ver
|
|
||||||
"${_wayland_scanner_out}"
|
|
||||||
)
|
|
||||||
if("${_wayland_scanner_ver}" VERSION_LESS "1.20")
|
|
||||||
message(
|
|
||||||
FATAL_ERROR
|
|
||||||
"Found ${WAYLAND_SCANNER} version \"${_wayland_scanner_ver}\", "
|
|
||||||
"the minimum version is 1.20!"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
unset(_wayland_scanner_ver)
|
|
||||||
else()
|
|
||||||
message(WARNING "Unable to access the version from ${WAYLAND_SCANNER}, continuing.")
|
|
||||||
endif()
|
|
||||||
unset(_wayland_scanner_out)
|
|
||||||
endif()
|
|
||||||
# End wayland-scanner version check.
|
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
unset(_use_system_wayland)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GHOST_X11)
|
if(WITH_GHOST_X11)
|
||||||
@@ -745,8 +748,12 @@ if(WITH_GHOST_X11)
|
|||||||
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
|
find_path(X11_XF86keysym_INCLUDE_PATH X11/XF86keysym.h ${X11_INC_SEARCH_PATH})
|
||||||
mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
|
mark_as_advanced(X11_XF86keysym_INCLUDE_PATH)
|
||||||
|
|
||||||
|
list(APPEND PLATFORM_LINKLIBS ${X11_X11_LIB})
|
||||||
|
|
||||||
if(WITH_X11_XINPUT)
|
if(WITH_X11_XINPUT)
|
||||||
if(NOT X11_Xinput_LIB)
|
if(X11_Xinput_LIB)
|
||||||
|
list(APPEND PLATFORM_LINKLIBS ${X11_Xinput_LIB})
|
||||||
|
else()
|
||||||
message(FATAL_ERROR "LibXi not found. Disable WITH_X11_XINPUT if you
|
message(FATAL_ERROR "LibXi not found. Disable WITH_X11_XINPUT if you
|
||||||
want to build without tablet support")
|
want to build without tablet support")
|
||||||
endif()
|
endif()
|
||||||
@@ -756,14 +763,18 @@ if(WITH_GHOST_X11)
|
|||||||
# XXX, why doesn't cmake make this available?
|
# XXX, why doesn't cmake make this available?
|
||||||
find_library(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
|
find_library(X11_Xxf86vmode_LIB Xxf86vm ${X11_LIB_SEARCH_PATH})
|
||||||
mark_as_advanced(X11_Xxf86vmode_LIB)
|
mark_as_advanced(X11_Xxf86vmode_LIB)
|
||||||
if(NOT X11_Xxf86vmode_LIB)
|
if(X11_Xxf86vmode_LIB)
|
||||||
|
list(APPEND PLATFORM_LINKLIBS ${X11_Xxf86vmode_LIB})
|
||||||
|
else()
|
||||||
message(FATAL_ERROR "libXxf86vm not found. Disable WITH_X11_XF86VMODE if you
|
message(FATAL_ERROR "libXxf86vm not found. Disable WITH_X11_XF86VMODE if you
|
||||||
want to build without")
|
want to build without")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_X11_XFIXES)
|
if(WITH_X11_XFIXES)
|
||||||
if(NOT X11_Xfixes_LIB)
|
if(X11_Xfixes_LIB)
|
||||||
|
list(APPEND PLATFORM_LINKLIBS ${X11_Xfixes_LIB})
|
||||||
|
else()
|
||||||
message(FATAL_ERROR "libXfixes not found. Disable WITH_X11_XFIXES if you
|
message(FATAL_ERROR "libXfixes not found. Disable WITH_X11_XFIXES if you
|
||||||
want to build without")
|
want to build without")
|
||||||
endif()
|
endif()
|
||||||
@@ -772,7 +783,9 @@ if(WITH_GHOST_X11)
|
|||||||
if(WITH_X11_ALPHA)
|
if(WITH_X11_ALPHA)
|
||||||
find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
|
find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH})
|
||||||
mark_as_advanced(X11_Xrender_LIB)
|
mark_as_advanced(X11_Xrender_LIB)
|
||||||
if(NOT X11_Xrender_LIB)
|
if(X11_Xrender_LIB)
|
||||||
|
list(APPEND PLATFORM_LINKLIBS ${X11_Xrender_LIB})
|
||||||
|
else()
|
||||||
message(FATAL_ERROR "libXrender not found. Disable WITH_X11_ALPHA if you
|
message(FATAL_ERROR "libXrender not found. Disable WITH_X11_ALPHA if you
|
||||||
want to build without")
|
want to build without")
|
||||||
endif()
|
endif()
|
||||||
@@ -1012,7 +1025,7 @@ function(CONFIGURE_ATOMIC_LIB_IF_NEEDED)
|
|||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
configure_atomic_lib_if_needed()
|
CONFIGURE_ATOMIC_LIB_IF_NEEDED()
|
||||||
|
|
||||||
if(PLATFORM_BUNDLED_LIBRARIES)
|
if(PLATFORM_BUNDLED_LIBRARIES)
|
||||||
# For the installed Python module and installed Blender executable, we set the
|
# For the installed Python module and installed Blender executable, we set the
|
||||||
|
@@ -26,7 +26,7 @@ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
set(OPENMP_FOUND ON)
|
set(OPENMP_FOUND ON)
|
||||||
set(OpenMP_C_FLAGS "/clang:-fopenmp")
|
set(OpenMP_C_FLAGS "/clang:-fopenmp")
|
||||||
set(OpenMP_CXX_FLAGS "/clang:-fopenmp")
|
set(OpenMP_CXX_FLAGS "/clang:-fopenmp")
|
||||||
get_filename_component(LLVMROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\LLVM\\LLVM;]" ABSOLUTE CACHE)
|
GET_FILENAME_COMPONENT(LLVMROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\LLVM\\LLVM;]" ABSOLUTE CACHE)
|
||||||
set(CLANG_OPENMP_DLL "${LLVMROOT}/bin/libomp.dll")
|
set(CLANG_OPENMP_DLL "${LLVMROOT}/bin/libomp.dll")
|
||||||
set(CLANG_OPENMP_LIB "${LLVMROOT}/lib/libomp.lib")
|
set(CLANG_OPENMP_LIB "${LLVMROOT}/lib/libomp.lib")
|
||||||
if(NOT EXISTS "${CLANG_OPENMP_DLL}")
|
if(NOT EXISTS "${CLANG_OPENMP_DLL}")
|
||||||
@@ -74,6 +74,27 @@ add_definitions(-DWIN32)
|
|||||||
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
|
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
|
||||||
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
||||||
|
|
||||||
|
# Minimum MSVC Version
|
||||||
|
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
||||||
|
if(MSVC_VERSION EQUAL 1800)
|
||||||
|
set(_min_ver "18.0.31101")
|
||||||
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"Visual Studio 2013 (Update 4, ${_min_ver}) required, "
|
||||||
|
"found (${CMAKE_CXX_COMPILER_VERSION})")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(MSVC_VERSION EQUAL 1900)
|
||||||
|
set(_min_ver "19.0.24210")
|
||||||
|
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"Visual Studio 2015 (Update 3, ${_min_ver}) required, "
|
||||||
|
"found (${CMAKE_CXX_COMPILER_VERSION})")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
unset(_min_ver)
|
||||||
|
|
||||||
# needed for some MSVC installations
|
# needed for some MSVC installations
|
||||||
# 4099 : PDB 'filename' was not found with 'object/library'
|
# 4099 : PDB 'filename' was not found with 'object/library'
|
||||||
string(APPEND CMAKE_EXE_LINKER_FLAGS " /SAFESEH:NO /ignore:4099")
|
string(APPEND CMAKE_EXE_LINKER_FLAGS " /SAFESEH:NO /ignore:4099")
|
||||||
@@ -137,7 +158,7 @@ endif()
|
|||||||
|
|
||||||
|
|
||||||
# C++ standards conformace (/permissive-) is available on msvc 15.5 (1912) and up
|
# C++ standards conformace (/permissive-) is available on msvc 15.5 (1912) and up
|
||||||
if(NOT MSVC_CLANG)
|
if(MSVC_VERSION GREATER 1911 AND NOT MSVC_CLANG)
|
||||||
string(APPEND CMAKE_CXX_FLAGS " /permissive-")
|
string(APPEND CMAKE_CXX_FLAGS " /permissive-")
|
||||||
# Two-phase name lookup does not place nicely with OpenMP yet, so disable for now
|
# Two-phase name lookup does not place nicely with OpenMP yet, so disable for now
|
||||||
string(APPEND CMAKE_CXX_FLAGS " /Zc:twoPhase-")
|
string(APPEND CMAKE_CXX_FLAGS " /Zc:twoPhase-")
|
||||||
@@ -150,11 +171,10 @@ endif()
|
|||||||
|
|
||||||
# Debug Symbol format
|
# Debug Symbol format
|
||||||
# sccache # MSVC_ASAN # format # why
|
# sccache # MSVC_ASAN # format # why
|
||||||
# ON # ON # Z7 # sccache will only play nice with Z7.
|
# ON # ON # Z7 # sccache will only play nice with Z7
|
||||||
# ON # OFF # Z7 # sccache will only play nice with Z7.
|
# ON # OFF # Z7 # sccache will only play nice with Z7
|
||||||
# OFF # ON # Zi # Asan will not play nice with Edit and Continue.
|
# OFF # ON # Zi # Asan will not play nice with Edit and Continue
|
||||||
# OFF # OFF # ZI # Neither ASAN nor sscache is enabled Edit and
|
# OFF # OFF # ZI # Neither asan nor sscache is enabled Edit and Continue is available
|
||||||
# Continue is available.
|
|
||||||
|
|
||||||
# Release Symbol format
|
# Release Symbol format
|
||||||
# sccache # MSVC_ASAN # format # why
|
# sccache # MSVC_ASAN # format # why
|
||||||
@@ -198,7 +218,7 @@ unset(SYMBOL_FORMAT)
|
|||||||
unset(SYMBOL_FORMAT_RELEASE)
|
unset(SYMBOL_FORMAT_RELEASE)
|
||||||
|
|
||||||
# JMC is available on msvc 15.8 (1915) and up
|
# JMC is available on msvc 15.8 (1915) and up
|
||||||
if(NOT MSVC_CLANG)
|
if(MSVC_VERSION GREATER 1914 AND NOT MSVC_CLANG)
|
||||||
string(APPEND CMAKE_CXX_FLAGS_DEBUG " /JMC")
|
string(APPEND CMAKE_CXX_FLAGS_DEBUG " /JMC")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -231,6 +251,9 @@ if(NOT DEFINED LIBDIR)
|
|||||||
elseif(MSVC_VERSION GREATER 1919)
|
elseif(MSVC_VERSION GREATER 1919)
|
||||||
message(STATUS "Visual Studio 2019 detected.")
|
message(STATUS "Visual Studio 2019 detected.")
|
||||||
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15)
|
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15)
|
||||||
|
elseif(MSVC_VERSION GREATER 1909)
|
||||||
|
message(STATUS "Visual Studio 2017 detected.")
|
||||||
|
set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc15)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
|
message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
|
||||||
@@ -241,8 +264,10 @@ endif()
|
|||||||
|
|
||||||
include(platform_old_libs_update)
|
include(platform_old_libs_update)
|
||||||
|
|
||||||
# Only supported in the VS IDE & Clang Tidy needs to be on.
|
if(CMAKE_GENERATOR MATCHES "^Visual Studio.+" AND # Only supported in the VS IDE
|
||||||
if(CMAKE_GENERATOR MATCHES "^Visual Studio.+" AND WITH_CLANG_TIDY)
|
MSVC_VERSION GREATER_EQUAL 1924 AND # Supported for 16.4+
|
||||||
|
WITH_CLANG_TIDY # And Clang Tidy needs to be on
|
||||||
|
)
|
||||||
set(CMAKE_VS_GLOBALS
|
set(CMAKE_VS_GLOBALS
|
||||||
"RunCodeAnalysis=false"
|
"RunCodeAnalysis=false"
|
||||||
"EnableMicrosoftCodeAnalysis=false"
|
"EnableMicrosoftCodeAnalysis=false"
|
||||||
@@ -253,7 +278,8 @@ endif()
|
|||||||
|
|
||||||
# Mark libdir as system headers with a lower warn level, to resolve some warnings
|
# Mark libdir as system headers with a lower warn level, to resolve some warnings
|
||||||
# that we have very little control over
|
# that we have very little control over
|
||||||
if(NOT MSVC_CLANG AND # Available with MSVC 15.7+ but not for CLANG.
|
if(MSVC_VERSION GREATER_EQUAL 1914 AND # Available with 15.7+
|
||||||
|
NOT MSVC_CLANG AND # But not for clang
|
||||||
NOT WITH_WINDOWS_SCCACHE AND # And not when sccache is enabled
|
NOT WITH_WINDOWS_SCCACHE AND # And not when sccache is enabled
|
||||||
NOT VS_CLANG_TIDY) # Clang-tidy does not like these options
|
NOT VS_CLANG_TIDY) # Clang-tidy does not like these options
|
||||||
add_compile_options(/experimental:external /external:templates- /external:I "${LIBDIR}" /external:W0)
|
add_compile_options(/experimental:external /external:templates- /external:I "${LIBDIR}" /external:W0)
|
||||||
@@ -327,10 +353,18 @@ if(WITH_FFTW3)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_WEBP)
|
if(WITH_IMAGE_WEBP)
|
||||||
set(WEBP_INCLUDE_DIRS ${LIBDIR}/webp/include)
|
windows_find_package(WebP)
|
||||||
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
if(NOT WEBP_FOUND)
|
||||||
set(WEBP_LIBRARIES ${LIBDIR}/webp/lib/webp.lib ${LIBDIR}/webp/lib/webpdemux.lib ${LIBDIR}/webp/lib/webpmux.lib)
|
if(EXISTS ${LIBDIR}/webp)
|
||||||
set(WEBP_FOUND ON)
|
set(WEBP_INCLUDE_DIRS ${LIBDIR}/webp/include)
|
||||||
|
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
||||||
|
set(WEBP_LIBRARIES ${LIBDIR}/webp/lib/webp.lib ${LIBDIR}/webp/lib/webpdemux.lib ${LIBDIR}/webp/lib/webpmux.lib)
|
||||||
|
set(WEBP_FOUND ON)
|
||||||
|
else()
|
||||||
|
message(STATUS "WITH_IMAGE_WEBP is ON but WEBP libraries are not found, setting WITH_IMAGE_WEBP=OFF")
|
||||||
|
set(WITH_IMAGE_WEBP OFF)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENCOLLADA)
|
if(WITH_OPENCOLLADA)
|
||||||
@@ -351,6 +385,7 @@ if(WITH_OPENCOLLADA)
|
|||||||
optimized ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib
|
optimized ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib
|
||||||
optimized ${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib
|
optimized ${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib
|
||||||
optimized ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib
|
optimized ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib
|
||||||
|
optimized ${OPENCOLLADA}/lib/opencollada/xml.lib
|
||||||
optimized ${OPENCOLLADA}/lib/opencollada/buffer.lib
|
optimized ${OPENCOLLADA}/lib/opencollada/buffer.lib
|
||||||
optimized ${OPENCOLLADA}/lib/opencollada/ftoa.lib
|
optimized ${OPENCOLLADA}/lib/opencollada/ftoa.lib
|
||||||
|
|
||||||
@@ -360,14 +395,10 @@ if(WITH_OPENCOLLADA)
|
|||||||
debug ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter_d.lib
|
debug ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter_d.lib
|
||||||
debug ${OPENCOLLADA}/lib/opencollada/MathMLSolver_d.lib
|
debug ${OPENCOLLADA}/lib/opencollada/MathMLSolver_d.lib
|
||||||
debug ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser_d.lib
|
debug ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser_d.lib
|
||||||
|
debug ${OPENCOLLADA}/lib/opencollada/xml_d.lib
|
||||||
debug ${OPENCOLLADA}/lib/opencollada/buffer_d.lib
|
debug ${OPENCOLLADA}/lib/opencollada/buffer_d.lib
|
||||||
debug ${OPENCOLLADA}/lib/opencollada/ftoa_d.lib
|
debug ${OPENCOLLADA}/lib/opencollada/ftoa_d.lib
|
||||||
)
|
)
|
||||||
if(EXISTS ${LIBDIR}/xml2/lib/libxml2s.lib) # 3.4 libraries
|
|
||||||
list(APPEND OPENCOLLADA_LIBRARIES ${LIBDIR}/xml2/lib/libxml2s.lib)
|
|
||||||
else()
|
|
||||||
list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/xml.lib)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/UTF.lib)
|
list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/UTF.lib)
|
||||||
|
|
||||||
@@ -419,7 +450,7 @@ if(WITH_IMAGE_OPENEXR)
|
|||||||
warn_hardcoded_paths(OpenEXR)
|
warn_hardcoded_paths(OpenEXR)
|
||||||
set(OPENEXR ${LIBDIR}/openexr)
|
set(OPENEXR ${LIBDIR}/openexr)
|
||||||
set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
|
set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
|
||||||
set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${IMATH_INCLUDE_DIRS} ${OPENEXR_INCLUDE_DIR}/OpenEXR)
|
set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${IMATH_INCLUDE_DIRS} ${OPENEXR}/include/OpenEXR)
|
||||||
set(OPENEXR_LIBPATH ${OPENEXR}/lib)
|
set(OPENEXR_LIBPATH ${OPENEXR}/lib)
|
||||||
# Check if the 3.x library name exists
|
# Check if the 3.x library name exists
|
||||||
# if not assume this is a 2.x library folder
|
# if not assume this is a 2.x library folder
|
||||||
@@ -473,16 +504,12 @@ if(WITH_JACK)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_PYTHON)
|
if(WITH_PYTHON)
|
||||||
# Cache version for make_bpy_wheel.py to detect.
|
set(PYTHON_VERSION 3.10) # CACHE STRING)
|
||||||
unset(PYTHON_VERSION CACHE)
|
|
||||||
set(PYTHON_VERSION "3.10" CACHE STRING "Python version")
|
|
||||||
|
|
||||||
string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
|
string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
|
||||||
set(PYTHON_LIBRARY ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/libs/python${_PYTHON_VERSION_NO_DOTS}.lib)
|
set(PYTHON_LIBRARY ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/libs/python${_PYTHON_VERSION_NO_DOTS}.lib)
|
||||||
set(PYTHON_LIBRARY_DEBUG ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/libs/python${_PYTHON_VERSION_NO_DOTS}_d.lib)
|
set(PYTHON_LIBRARY_DEBUG ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/libs/python${_PYTHON_VERSION_NO_DOTS}_d.lib)
|
||||||
|
|
||||||
set(PYTHON_EXECUTABLE ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/bin/python$<$<CONFIG:Debug>:_d>.exe)
|
|
||||||
|
|
||||||
set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/include)
|
set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/include)
|
||||||
set(PYTHON_NUMPY_INCLUDE_DIRS ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/lib/site-packages/numpy/core/include)
|
set(PYTHON_NUMPY_INCLUDE_DIRS ${LIBDIR}/python/${_PYTHON_VERSION_NO_DOTS}/lib/site-packages/numpy/core/include)
|
||||||
set(NUMPY_FOUND ON)
|
set(NUMPY_FOUND ON)
|
||||||
@@ -568,8 +595,7 @@ if(WITH_OPENIMAGEIO)
|
|||||||
if(NOT OpenImageIO_FOUND)
|
if(NOT OpenImageIO_FOUND)
|
||||||
set(OPENIMAGEIO ${LIBDIR}/OpenImageIO)
|
set(OPENIMAGEIO ${LIBDIR}/OpenImageIO)
|
||||||
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
|
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
|
||||||
set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include)
|
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
|
||||||
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR})
|
|
||||||
set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
|
set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
|
||||||
set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
|
set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
|
||||||
set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
|
set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
|
||||||
@@ -676,11 +702,11 @@ endif()
|
|||||||
|
|
||||||
if(WITH_IMAGE_OPENJPEG)
|
if(WITH_IMAGE_OPENJPEG)
|
||||||
set(OPENJPEG ${LIBDIR}/openjpeg)
|
set(OPENJPEG ${LIBDIR}/openjpeg)
|
||||||
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.5)
|
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.4)
|
||||||
if(NOT EXISTS "${OPENJPEG_INCLUDE_DIRS}")
|
if(NOT EXISTS "${OPENJPEG_INCLUDE_DIRS}")
|
||||||
# when not found, could be an older lib folder with openjpeg 2.4
|
# when not found, could be an older lib folder with openjpeg 2.3
|
||||||
# to ease the transition period, fall back if 2.5 is not found.
|
# to ease the transition period, fall back if 2.4 is not found.
|
||||||
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.4)
|
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
|
||||||
endif()
|
endif()
|
||||||
set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
|
set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
|
||||||
endif()
|
endif()
|
||||||
@@ -697,6 +723,12 @@ if(WITH_OPENSUBDIV)
|
|||||||
debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib
|
debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib
|
||||||
debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib
|
debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib
|
||||||
)
|
)
|
||||||
|
set(OPENSUBDIV_HAS_OPENMP TRUE)
|
||||||
|
set(OPENSUBDIV_HAS_TBB FALSE)
|
||||||
|
set(OPENSUBDIV_HAS_OPENCL TRUE)
|
||||||
|
set(OPENSUBDIV_HAS_CUDA FALSE)
|
||||||
|
set(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK TRUE)
|
||||||
|
set(OPENSUBDIV_HAS_GLSL_COMPUTE TRUE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -731,7 +763,7 @@ if(WITH_TBB)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# used in many places so include globally, like OpenGL
|
# used in many places so include globally, like OpenGL
|
||||||
include_directories(SYSTEM "${PTHREADS_INCLUDE_DIRS}")
|
blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}")
|
||||||
|
|
||||||
set(WINTAB_INC ${LIBDIR}/wintab/include)
|
set(WINTAB_INC ${LIBDIR}/wintab/include)
|
||||||
|
|
||||||
@@ -764,11 +796,9 @@ if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
|||||||
find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
|
find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
|
||||||
find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
|
find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
|
||||||
find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
|
find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
|
||||||
find_library(OSL_LIB_NOISE NAMES oslnoise PATHS ${CYCLES_OSL}/lib)
|
|
||||||
find_library(OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${CYCLES_OSL}/lib)
|
find_library(OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${CYCLES_OSL}/lib)
|
||||||
find_library(OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${CYCLES_OSL}/lib)
|
find_library(OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${CYCLES_OSL}/lib)
|
||||||
find_library(OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${CYCLES_OSL}/lib)
|
find_library(OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${CYCLES_OSL}/lib)
|
||||||
find_library(OSL_LIB_NOISE_DEBUG NAMES oslnoise_d PATHS ${CYCLES_OSL}/lib)
|
|
||||||
list(APPEND OSL_LIBRARIES
|
list(APPEND OSL_LIBRARIES
|
||||||
optimized ${OSL_LIB_COMP}
|
optimized ${OSL_LIB_COMP}
|
||||||
optimized ${OSL_LIB_EXEC}
|
optimized ${OSL_LIB_EXEC}
|
||||||
@@ -778,22 +808,15 @@ if(WITH_CYCLES AND WITH_CYCLES_OSL)
|
|||||||
debug ${OSL_LIB_QUERY_DEBUG}
|
debug ${OSL_LIB_QUERY_DEBUG}
|
||||||
${PUGIXML_LIBRARIES}
|
${PUGIXML_LIBRARIES}
|
||||||
)
|
)
|
||||||
if(OSL_LIB_NOISE)
|
|
||||||
list(APPEND OSL_LIBRARIES optimized ${OSL_LIB_NOISE})
|
|
||||||
endif()
|
|
||||||
if(OSL_LIB_NOISE_DEBUG)
|
|
||||||
list(APPEND OSL_LIBRARIES debug ${OSL_LIB_NOISE_DEBUG})
|
|
||||||
endif()
|
|
||||||
find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
|
find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
|
||||||
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
|
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
|
||||||
file(STRINGS "${OSL_INCLUDE_DIR}/OSL/oslversion.h" OSL_LIBRARY_VERSION_MAJOR
|
|
||||||
REGEX "^[ \t]*#define[ \t]+OSL_LIBRARY_VERSION_MAJOR[ \t]+[0-9]+.*$")
|
if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
|
||||||
file(STRINGS "${OSL_INCLUDE_DIR}/OSL/oslversion.h" OSL_LIBRARY_VERSION_MINOR
|
set(OSL_FOUND TRUE)
|
||||||
REGEX "^[ \t]*#define[ \t]+OSL_LIBRARY_VERSION_MINOR[ \t]+[0-9]+.*$")
|
else()
|
||||||
string(REGEX REPLACE ".*#define[ \t]+OSL_LIBRARY_VERSION_MAJOR[ \t]+([.0-9]+).*"
|
message(STATUS "OSL not found")
|
||||||
"\\1" OSL_LIBRARY_VERSION_MAJOR ${OSL_LIBRARY_VERSION_MAJOR})
|
set(WITH_CYCLES_OSL OFF)
|
||||||
string(REGEX REPLACE ".*#define[ \t]+OSL_LIBRARY_VERSION_MINOR[ \t]+([.0-9]+).*"
|
endif()
|
||||||
"\\1" OSL_LIBRARY_VERSION_MINOR ${OSL_LIBRARY_VERSION_MINOR})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
if(WITH_CYCLES AND WITH_CYCLES_EMBREE)
|
||||||
@@ -847,8 +870,8 @@ endif()
|
|||||||
|
|
||||||
if(WINDOWS_PYTHON_DEBUG)
|
if(WINDOWS_PYTHON_DEBUG)
|
||||||
# Include the system scripts in the blender_python_system_scripts project.
|
# Include the system scripts in the blender_python_system_scripts project.
|
||||||
file(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/release/scripts/*.*" )
|
FILE(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/release/scripts/*.*" )
|
||||||
add_custom_target(blender_python_system_scripts SOURCES ${inFiles})
|
ADD_CUSTOM_TARGET(blender_python_system_scripts SOURCES ${inFiles})
|
||||||
foreach(_source IN ITEMS ${inFiles})
|
foreach(_source IN ITEMS ${inFiles})
|
||||||
get_filename_component(_source_path "${_source}" PATH)
|
get_filename_component(_source_path "${_source}" PATH)
|
||||||
string(REPLACE "${CMAKE_SOURCE_DIR}/release/scripts/" "" _source_path "${_source_path}")
|
string(REPLACE "${CMAKE_SOURCE_DIR}/release/scripts/" "" _source_path "${_source_path}")
|
||||||
@@ -868,8 +891,8 @@ if(WINDOWS_PYTHON_DEBUG)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(TO_CMAKE_PATH ${USER_SCRIPTS_ROOT} USER_SCRIPTS_ROOT)
|
file(TO_CMAKE_PATH ${USER_SCRIPTS_ROOT} USER_SCRIPTS_ROOT)
|
||||||
file(GLOB_RECURSE inFiles "${USER_SCRIPTS_ROOT}/*.*" )
|
FILE(GLOB_RECURSE inFiles "${USER_SCRIPTS_ROOT}/*.*" )
|
||||||
add_custom_target(blender_python_user_scripts SOURCES ${inFiles})
|
ADD_CUSTOM_TARGET(blender_python_user_scripts SOURCES ${inFiles})
|
||||||
foreach(_source IN ITEMS ${inFiles})
|
foreach(_source IN ITEMS ${inFiles})
|
||||||
get_filename_component(_source_path "${_source}" PATH)
|
get_filename_component(_source_path "${_source}" PATH)
|
||||||
string(REPLACE "${USER_SCRIPTS_ROOT}" "" _source_path "${_source_path}")
|
string(REPLACE "${USER_SCRIPTS_ROOT}" "" _source_path "${_source_path}")
|
||||||
@@ -893,16 +916,21 @@ if(WINDOWS_PYTHON_DEBUG)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XR_OPENXR)
|
if(WITH_XR_OPENXR)
|
||||||
set(XR_OPENXR_SDK ${LIBDIR}/xr_openxr_sdk)
|
if(EXISTS ${LIBDIR}/xr_openxr_sdk)
|
||||||
set(XR_OPENXR_SDK_LIBPATH ${LIBDIR}/xr_openxr_sdk/lib)
|
set(XR_OPENXR_SDK ${LIBDIR}/xr_openxr_sdk)
|
||||||
set(XR_OPENXR_SDK_INCLUDE_DIR ${XR_OPENXR_SDK}/include)
|
set(XR_OPENXR_SDK_LIBPATH ${LIBDIR}/xr_openxr_sdk/lib)
|
||||||
# This is the old name of this library, it is checked to
|
set(XR_OPENXR_SDK_INCLUDE_DIR ${XR_OPENXR_SDK}/include)
|
||||||
# support the transition between the old and new lib versions
|
# This is the old name of this library, it is checked to
|
||||||
# this can be removed after the next lib update.
|
# support the transition between the old and new lib versions
|
||||||
if(EXISTS ${XR_OPENXR_SDK_LIBPATH}/openxr_loader_d.lib)
|
# this can be removed after the next lib update.
|
||||||
set(XR_OPENXR_SDK_LIBRARIES optimized ${XR_OPENXR_SDK_LIBPATH}/openxr_loader.lib debug ${XR_OPENXR_SDK_LIBPATH}/openxr_loader_d.lib)
|
if(EXISTS ${XR_OPENXR_SDK_LIBPATH}/openxr_loader_d.lib)
|
||||||
|
set(XR_OPENXR_SDK_LIBRARIES optimized ${XR_OPENXR_SDK_LIBPATH}/openxr_loader.lib debug ${XR_OPENXR_SDK_LIBPATH}/openxr_loader_d.lib)
|
||||||
|
else()
|
||||||
|
set(XR_OPENXR_SDK_LIBRARIES optimized ${XR_OPENXR_SDK_LIBPATH}/openxr_loader.lib debug ${XR_OPENXR_SDK_LIBPATH}/openxr_loaderd.lib)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
set(XR_OPENXR_SDK_LIBRARIES optimized ${XR_OPENXR_SDK_LIBPATH}/openxr_loader.lib debug ${XR_OPENXR_SDK_LIBPATH}/openxr_loaderd.lib)
|
message(WARNING "OpenXR-SDK was not found, disabling WITH_XR_OPENXR")
|
||||||
|
set(WITH_XR_OPENXR OFF)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -920,65 +948,19 @@ if(WITH_POTRACE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_HARU)
|
if(WITH_HARU)
|
||||||
set(HARU_FOUND ON)
|
if(EXISTS ${LIBDIR}/haru)
|
||||||
set(HARU_ROOT_DIR ${LIBDIR}/haru)
|
set(HARU_FOUND ON)
|
||||||
set(HARU_INCLUDE_DIRS ${HARU_ROOT_DIR}/include)
|
set(HARU_ROOT_DIR ${LIBDIR}/haru)
|
||||||
set(HARU_LIBRARIES ${HARU_ROOT_DIR}/lib/libhpdfs.lib)
|
set(HARU_INCLUDE_DIRS ${HARU_ROOT_DIR}/include)
|
||||||
endif()
|
set(HARU_LIBRARIES ${HARU_ROOT_DIR}/lib/libhpdfs.lib)
|
||||||
|
|
||||||
if(WITH_VULKAN_BACKEND)
|
|
||||||
if(EXISTS ${LIBDIR}/vulkan)
|
|
||||||
set(VULKAN_FOUND On)
|
|
||||||
set(VULKAN_ROOT_DIR ${LIBDIR}/vulkan)
|
|
||||||
set(VULKAN_INCLUDE_DIR ${VULKAN_ROOT_DIR}/include)
|
|
||||||
set(VULKAN_INCLUDE_DIRS ${VULKAN_INCLUDE_DIR})
|
|
||||||
set(VULKAN_LIBRARY ${VULKAN_ROOT_DIR}/lib/vulkan-1.lib)
|
|
||||||
set(VULKAN_LIBRARIES ${VULKAN_LIBRARY})
|
|
||||||
else()
|
else()
|
||||||
message(WARNING "Vulkan SDK was not found, disabling WITH_VULKAN_BACKEND")
|
message(WARNING "Haru was not found, disabling WITH_HARU")
|
||||||
set(WITH_VULKAN_BACKEND OFF)
|
set(WITH_HARU OFF)
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_PATH_GUIDING)
|
|
||||||
find_package(openpgl QUIET)
|
|
||||||
if(openpgl_FOUND)
|
|
||||||
get_target_property(OPENPGL_LIBRARIES_RELEASE openpgl::openpgl LOCATION_RELEASE)
|
|
||||||
get_target_property(OPENPGL_LIBRARIES_DEBUG openpgl::openpgl LOCATION_DEBUG)
|
|
||||||
set(OPENPGL_LIBRARIES optimized ${OPENPGL_LIBRARIES_RELEASE} debug ${OPENPGL_LIBRARIES_DEBUG})
|
|
||||||
get_target_property(OPENPGL_INCLUDE_DIR openpgl::openpgl INTERFACE_INCLUDE_DIRECTORIES)
|
|
||||||
else()
|
|
||||||
set(WITH_CYCLES_PATH_GUIDING OFF)
|
|
||||||
message(STATUS "OpenPGL not found, disabling WITH_CYCLES_PATH_GUIDING")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(ZSTD_INCLUDE_DIRS ${LIBDIR}/zstd/include)
|
set(ZSTD_INCLUDE_DIRS ${LIBDIR}/zstd/include)
|
||||||
set(ZSTD_LIBRARIES ${LIBDIR}/zstd/lib/zstd_static.lib)
|
set(ZSTD_LIBRARIES ${LIBDIR}/zstd/lib/zstd_static.lib)
|
||||||
|
|
||||||
if(WITH_CYCLES AND WITH_CYCLES_DEVICE_ONEAPI)
|
set(LEVEL_ZERO_ROOT_DIR ${LIBDIR}/level_zero)
|
||||||
set(LEVEL_ZERO_ROOT_DIR ${LIBDIR}/level_zero)
|
set(SYCL_ROOT_DIR ${LIBDIR}/dpcpp)
|
||||||
set(CYCLES_SYCL ${LIBDIR}/dpcpp CACHE PATH "Path to oneAPI DPC++ compiler")
|
|
||||||
if(EXISTS ${CYCLES_SYCL} AND NOT SYCL_ROOT_DIR)
|
|
||||||
set(SYCL_ROOT_DIR ${CYCLES_SYCL})
|
|
||||||
endif()
|
|
||||||
file(GLOB _sycl_runtime_libraries_glob
|
|
||||||
${SYCL_ROOT_DIR}/bin/sycl.dll
|
|
||||||
${SYCL_ROOT_DIR}/bin/sycl[0-9].dll
|
|
||||||
)
|
|
||||||
foreach(sycl_runtime_library IN LISTS _sycl_runtime_libraries_glob)
|
|
||||||
string(REPLACE ".dll" "$<$<CONFIG:Debug>:d>.dll" sycl_runtime_library ${sycl_runtime_library})
|
|
||||||
list(APPEND _sycl_runtime_libraries ${sycl_runtime_library})
|
|
||||||
endforeach()
|
|
||||||
unset(_sycl_runtime_libraries_glob)
|
|
||||||
|
|
||||||
file(GLOB _sycl_pi_runtime_libraries_glob
|
|
||||||
${SYCL_ROOT_DIR}/bin/pi_*.dll
|
|
||||||
)
|
|
||||||
list(REMOVE_ITEM _sycl_pi_runtime_libraries_glob "${SYCL_ROOT_DIR}/bin/pi_opencl.dll")
|
|
||||||
list (APPEND _sycl_runtime_libraries ${_sycl_pi_runtime_libraries_glob})
|
|
||||||
unset(_sycl_pi_runtime_libraries_glob)
|
|
||||||
|
|
||||||
list(APPEND PLATFORM_BUNDLED_LIBRARIES ${_sycl_runtime_libraries})
|
|
||||||
unset(_sycl_runtime_libraries)
|
|
||||||
endif()
|
|
||||||
|
@@ -3,22 +3,20 @@
|
|||||||
# First generate the manifest for tests since it will not need the dependency on the CRT.
|
# First generate the manifest for tests since it will not need the dependency on the CRT.
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/tests.exe.manifest @ONLY)
|
configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/tests.exe.manifest @ONLY)
|
||||||
|
|
||||||
# Always detect system libraries, since they are also used by oneAPI.
|
|
||||||
# But don't always install them, only for WITH_WINDOWS_BUNDLE_CRT=ON.
|
|
||||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
|
||||||
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
|
||||||
set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP})
|
|
||||||
|
|
||||||
# This sometimes can change when updates are installed and the compiler version
|
|
||||||
# changes, so test if it exists and if not, give InstallRequiredSystemLibraries
|
|
||||||
# another chance to figure out the path.
|
|
||||||
if(MSVC_REDIST_DIR AND NOT EXISTS "${MSVC_REDIST_DIR}")
|
|
||||||
unset(MSVC_REDIST_DIR CACHE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(InstallRequiredSystemLibraries)
|
|
||||||
|
|
||||||
if(WITH_WINDOWS_BUNDLE_CRT)
|
if(WITH_WINDOWS_BUNDLE_CRT)
|
||||||
|
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||||
|
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
||||||
|
set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP})
|
||||||
|
|
||||||
|
# This sometimes can change when updates are installed and the compiler version
|
||||||
|
# changes, so test if it exists and if not, give InstallRequiredSystemLibraries
|
||||||
|
# another chance to figure out the path.
|
||||||
|
if(MSVC_REDIST_DIR AND NOT EXISTS "${MSVC_REDIST_DIR}")
|
||||||
|
unset(MSVC_REDIST_DIR CACHE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(InstallRequiredSystemLibraries)
|
||||||
|
|
||||||
# ucrtbase(d).dll cannot be in the manifest, due to the way windows 10 handles
|
# ucrtbase(d).dll cannot be in the manifest, due to the way windows 10 handles
|
||||||
# redirects for this dll, for details see T88813.
|
# redirects for this dll, for details see T88813.
|
||||||
foreach(lib ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS})
|
foreach(lib ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS})
|
||||||
|
@@ -30,8 +30,6 @@ from typing import (
|
|||||||
cast,
|
cast,
|
||||||
)
|
)
|
||||||
|
|
||||||
import shlex
|
|
||||||
|
|
||||||
|
|
||||||
SOURCE_DIR = join(dirname(__file__), "..", "..")
|
SOURCE_DIR = join(dirname(__file__), "..", "..")
|
||||||
SOURCE_DIR = normpath(SOURCE_DIR)
|
SOURCE_DIR = normpath(SOURCE_DIR)
|
||||||
@@ -162,7 +160,7 @@ def build_info(
|
|||||||
|
|
||||||
for c in compilers:
|
for c in compilers:
|
||||||
args = args.replace(c, fake_compiler)
|
args = args.replace(c, fake_compiler)
|
||||||
args = shlex.split(args)
|
args = args.split()
|
||||||
# end
|
# end
|
||||||
|
|
||||||
# remove compiler
|
# remove compiler
|
||||||
|
@@ -55,11 +55,9 @@ buildbot:
|
|||||||
cuda11:
|
cuda11:
|
||||||
version: '11.4.1'
|
version: '11.4.1'
|
||||||
hip:
|
hip:
|
||||||
version: '5.3.22480'
|
version: '5.2.21440'
|
||||||
optix:
|
optix:
|
||||||
version: '7.3.0'
|
version: '7.3.0'
|
||||||
ocloc:
|
|
||||||
version: '101.3430'
|
|
||||||
cmake:
|
cmake:
|
||||||
default:
|
default:
|
||||||
version: any
|
version: any
|
||||||
|
@@ -1,246 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
"""
|
|
||||||
Make Python wheel package (`*.whl`) file from Blender built with 'WITH_PYTHON_MODULE' enabled.
|
|
||||||
|
|
||||||
Example
|
|
||||||
=======
|
|
||||||
|
|
||||||
If the "bpy" module was build on Linux using the command:
|
|
||||||
|
|
||||||
make bpy lite
|
|
||||||
|
|
||||||
The command to package it as a wheel is:
|
|
||||||
|
|
||||||
./build_files/utils/make_bpy_wheel.py ../build_linux_bpy_lite/bin --output-dir=./
|
|
||||||
|
|
||||||
This will create a `*.whl` file in the current directory.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import make_utils
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
import platform
|
|
||||||
import string
|
|
||||||
import setuptools # type: ignore
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from typing import (
|
|
||||||
Generator,
|
|
||||||
List,
|
|
||||||
Optional,
|
|
||||||
Sequence,
|
|
||||||
Tuple,
|
|
||||||
)
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Long Description
|
|
||||||
|
|
||||||
long_description = """# Blender
|
|
||||||
|
|
||||||
[Blender](https://www.blender.org) is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing.
|
|
||||||
|
|
||||||
This package provides Blender as a Python module for use in studio pipelines, web services, scientific research, and more.
|
|
||||||
|
|
||||||
## Documentation
|
|
||||||
|
|
||||||
* [Blender Python API](https://docs.blender.org/api/current/)
|
|
||||||
* [Blender as a Python Module](https://docs.blender.org/api/current/info_advanced_blender_as_bpy.html)
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
[System requirements](https://www.blender.org/download/requirements/) are the same as Blender.
|
|
||||||
|
|
||||||
Each Blender release supports one Python version, and the package is only compatible with that version."""
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Generic Functions
|
|
||||||
|
|
||||||
def find_dominating_file(
|
|
||||||
path: str,
|
|
||||||
search: Sequence[str],
|
|
||||||
) -> str:
|
|
||||||
while True:
|
|
||||||
for d in search:
|
|
||||||
if os.path.exists(os.path.join(path, d)):
|
|
||||||
return os.path.join(path, d)
|
|
||||||
path_next = os.path.normpath(os.path.join(path, ".."))
|
|
||||||
if path == path_next:
|
|
||||||
break
|
|
||||||
path = path_next
|
|
||||||
return ""
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# CMake Cache Access
|
|
||||||
|
|
||||||
def cmake_cache_var_iter(filepath_cmake_cache: str) -> Generator[Tuple[str, str, str], None, None]:
|
|
||||||
import re
|
|
||||||
re_cache = re.compile(r"([A-Za-z0-9_\-]+)?:?([A-Za-z0-9_\-]+)?=(.*)$")
|
|
||||||
with open(filepath_cmake_cache, "r", encoding="utf-8") as cache_file:
|
|
||||||
for l in cache_file:
|
|
||||||
match = re_cache.match(l.strip())
|
|
||||||
if match is not None:
|
|
||||||
var, type_, val = match.groups()
|
|
||||||
yield (var, type_ or "", val)
|
|
||||||
|
|
||||||
|
|
||||||
def cmake_cache_var(filepath_cmake_cache: str, var: str) -> Optional[str]:
|
|
||||||
for var_iter, type_iter, value_iter in cmake_cache_var_iter(filepath_cmake_cache):
|
|
||||||
if var == var_iter:
|
|
||||||
return value_iter
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def cmake_cache_var_or_exit(filepath_cmake_cache: str, var: str) -> str:
|
|
||||||
value = cmake_cache_var(filepath_cmake_cache, var)
|
|
||||||
if value is None:
|
|
||||||
sys.stderr.write("Unable to find %r in %r, abort!\n" % (var, filepath_cmake_cache))
|
|
||||||
sys.exit(1)
|
|
||||||
return value
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Argument Parser
|
|
||||||
|
|
||||||
def argparse_create() -> argparse.ArgumentParser:
|
|
||||||
parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawTextHelpFormatter)
|
|
||||||
parser.add_argument(
|
|
||||||
"install_dir",
|
|
||||||
metavar='INSTALL_DIR',
|
|
||||||
type=str,
|
|
||||||
help="The installation directory containing the \"bpy\" package.",
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--build-dir",
|
|
||||||
metavar='BUILD_DIR',
|
|
||||||
default=None,
|
|
||||||
help="The build directory containing 'CMakeCache.txt' (search parent directories of INSTALL_DIR when omitted).",
|
|
||||||
required=False,
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--output-dir",
|
|
||||||
metavar='OUTPUT_DIR',
|
|
||||||
default=None,
|
|
||||||
help="The destination directory for the '*.whl' file (use INSTALL_DIR when omitted).",
|
|
||||||
required=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
return parser
|
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# Main Function
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
|
|
||||||
# Parse arguments.
|
|
||||||
args = argparse_create().parse_args()
|
|
||||||
|
|
||||||
install_dir = os.path.abspath(args.install_dir)
|
|
||||||
output_dir = os.path.abspath(args.output_dir) if args.output_dir else install_dir
|
|
||||||
|
|
||||||
if args.build_dir:
|
|
||||||
build_dir = os.path.abspath(args.build_dir)
|
|
||||||
filepath_cmake_cache = os.path.join(build_dir, "CMakeCache.txt")
|
|
||||||
del build_dir
|
|
||||||
if not os.path.exists(filepath_cmake_cache):
|
|
||||||
sys.stderr.write("File not found %r, abort!\n" % filepath_cmake_cache)
|
|
||||||
sys.exit(1)
|
|
||||||
else:
|
|
||||||
filepath_cmake_cache = find_dominating_file(install_dir, ("CMakeCache.txt",))
|
|
||||||
if not filepath_cmake_cache:
|
|
||||||
# Should never fail.
|
|
||||||
sys.stderr.write("Unable to find CMakeCache.txt in or above %r, abort!\n" % install_dir)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Get the major and minor Python version.
|
|
||||||
python_version = cmake_cache_var_or_exit(filepath_cmake_cache, "PYTHON_VERSION")
|
|
||||||
python_version_number = (
|
|
||||||
tuple(int("".join(c for c in digit if c in string.digits)) for digit in python_version.split(".")) +
|
|
||||||
# Support version without a minor version "3" (add zero).
|
|
||||||
tuple((0, 0, 0))
|
|
||||||
)
|
|
||||||
python_version_str = "%d.%d" % python_version_number[:2]
|
|
||||||
|
|
||||||
# Get Blender version.
|
|
||||||
blender_version_str = str(make_utils.parse_blender_version())
|
|
||||||
|
|
||||||
# Set platform tag following conventions.
|
|
||||||
if sys.platform == "darwin":
|
|
||||||
target = cmake_cache_var_or_exit(filepath_cmake_cache, "CMAKE_OSX_DEPLOYMENT_TARGET").split(".")
|
|
||||||
machine = cmake_cache_var_or_exit(filepath_cmake_cache, "CMAKE_OSX_ARCHITECTURES")
|
|
||||||
platform_tag = "macosx_%d_%d_%s" % (int(target[0]), int(target[1]), machine)
|
|
||||||
elif sys.platform == "win32":
|
|
||||||
platform_tag = "win_%s" % (platform.machine().lower())
|
|
||||||
elif sys.platform == "linux":
|
|
||||||
glibc = os.confstr("CS_GNU_LIBC_VERSION")
|
|
||||||
if glibc is None:
|
|
||||||
sys.stderr.write("Unable to find \"CS_GNU_LIBC_VERSION\", abort!\n")
|
|
||||||
sys.exit(1)
|
|
||||||
glibc = "%s_%s" % tuple(glibc.split()[1].split(".")[:2])
|
|
||||||
platform_tag = "manylinux_%s_%s" % (glibc, platform.machine().lower())
|
|
||||||
else:
|
|
||||||
sys.stderr.write("Unsupported platform: %s, abort!\n" % (sys.platform))
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
os.chdir(install_dir)
|
|
||||||
|
|
||||||
# Include all files recursively.
|
|
||||||
def package_files(root_dir: str) -> List[str]:
|
|
||||||
paths = []
|
|
||||||
for path, dirs, files in os.walk(root_dir):
|
|
||||||
paths += [os.path.join("..", path, f) for f in files]
|
|
||||||
return paths
|
|
||||||
|
|
||||||
# Ensure this wheel is marked platform specific.
|
|
||||||
class BinaryDistribution(setuptools.dist.Distribution): # type: ignore
|
|
||||||
def has_ext_modules(self) -> bool:
|
|
||||||
return True
|
|
||||||
|
|
||||||
# Build wheel.
|
|
||||||
sys.argv = [sys.argv[0], "bdist_wheel"]
|
|
||||||
|
|
||||||
setuptools.setup(
|
|
||||||
name="bpy",
|
|
||||||
version=blender_version_str,
|
|
||||||
install_requires=["cython", "numpy", "requests", "zstandard"],
|
|
||||||
python_requires="==%d.%d.*" % (python_version_number[0], python_version_number[1]),
|
|
||||||
packages=["bpy"],
|
|
||||||
package_data={"": package_files("bpy")},
|
|
||||||
distclass=BinaryDistribution,
|
|
||||||
options={"bdist_wheel": {"plat_name": platform_tag}},
|
|
||||||
|
|
||||||
description="Blender as a Python module",
|
|
||||||
long_description=long_description,
|
|
||||||
long_description_content_type='text/markdown',
|
|
||||||
license="GPL-3.0",
|
|
||||||
author="Blender Foundation",
|
|
||||||
author_email="bf-committers@blender.org",
|
|
||||||
url="https://www.blender.org"
|
|
||||||
)
|
|
||||||
|
|
||||||
if not os.path.exists(output_dir):
|
|
||||||
os.makedirs(output_dir)
|
|
||||||
|
|
||||||
# Move wheel to output directory.
|
|
||||||
dist_dir = os.path.join(install_dir, "dist")
|
|
||||||
for f in os.listdir(dist_dir):
|
|
||||||
if f.endswith(".whl"):
|
|
||||||
blender_py = "cp%d%d" % (python_version_number[0], python_version_number[1])
|
|
||||||
|
|
||||||
# No apparent way to override this ABI version with setuptools, so rename.
|
|
||||||
sys_py = "cp%d%d" % (sys.version_info.major, sys.version_info.minor)
|
|
||||||
if hasattr(sys, "abiflags"):
|
|
||||||
sys_py_abi = sys_py + sys.abiflags
|
|
||||||
renamed_f = f.replace(sys_py_abi, blender_py).replace(sys_py, blender_py)
|
|
||||||
else:
|
|
||||||
renamed_f = f.replace(sys_py, blender_py)
|
|
||||||
|
|
||||||
os.rename(os.path.join(dist_dir, f), os.path.join(output_dir, renamed_f))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
@@ -2,7 +2,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import make_utils
|
import dataclasses
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -19,8 +19,6 @@ from typing import Iterable, TextIO, Optional, Any, Union
|
|||||||
SKIP_NAMES = {
|
SKIP_NAMES = {
|
||||||
".gitignore",
|
".gitignore",
|
||||||
".gitmodules",
|
".gitmodules",
|
||||||
".gitattributes",
|
|
||||||
".git-blame-ignore-revs",
|
|
||||||
".arcconfig",
|
".arcconfig",
|
||||||
".svn",
|
".svn",
|
||||||
}
|
}
|
||||||
@@ -52,7 +50,7 @@ def main() -> None:
|
|||||||
|
|
||||||
print(f"Output dir: {curdir}")
|
print(f"Output dir: {curdir}")
|
||||||
|
|
||||||
version = make_utils.parse_blender_version()
|
version = parse_blender_version(blender_srcdir)
|
||||||
tarball = tarball_path(curdir, version, cli_args)
|
tarball = tarball_path(curdir, version, cli_args)
|
||||||
manifest = manifest_path(tarball)
|
manifest = manifest_path(tarball)
|
||||||
packages_dir = packages_path(curdir, cli_args)
|
packages_dir = packages_path(curdir, cli_args)
|
||||||
@@ -64,7 +62,53 @@ def main() -> None:
|
|||||||
print("Done!")
|
print("Done!")
|
||||||
|
|
||||||
|
|
||||||
def tarball_path(output_dir: Path, version: make_utils.BlenderVersion, cli_args: Any) -> Path:
|
@dataclasses.dataclass
|
||||||
|
class BlenderVersion:
|
||||||
|
version: int # 293 for 2.93.1
|
||||||
|
patch: int # 1 for 2.93.1
|
||||||
|
cycle: str # 'alpha', 'beta', 'release', maybe others.
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_release(self) -> bool:
|
||||||
|
return self.cycle == "release"
|
||||||
|
|
||||||
|
def __str__(self) -> str:
|
||||||
|
"""Convert to version string.
|
||||||
|
|
||||||
|
>>> str(BlenderVersion(293, 1, "alpha"))
|
||||||
|
'2.93.1-alpha'
|
||||||
|
>>> str(BlenderVersion(327, 0, "release"))
|
||||||
|
'3.27.0'
|
||||||
|
"""
|
||||||
|
version_major = self.version // 100
|
||||||
|
version_minor = self.version % 100
|
||||||
|
as_string = f"{version_major}.{version_minor}.{self.patch}"
|
||||||
|
if self.is_release:
|
||||||
|
return as_string
|
||||||
|
return f"{as_string}-{self.cycle}"
|
||||||
|
|
||||||
|
|
||||||
|
def parse_blender_version(blender_srcdir: Path) -> BlenderVersion:
|
||||||
|
version_path = blender_srcdir / "source/blender/blenkernel/BKE_blender_version.h"
|
||||||
|
|
||||||
|
version_info = {}
|
||||||
|
line_re = re.compile(r"^#define (BLENDER_VERSION[A-Z_]*)\s+([0-9a-z]+)$")
|
||||||
|
|
||||||
|
with version_path.open(encoding="utf-8") as version_file:
|
||||||
|
for line in version_file:
|
||||||
|
match = line_re.match(line.strip())
|
||||||
|
if not match:
|
||||||
|
continue
|
||||||
|
version_info[match.group(1)] = match.group(2)
|
||||||
|
|
||||||
|
return BlenderVersion(
|
||||||
|
int(version_info["BLENDER_VERSION"]),
|
||||||
|
int(version_info["BLENDER_VERSION_PATCH"]),
|
||||||
|
version_info["BLENDER_VERSION_CYCLE"],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def tarball_path(output_dir: Path, version: BlenderVersion, cli_args: Any) -> Path:
|
||||||
extra = ""
|
extra = ""
|
||||||
if cli_args.include_packages:
|
if cli_args.include_packages:
|
||||||
extra = "-with-libraries"
|
extra = "-with-libraries"
|
||||||
@@ -104,7 +148,7 @@ def packages_path(current_directory: Path, cli_args: Any) -> Optional[Path]:
|
|||||||
|
|
||||||
|
|
||||||
def create_manifest(
|
def create_manifest(
|
||||||
version: make_utils.BlenderVersion,
|
version: BlenderVersion,
|
||||||
outpath: Path,
|
outpath: Path,
|
||||||
blender_srcdir: Path,
|
blender_srcdir: Path,
|
||||||
packages_dir: Optional[Path],
|
packages_dir: Optional[Path],
|
||||||
@@ -126,9 +170,9 @@ def main_files_to_manifest(blender_srcdir: Path, outfile: TextIO) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def submodules_to_manifest(
|
def submodules_to_manifest(
|
||||||
blender_srcdir: Path, version: make_utils.BlenderVersion, outfile: TextIO
|
blender_srcdir: Path, version: BlenderVersion, outfile: TextIO
|
||||||
) -> None:
|
) -> None:
|
||||||
skip_addon_contrib = version.is_release()
|
skip_addon_contrib = version.is_release
|
||||||
assert not blender_srcdir.is_absolute()
|
assert not blender_srcdir.is_absolute()
|
||||||
|
|
||||||
for line in git_command("-C", blender_srcdir, "submodule"):
|
for line in git_command("-C", blender_srcdir, "submodule"):
|
||||||
@@ -156,11 +200,7 @@ def packages_to_manifest(outfile: TextIO, packages_dir: Path) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def create_tarball(
|
def create_tarball(
|
||||||
version: make_utils.BlenderVersion,
|
version: BlenderVersion, tarball: Path, manifest: Path, blender_srcdir: Path, packages_dir: Optional[Path]
|
||||||
tarball: Path,
|
|
||||||
manifest: Path,
|
|
||||||
blender_srcdir: Path,
|
|
||||||
packages_dir: Optional[Path],
|
|
||||||
) -> None:
|
) -> None:
|
||||||
print(f'Creating archive: "{tarball}" ...', end="", flush=True)
|
print(f'Creating archive: "{tarball}" ...', end="", flush=True)
|
||||||
command = ["tar"]
|
command = ["tar"]
|
||||||
|
@@ -18,13 +18,8 @@ import sys
|
|||||||
import make_utils
|
import make_utils
|
||||||
from make_utils import call, check_output
|
from make_utils import call, check_output
|
||||||
|
|
||||||
from typing import (
|
|
||||||
List,
|
|
||||||
Optional,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
def print_stage(text):
|
||||||
def print_stage(text: str) -> None:
|
|
||||||
print("")
|
print("")
|
||||||
print(text)
|
print(text)
|
||||||
print("")
|
print("")
|
||||||
@@ -32,7 +27,7 @@ def print_stage(text: str) -> None:
|
|||||||
# Parse arguments
|
# Parse arguments
|
||||||
|
|
||||||
|
|
||||||
def parse_arguments() -> argparse.Namespace:
|
def parse_arguments():
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("--no-libraries", action="store_true")
|
parser.add_argument("--no-libraries", action="store_true")
|
||||||
parser.add_argument("--no-blender", action="store_true")
|
parser.add_argument("--no-blender", action="store_true")
|
||||||
@@ -45,13 +40,13 @@ def parse_arguments() -> argparse.Namespace:
|
|||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
def get_blender_git_root() -> str:
|
def get_blender_git_root():
|
||||||
return check_output([args.git_command, "rev-parse", "--show-toplevel"])
|
return check_output([args.git_command, "rev-parse", "--show-toplevel"])
|
||||||
|
|
||||||
# Setup for precompiled libraries and tests from svn.
|
# Setup for precompiled libraries and tests from svn.
|
||||||
|
|
||||||
|
|
||||||
def svn_update(args: argparse.Namespace, release_version: Optional[str]) -> None:
|
def svn_update(args, release_version):
|
||||||
svn_non_interactive = [args.svn_command, '--non-interactive']
|
svn_non_interactive = [args.svn_command, '--non-interactive']
|
||||||
|
|
||||||
lib_dirpath = os.path.join(get_blender_git_root(), '..', 'lib')
|
lib_dirpath = os.path.join(get_blender_git_root(), '..', 'lib')
|
||||||
@@ -59,11 +54,10 @@ def svn_update(args: argparse.Namespace, release_version: Optional[str]) -> None
|
|||||||
|
|
||||||
# Checkout precompiled libraries
|
# Checkout precompiled libraries
|
||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
# Check platform.version to detect arm64 with x86_64 python binary.
|
if platform.machine() == 'x86_64':
|
||||||
if platform.machine() == 'arm64' or ('ARM64' in platform.version()):
|
|
||||||
lib_platform = "darwin_arm64"
|
|
||||||
elif platform.machine() == 'x86_64':
|
|
||||||
lib_platform = "darwin"
|
lib_platform = "darwin"
|
||||||
|
elif platform.machine() == 'arm64':
|
||||||
|
lib_platform = "darwin_arm64"
|
||||||
else:
|
else:
|
||||||
lib_platform = None
|
lib_platform = None
|
||||||
elif sys.platform == 'win32':
|
elif sys.platform == 'win32':
|
||||||
@@ -105,42 +99,42 @@ def svn_update(args: argparse.Namespace, release_version: Optional[str]) -> None
|
|||||||
call(svn_non_interactive + ["checkout", svn_url_tests, lib_tests_dirpath])
|
call(svn_non_interactive + ["checkout", svn_url_tests, lib_tests_dirpath])
|
||||||
|
|
||||||
# Update precompiled libraries and tests
|
# Update precompiled libraries and tests
|
||||||
|
print_stage("Updating Precompiled Libraries and Tests")
|
||||||
|
|
||||||
if not os.path.isdir(lib_dirpath):
|
if os.path.isdir(lib_dirpath):
|
||||||
print("Library path: %r, not found, skipping" % lib_dirpath)
|
for dirname in os.listdir(lib_dirpath):
|
||||||
else:
|
dirpath = os.path.join(lib_dirpath, dirname)
|
||||||
paths_local_and_remote = []
|
|
||||||
if os.path.exists(os.path.join(lib_dirpath, ".svn")):
|
|
||||||
print_stage("Updating Precompiled Libraries and Tests (one repository)")
|
|
||||||
paths_local_and_remote.append((lib_dirpath, svn_url))
|
|
||||||
else:
|
|
||||||
print_stage("Updating Precompiled Libraries and Tests (multiple repositories)")
|
|
||||||
# Separate paths checked out.
|
|
||||||
for dirname in os.listdir(lib_dirpath):
|
|
||||||
if dirname.startswith("."):
|
|
||||||
# Temporary paths such as ".mypy_cache" will report a warning, skip hidden directories.
|
|
||||||
continue
|
|
||||||
|
|
||||||
dirpath = os.path.join(lib_dirpath, dirname)
|
if dirname == ".svn":
|
||||||
if not (os.path.isdir(dirpath) and os.path.exists(os.path.join(dirpath, ".svn"))):
|
# Cleanup must be run from svn root directory if it exists.
|
||||||
continue
|
if not make_utils.command_missing(args.svn_command):
|
||||||
|
call(svn_non_interactive + ["cleanup", lib_dirpath])
|
||||||
|
continue
|
||||||
|
elif dirname.startswith("."):
|
||||||
|
# Temporary paths such as ".mypy_cache" will report a warning, skip hidden directories.
|
||||||
|
continue
|
||||||
|
|
||||||
paths_local_and_remote.append((dirpath, svn_url + dirname))
|
svn_dirpath = os.path.join(dirpath, ".svn")
|
||||||
|
svn_root_dirpath = os.path.join(lib_dirpath, ".svn")
|
||||||
|
|
||||||
if paths_local_and_remote:
|
if (
|
||||||
if make_utils.command_missing(args.svn_command):
|
os.path.isdir(dirpath) and
|
||||||
sys.stderr.write("svn not found, can't update libraries\n")
|
(os.path.exists(svn_dirpath) or os.path.exists(svn_root_dirpath))
|
||||||
sys.exit(1)
|
):
|
||||||
|
if make_utils.command_missing(args.svn_command):
|
||||||
|
sys.stderr.write("svn not found, can't update libraries\n")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
for dirpath, svn_url_full in paths_local_and_remote:
|
# Cleanup to continue with interrupted downloads.
|
||||||
call(svn_non_interactive + ["cleanup", dirpath])
|
if os.path.exists(svn_dirpath):
|
||||||
|
call(svn_non_interactive + ["cleanup", dirpath])
|
||||||
# Switch to appropriate branch and update.
|
# Switch to appropriate branch and update.
|
||||||
call(svn_non_interactive + ["switch", svn_url_full, dirpath], exit_on_error=False)
|
call(svn_non_interactive + ["switch", svn_url + dirname, dirpath], exit_on_error=False)
|
||||||
call(svn_non_interactive + ["update", dirpath])
|
call(svn_non_interactive + ["update", dirpath])
|
||||||
|
|
||||||
|
|
||||||
# Test if git repo can be updated.
|
# Test if git repo can be updated.
|
||||||
def git_update_skip(args: argparse.Namespace, check_remote_exists: bool = True) -> str:
|
def git_update_skip(args, check_remote_exists=True):
|
||||||
if make_utils.command_missing(args.git_command):
|
if make_utils.command_missing(args.git_command):
|
||||||
sys.stderr.write("git not found, can't update code\n")
|
sys.stderr.write("git not found, can't update code\n")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
@@ -172,17 +166,13 @@ def git_update_skip(args: argparse.Namespace, check_remote_exists: bool = True)
|
|||||||
|
|
||||||
|
|
||||||
# Update blender repository.
|
# Update blender repository.
|
||||||
def blender_update(args: argparse.Namespace) -> None:
|
def blender_update(args):
|
||||||
print_stage("Updating Blender Git Repository")
|
print_stage("Updating Blender Git Repository")
|
||||||
call([args.git_command, "pull", "--rebase"])
|
call([args.git_command, "pull", "--rebase"])
|
||||||
|
|
||||||
|
|
||||||
# Update submodules.
|
# Update submodules.
|
||||||
def submodules_update(
|
def submodules_update(args, release_version, branch):
|
||||||
args: argparse.Namespace,
|
|
||||||
release_version: Optional[str],
|
|
||||||
branch: Optional[str],
|
|
||||||
) -> str:
|
|
||||||
print_stage("Updating Submodules")
|
print_stage("Updating Submodules")
|
||||||
if make_utils.command_missing(args.git_command):
|
if make_utils.command_missing(args.git_command):
|
||||||
sys.stderr.write("git not found, can't update code\n")
|
sys.stderr.write("git not found, can't update code\n")
|
||||||
@@ -224,8 +214,7 @@ def submodules_update(
|
|||||||
elif make_utils.git_branch_exists(args.git_command, submodule_branch_fallback):
|
elif make_utils.git_branch_exists(args.git_command, submodule_branch_fallback):
|
||||||
submodule_branch = submodule_branch_fallback
|
submodule_branch = submodule_branch_fallback
|
||||||
else:
|
else:
|
||||||
# Skip.
|
submodule_branch = None
|
||||||
submodule_branch = ""
|
|
||||||
|
|
||||||
# Switch to branch and pull.
|
# Switch to branch and pull.
|
||||||
if submodule_branch:
|
if submodule_branch:
|
||||||
|
@@ -9,15 +9,9 @@ import re
|
|||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from typing import (
|
|
||||||
Sequence,
|
|
||||||
Optional,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def call(cmd: Sequence[str], exit_on_error: bool = True, silent: bool = False) -> int:
|
def call(cmd, exit_on_error=True, silent=False):
|
||||||
if not silent:
|
if not silent:
|
||||||
print(" ".join(cmd))
|
print(" ".join(cmd))
|
||||||
|
|
||||||
@@ -35,7 +29,7 @@ def call(cmd: Sequence[str], exit_on_error: bool = True, silent: bool = False) -
|
|||||||
return retcode
|
return retcode
|
||||||
|
|
||||||
|
|
||||||
def check_output(cmd: Sequence[str], exit_on_error: bool = True) -> str:
|
def check_output(cmd, exit_on_error=True):
|
||||||
# Flush to ensure correct order output on Windows.
|
# Flush to ensure correct order output on Windows.
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
sys.stderr.flush()
|
sys.stderr.flush()
|
||||||
@@ -52,14 +46,14 @@ def check_output(cmd: Sequence[str], exit_on_error: bool = True) -> str:
|
|||||||
return output.strip()
|
return output.strip()
|
||||||
|
|
||||||
|
|
||||||
def git_branch_exists(git_command: str, branch: str) -> bool:
|
def git_branch_exists(git_command, branch):
|
||||||
return (
|
return (
|
||||||
call([git_command, "rev-parse", "--verify", branch], exit_on_error=False, silent=True) == 0 or
|
call([git_command, "rev-parse", "--verify", branch], exit_on_error=False, silent=True) == 0 or
|
||||||
call([git_command, "rev-parse", "--verify", "remotes/origin/" + branch], exit_on_error=False, silent=True) == 0
|
call([git_command, "rev-parse", "--verify", "remotes/origin/" + branch], exit_on_error=False, silent=True) == 0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def git_branch(git_command: str) -> str:
|
def git_branch(git_command):
|
||||||
# Get current branch name.
|
# Get current branch name.
|
||||||
try:
|
try:
|
||||||
branch = subprocess.check_output([git_command, "rev-parse", "--abbrev-ref", "HEAD"])
|
branch = subprocess.check_output([git_command, "rev-parse", "--abbrev-ref", "HEAD"])
|
||||||
@@ -70,7 +64,7 @@ def git_branch(git_command: str) -> str:
|
|||||||
return branch.strip().decode('utf8')
|
return branch.strip().decode('utf8')
|
||||||
|
|
||||||
|
|
||||||
def git_tag(git_command: str) -> Optional[str]:
|
def git_tag(git_command):
|
||||||
# Get current tag name.
|
# Get current tag name.
|
||||||
try:
|
try:
|
||||||
tag = subprocess.check_output([git_command, "describe", "--exact-match"], stderr=subprocess.STDOUT)
|
tag = subprocess.check_output([git_command, "describe", "--exact-match"], stderr=subprocess.STDOUT)
|
||||||
@@ -80,19 +74,18 @@ def git_tag(git_command: str) -> Optional[str]:
|
|||||||
return tag.strip().decode('utf8')
|
return tag.strip().decode('utf8')
|
||||||
|
|
||||||
|
|
||||||
def git_branch_release_version(branch: str, tag: Optional[str]) -> Optional[str]:
|
def git_branch_release_version(branch, tag):
|
||||||
re_match = re.search("^blender-v(.*)-release$", branch)
|
release_version = re.search("^blender-v(.*)-release$", branch)
|
||||||
release_version = None
|
if release_version:
|
||||||
if re_match:
|
release_version = release_version.group(1)
|
||||||
release_version = re_match.group(1)
|
|
||||||
elif tag:
|
elif tag:
|
||||||
re_match = re.search(r"^v([0-9]*\.[0-9]*).*", tag)
|
release_version = re.search(r"^v([0-9]*\.[0-9]*).*", tag)
|
||||||
if re_match:
|
if release_version:
|
||||||
release_version = re_match.group(1)
|
release_version = release_version.group(1)
|
||||||
return release_version
|
return release_version
|
||||||
|
|
||||||
|
|
||||||
def svn_libraries_base_url(release_version: Optional[str], branch: Optional[str] = None) -> str:
|
def svn_libraries_base_url(release_version, branch=None):
|
||||||
if release_version:
|
if release_version:
|
||||||
svn_branch = "tags/blender-" + release_version + "-release"
|
svn_branch = "tags/blender-" + release_version + "-release"
|
||||||
elif branch:
|
elif branch:
|
||||||
@@ -102,58 +95,9 @@ def svn_libraries_base_url(release_version: Optional[str], branch: Optional[str]
|
|||||||
return "https://svn.blender.org/svnroot/bf-blender/" + svn_branch + "/lib/"
|
return "https://svn.blender.org/svnroot/bf-blender/" + svn_branch + "/lib/"
|
||||||
|
|
||||||
|
|
||||||
def command_missing(command: str) -> bool:
|
def command_missing(command):
|
||||||
# Support running with Python 2 for macOS
|
# Support running with Python 2 for macOS
|
||||||
if sys.version_info >= (3, 0):
|
if sys.version_info >= (3, 0):
|
||||||
return shutil.which(command) is None
|
return shutil.which(command) is None
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
class BlenderVersion:
|
|
||||||
def __init__(self, version: int, patch: int, cycle: str):
|
|
||||||
# 293 for 2.93.1
|
|
||||||
self.version = version
|
|
||||||
# 1 for 2.93.1
|
|
||||||
self.patch = patch
|
|
||||||
# 'alpha', 'beta', 'release', maybe others.
|
|
||||||
self.cycle = cycle
|
|
||||||
|
|
||||||
def is_release(self) -> bool:
|
|
||||||
return self.cycle == "release"
|
|
||||||
|
|
||||||
def __str__(self) -> str:
|
|
||||||
"""Convert to version string.
|
|
||||||
|
|
||||||
>>> str(BlenderVersion(293, 1, "alpha"))
|
|
||||||
'2.93.1-alpha'
|
|
||||||
>>> str(BlenderVersion(327, 0, "release"))
|
|
||||||
'3.27.0'
|
|
||||||
"""
|
|
||||||
version_major = self.version // 100
|
|
||||||
version_minor = self.version % 100
|
|
||||||
as_string = f"{version_major}.{version_minor}.{self.patch}"
|
|
||||||
if self.is_release():
|
|
||||||
return as_string
|
|
||||||
return f"{as_string}-{self.cycle}"
|
|
||||||
|
|
||||||
|
|
||||||
def parse_blender_version() -> BlenderVersion:
|
|
||||||
blender_srcdir = Path(__file__).absolute().parent.parent.parent
|
|
||||||
version_path = blender_srcdir / "source/blender/blenkernel/BKE_blender_version.h"
|
|
||||||
|
|
||||||
version_info = {}
|
|
||||||
line_re = re.compile(r"^#define (BLENDER_VERSION[A-Z_]*)\s+([0-9a-z]+)$")
|
|
||||||
|
|
||||||
with version_path.open(encoding="utf-8") as version_file:
|
|
||||||
for line in version_file:
|
|
||||||
match = line_re.match(line.strip())
|
|
||||||
if not match:
|
|
||||||
continue
|
|
||||||
version_info[match.group(1)] = match.group(2)
|
|
||||||
|
|
||||||
return BlenderVersion(
|
|
||||||
int(version_info["BLENDER_VERSION"]),
|
|
||||||
int(version_info["BLENDER_VERSION_PATCH"]),
|
|
||||||
version_info["BLENDER_VERSION_CYCLE"],
|
|
||||||
)
|
|
||||||
|
@@ -80,11 +80,9 @@ if NOT "%1" == "" (
|
|||||||
REM Non-Build Commands
|
REM Non-Build Commands
|
||||||
) else if "%1" == "update" (
|
) else if "%1" == "update" (
|
||||||
SET BUILD_UPDATE=1
|
SET BUILD_UPDATE=1
|
||||||
SET BUILD_UPDATE_SVN=1
|
|
||||||
set BUILD_UPDATE_ARGS=
|
set BUILD_UPDATE_ARGS=
|
||||||
) else if "%1" == "code_update" (
|
) else if "%1" == "code_update" (
|
||||||
SET BUILD_UPDATE=1
|
SET BUILD_UPDATE=1
|
||||||
SET BUILD_UPDATE_SVN=0
|
|
||||||
set BUILD_UPDATE_ARGS="--no-libraries"
|
set BUILD_UPDATE_ARGS="--no-libraries"
|
||||||
) else if "%1" == "ninja" (
|
) else if "%1" == "ninja" (
|
||||||
SET BUILD_WITH_NINJA=1
|
SET BUILD_WITH_NINJA=1
|
||||||
|
@@ -34,4 +34,3 @@ set BUILD_WITH_SCCACHE=
|
|||||||
set ICONS=
|
set ICONS=
|
||||||
set ICONS_GEOM=
|
set ICONS_GEOM=
|
||||||
set DOC_PY=
|
set DOC_PY=
|
||||||
SET BUILD_UPDATE_SVN=
|
|
@@ -1,24 +0,0 @@
|
|||||||
if "%BUILD_VS_YEAR%"=="2019" set BUILD_VS_LIBDIRPOST=vc15
|
|
||||||
if "%BUILD_VS_YEAR%"=="2022" set BUILD_VS_LIBDIRPOST=vc15
|
|
||||||
|
|
||||||
set BUILD_VS_SVNDIR=win64_%BUILD_VS_LIBDIRPOST%
|
|
||||||
set BUILD_VS_LIBDIR="%BLENDER_DIR%..\lib\%BUILD_VS_SVNDIR%"
|
|
||||||
|
|
||||||
cd %BUILD_VS_LIBDIR%
|
|
||||||
:RETRY
|
|
||||||
"%SVN%" update
|
|
||||||
if errorlevel 1 (
|
|
||||||
set /p LibRetry= "Error during update, retry? y/n"
|
|
||||||
if /I "!LibRetry!"=="Y" (
|
|
||||||
"%SVN%" cleanup
|
|
||||||
goto RETRY
|
|
||||||
)
|
|
||||||
echo.
|
|
||||||
echo Error: Download of external libraries failed.
|
|
||||||
echo This is needed for building, please manually run 'svn cleanup' and 'svn update' in
|
|
||||||
echo %BUILD_VS_LIBDIR% , until this is resolved you CANNOT make a successful blender build
|
|
||||||
echo.
|
|
||||||
exit /b 1
|
|
||||||
)
|
|
||||||
|
|
||||||
cd %BLENDER_DIR%
|
|
@@ -38,7 +38,7 @@ PROJECT_NAME = Blender
|
|||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = V3.5
|
PROJECT_NUMBER = V3.4
|
||||||
|
|
||||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||||
# for a project that appears at the top of each page and should give viewer a
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
|
@@ -139,7 +139,7 @@ https://www.blender.org''')
|
|||||||
|
|
||||||
l = lines.pop(0)
|
l = lines.pop(0)
|
||||||
if l:
|
if l:
|
||||||
assert l.startswith('\t')
|
assert(l.startswith('\t'))
|
||||||
l = l[1:] # Remove first white-space (tab).
|
l = l[1:] # Remove first white-space (tab).
|
||||||
|
|
||||||
fh.write('%s\n' % man_format(l))
|
fh.write('%s\n' % man_format(l))
|
||||||
|
@@ -134,6 +134,7 @@ batch = batch_for_shader(shader, 'LINES', {"pos": coords})
|
|||||||
|
|
||||||
|
|
||||||
def draw():
|
def draw():
|
||||||
|
shader.bind()
|
||||||
shader.uniform_float("color", (1, 1, 0, 1))
|
shader.uniform_float("color", (1, 1, 0, 1))
|
||||||
batch.draw(shader)
|
batch.draw(shader)
|
||||||
|
|
||||||
|
@@ -58,6 +58,7 @@ batch = batch_for_shader(
|
|||||||
|
|
||||||
|
|
||||||
def draw():
|
def draw():
|
||||||
|
shader.bind()
|
||||||
matrix = bpy.context.region_data.perspective_matrix
|
matrix = bpy.context.region_data.perspective_matrix
|
||||||
shader.uniform_float("u_ViewProjectionMatrix", matrix)
|
shader.uniform_float("u_ViewProjectionMatrix", matrix)
|
||||||
shader.uniform_float("u_Scale", 10)
|
shader.uniform_float("u_Scale", 10)
|
||||||
|
@@ -41,6 +41,7 @@ batch = batch_for_shader(shader, 'TRIS', {"position": coords})
|
|||||||
|
|
||||||
|
|
||||||
def draw():
|
def draw():
|
||||||
|
shader.bind()
|
||||||
matrix = bpy.context.region_data.perspective_matrix
|
matrix = bpy.context.region_data.perspective_matrix
|
||||||
shader.uniform_float("viewProjectionMatrix", matrix)
|
shader.uniform_float("viewProjectionMatrix", matrix)
|
||||||
shader.uniform_float("brightness", 0.5)
|
shader.uniform_float("brightness", 0.5)
|
||||||
|
@@ -22,6 +22,7 @@ batch = batch_for_shader(shader, 'LINES', {"pos": coords}, indices=indices)
|
|||||||
|
|
||||||
|
|
||||||
def draw():
|
def draw():
|
||||||
|
shader.bind()
|
||||||
shader.uniform_float("color", (1, 0, 0, 1))
|
shader.uniform_float("color", (1, 0, 0, 1))
|
||||||
batch.draw(shader)
|
batch.draw(shader)
|
||||||
|
|
||||||
|
@@ -18,6 +18,7 @@ batch = batch_for_shader(shader, 'TRIS', {"pos": vertices}, indices=indices)
|
|||||||
|
|
||||||
|
|
||||||
def draw():
|
def draw():
|
||||||
|
shader.bind()
|
||||||
shader.uniform_float("color", (0, 0.5, 0.5, 1.0))
|
shader.uniform_float("color", (0, 0.5, 0.5, 1.0))
|
||||||
batch.draw(shader)
|
batch.draw(shader)
|
||||||
|
|
||||||
|
@@ -56,6 +56,7 @@ batch = batch_for_shader(
|
|||||||
|
|
||||||
|
|
||||||
def draw():
|
def draw():
|
||||||
|
shader.bind()
|
||||||
shader.uniform_sampler("image", texture)
|
shader.uniform_sampler("image", texture)
|
||||||
batch.draw(shader)
|
batch.draw(shader)
|
||||||
|
|
||||||
|
@@ -76,6 +76,7 @@ batch = batch_for_shader(
|
|||||||
|
|
||||||
|
|
||||||
def draw():
|
def draw():
|
||||||
|
shader.bind()
|
||||||
shader.uniform_float("modelMatrix", Matrix.Translation((1, 2, 3)) @ Matrix.Scale(3, 4))
|
shader.uniform_float("modelMatrix", Matrix.Translation((1, 2, 3)) @ Matrix.Scale(3, 4))
|
||||||
shader.uniform_float("viewProjectionMatrix", bpy.context.region_data.perspective_matrix)
|
shader.uniform_float("viewProjectionMatrix", bpy.context.region_data.perspective_matrix)
|
||||||
shader.uniform_sampler("image", offscreen.texture_color)
|
shader.uniform_sampler("image", offscreen.texture_color)
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
sphinx==5.3.0
|
sphinx==5.0.1
|
||||||
|
|
||||||
# Sphinx dependencies that are important
|
# Sphinx dependencies that are important
|
||||||
Jinja2==3.1.2
|
Jinja2==3.1.2
|
||||||
Pygments==2.13.0
|
Pygments==2.12.0
|
||||||
docutils==0.17.1
|
docutils==0.17.1
|
||||||
snowballstemmer==2.2.0
|
snowballstemmer==2.2.0
|
||||||
babel==2.11.0
|
babel==2.10.1
|
||||||
requests==2.28.1
|
requests==2.27.1
|
||||||
|
|
||||||
# Only needed to match the theme used for the official documentation.
|
# Only needed to match the theme used for the official documentation.
|
||||||
# Without this theme, the default theme will be used.
|
# Without this theme, the default theme will be used.
|
||||||
sphinx_rtd_theme==1.1.0
|
sphinx_rtd_theme==1.0.0
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
:tocdepth: 2
|
:tocdepth: 2
|
||||||
|
|
||||||
Change Log
|
Blender API Change Log
|
||||||
**********
|
**********************
|
||||||
|
|
||||||
Changes in Blender's Python API between releases.
|
|
||||||
|
|
||||||
.. note, this document is auto generated by sphinx_changelog_gen.py
|
.. note, this document is auto generated by sphinx_changelog_gen.py
|
||||||
|
|
||||||
|
@@ -1,15 +0,0 @@
|
|||||||
.. _info_advanced-index:
|
|
||||||
|
|
||||||
********
|
|
||||||
Advanced
|
|
||||||
********
|
|
||||||
|
|
||||||
This chapter covers advanced use (topics which may not be required for typical usage).
|
|
||||||
|
|
||||||
.. NOTE(@campbellbarton): Blender-as-a-Python-module is too obscure a topic to list directly on the main-page,
|
|
||||||
so opt for an "Advanced" page which can be expanded on as needed.
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
|
|
||||||
info_advanced_blender_as_bpy.rst
|
|
@@ -1,126 +0,0 @@
|
|||||||
|
|
||||||
**************************
|
|
||||||
Blender as a Python Module
|
|
||||||
**************************
|
|
||||||
|
|
||||||
Blender supports being built as a Python module,
|
|
||||||
allowing ``import bpy`` to be added to any Python script, providing access to Blender's features.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
At time of writing official builds are not available,
|
|
||||||
using this requires compiling Blender yourself see
|
|
||||||
`build instructions <https://wiki.blender.org/w/index.php?title=Building_Blender/Other/BlenderAsPyModule>`__.
|
|
||||||
|
|
||||||
|
|
||||||
Use Cases
|
|
||||||
=========
|
|
||||||
|
|
||||||
Python developers may wish to integrate Blender scripts which don't center around Blender.
|
|
||||||
|
|
||||||
Possible uses include:
|
|
||||||
|
|
||||||
- Visualizing data by rendering images and animations.
|
|
||||||
- Image processing using Blender's compositor.
|
|
||||||
- Video editing (using Blender's sequencer).
|
|
||||||
- 3D file conversion.
|
|
||||||
- Development, accessing ``bpy`` from Python IDE's and debugging tools for example.
|
|
||||||
- Automation.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
For the most part using Blender as a Python module is equivalent to running a script in background-mode
|
|
||||||
(passing the command-line arguments ``--background`` or ``-b``),
|
|
||||||
however there are some differences to be aware of.
|
|
||||||
|
|
||||||
.. Sorted alphabetically as there isn't an especially a logical order to show them.
|
|
||||||
|
|
||||||
Blender's Executable Access
|
|
||||||
The attribute :class:`bpy.app.binary_path` defaults to an empty string.
|
|
||||||
|
|
||||||
If you wish to point this to the location of a known executable you may set the value.
|
|
||||||
|
|
||||||
This example searches for the binary, setting it when found:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
import bpy
|
|
||||||
import shutil
|
|
||||||
|
|
||||||
blender_bin = shutil.which("blender")
|
|
||||||
if blender_bin:
|
|
||||||
print("Found:", blender_bin)
|
|
||||||
bpy.app.binary_path = blender_bin
|
|
||||||
else:
|
|
||||||
print("Unable to find blender!")
|
|
||||||
|
|
||||||
Blender's Internal Modules
|
|
||||||
There are many modules included with Blender such as :mod:`gpu` and :mod:`mathuils`.
|
|
||||||
It's important that these are imported after ``bpy`` or they will not be found.
|
|
||||||
|
|
||||||
Command Line Arguments Unsupported
|
|
||||||
Functionality controlled by command line arguments (shown by calling ``blender --help`` aren't accessible).
|
|
||||||
|
|
||||||
Typically this isn't such a limitation although there are some command line arguments that don't have
|
|
||||||
equivalents in Blender's Python API (``--threads`` and ``--log`` for example).
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Access to these settings may be added in the future as needed.
|
|
||||||
|
|
||||||
Resource Sharing (GPU)
|
|
||||||
It's possible other Python modules make use of the GPU in a way that prevents Blender/Cycles from accessing the GPU.
|
|
||||||
|
|
||||||
Signal Handlers
|
|
||||||
Blender's typical signal handlers are not initialized, so there is no special handling for ``Control-C``
|
|
||||||
to cancel a render and a crash log is not written in the event of a crash.
|
|
||||||
|
|
||||||
Startup and Preferences
|
|
||||||
When the ``bpy`` module loads it contains the default startup scene
|
|
||||||
(instead of an "empty" blend-file as you might expect), so there is a default cube, camera and light.
|
|
||||||
|
|
||||||
If you wish to start from an empty file use: ``bpy.ops.wm.read_factory_settings(use_empty=True)``.
|
|
||||||
|
|
||||||
The users startup and preferences are ignored to prevent your local configuration from impacting scripts behavior.
|
|
||||||
The Python module behaves as if ``--factory-startup`` was passed as a command line argument.
|
|
||||||
|
|
||||||
The users preferences and startup can be loaded using operators:
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
import bpy
|
|
||||||
|
|
||||||
bpy.ops.wm.read_userpref()
|
|
||||||
bpy.ops.wm.read_homefile()
|
|
||||||
|
|
||||||
|
|
||||||
Limitations
|
|
||||||
===========
|
|
||||||
|
|
||||||
Most constraints of Blender as an application still apply:
|
|
||||||
|
|
||||||
Reloading Unsupported
|
|
||||||
Reloading the ``bpy`` module via ``importlib.reload`` will raise an exception
|
|
||||||
instead of reloading and resetting the module.
|
|
||||||
|
|
||||||
Instead, the operator ``bpy.ops.wm.read_factory_settings()`` can be used to reset the internal state.
|
|
||||||
|
|
||||||
Single Blend File Restriction
|
|
||||||
Only a single ``.blend`` file can be edited at a time.
|
|
||||||
|
|
||||||
.. hint::
|
|
||||||
|
|
||||||
As with the application it's possible to start multiple instances,
|
|
||||||
each with their own ``bpy`` and therefor Blender state.
|
|
||||||
Python provides the ``multiprocessing`` module to make communicating with sub-processes more convenient.
|
|
||||||
|
|
||||||
In some cases the library API may be an alternative to starting separate processes,
|
|
||||||
although this API operates on reading and writing ID data-blocks and isn't
|
|
||||||
a complete substitute for loading ``.blend`` files, see:
|
|
||||||
|
|
||||||
- :meth:`bpy.types.BlendDataLibraries.load`
|
|
||||||
- :meth:`bpy.types.BlendDataLibraries.write`
|
|
||||||
- :meth:`bpy.types.BlendData.temp_data`
|
|
||||||
supports a temporary data-context to avoid manipulating the current ``.blend`` file.
|
|
@@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
*******************
|
*******************
|
||||||
API Reference Usage
|
Reference API Usage
|
||||||
*******************
|
*******************
|
||||||
|
|
||||||
Blender has many interlinking data types which have an auto-generated reference API which often has the information
|
Blender has many interlinking data types which have an auto-generated reference API which often has the information
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
.. _info_overview:
|
.. _info_overview:
|
||||||
|
|
||||||
************
|
*******************
|
||||||
API Overview
|
Python API Overview
|
||||||
************
|
*******************
|
||||||
|
|
||||||
The purpose of this document is to explain how Python and Blender fit together,
|
The purpose of this document is to explain how Python and Blender fit together,
|
||||||
covering some of the functionality that may not be obvious from reading the API references
|
covering some of the functionality that may not be obvious from reading the API references
|
||||||
|
@@ -241,9 +241,9 @@ def main():
|
|||||||
comment_washed = []
|
comment_washed = []
|
||||||
comment = [] if comment is None else comment
|
comment = [] if comment is None else comment
|
||||||
for i, l in enumerate(comment):
|
for i, l in enumerate(comment):
|
||||||
assert ((l.strip() == "") or
|
assert((l.strip() == "") or
|
||||||
(l in {"/*", " *"}) or
|
(l in {"/*", " *"}) or
|
||||||
(l.startswith(("/* ", " * "))))
|
(l.startswith(("/* ", " * "))))
|
||||||
|
|
||||||
l = l[3:]
|
l = l[3:]
|
||||||
if i == 0 and not l.strip():
|
if i == 0 and not l.strip():
|
||||||
@@ -270,7 +270,7 @@ def main():
|
|||||||
tp_sub = None
|
tp_sub = None
|
||||||
else:
|
else:
|
||||||
print(arg)
|
print(arg)
|
||||||
assert 0
|
assert(0)
|
||||||
|
|
||||||
tp_str = ""
|
tp_str = ""
|
||||||
|
|
||||||
@@ -315,7 +315,7 @@ def main():
|
|||||||
tp_str += " or any sequence of 3 floats"
|
tp_str += " or any sequence of 3 floats"
|
||||||
elif tp == BMO_OP_SLOT_PTR:
|
elif tp == BMO_OP_SLOT_PTR:
|
||||||
tp_str = "dict"
|
tp_str = "dict"
|
||||||
assert tp_sub is not None
|
assert(tp_sub is not None)
|
||||||
if tp_sub == BMO_OP_SLOT_SUBTYPE_PTR_BMESH:
|
if tp_sub == BMO_OP_SLOT_SUBTYPE_PTR_BMESH:
|
||||||
tp_str = ":class:`bmesh.types.BMesh`"
|
tp_str = ":class:`bmesh.types.BMesh`"
|
||||||
elif tp_sub == BMO_OP_SLOT_SUBTYPE_PTR_SCENE:
|
elif tp_sub == BMO_OP_SLOT_SUBTYPE_PTR_SCENE:
|
||||||
@@ -330,10 +330,10 @@ def main():
|
|||||||
tp_str = ":class:`bpy.types.bpy_struct`"
|
tp_str = ":class:`bpy.types.bpy_struct`"
|
||||||
else:
|
else:
|
||||||
print("Can't find", vars_dict_reverse[tp_sub])
|
print("Can't find", vars_dict_reverse[tp_sub])
|
||||||
assert 0
|
assert(0)
|
||||||
|
|
||||||
elif tp == BMO_OP_SLOT_ELEMENT_BUF:
|
elif tp == BMO_OP_SLOT_ELEMENT_BUF:
|
||||||
assert tp_sub is not None
|
assert(tp_sub is not None)
|
||||||
|
|
||||||
ls = []
|
ls = []
|
||||||
if tp_sub & BM_VERT:
|
if tp_sub & BM_VERT:
|
||||||
@@ -342,7 +342,7 @@ def main():
|
|||||||
ls.append(":class:`bmesh.types.BMEdge`")
|
ls.append(":class:`bmesh.types.BMEdge`")
|
||||||
if tp_sub & BM_FACE:
|
if tp_sub & BM_FACE:
|
||||||
ls.append(":class:`bmesh.types.BMFace`")
|
ls.append(":class:`bmesh.types.BMFace`")
|
||||||
assert ls # Must be at least one.
|
assert(ls) # must be at least one
|
||||||
|
|
||||||
if tp_sub & BMO_OP_SLOT_SUBTYPE_ELEM_IS_SINGLE:
|
if tp_sub & BMO_OP_SLOT_SUBTYPE_ELEM_IS_SINGLE:
|
||||||
tp_str = "/".join(ls)
|
tp_str = "/".join(ls)
|
||||||
@@ -367,10 +367,10 @@ def main():
|
|||||||
tp_str += "unknown internal data, not compatible with python"
|
tp_str += "unknown internal data, not compatible with python"
|
||||||
else:
|
else:
|
||||||
print("Can't find", vars_dict_reverse[tp_sub])
|
print("Can't find", vars_dict_reverse[tp_sub])
|
||||||
assert 0
|
assert(0)
|
||||||
else:
|
else:
|
||||||
print("Can't find", vars_dict_reverse[tp])
|
print("Can't find", vars_dict_reverse[tp])
|
||||||
assert 0
|
assert(0)
|
||||||
|
|
||||||
args_wash.append((name, tp_str, comment))
|
args_wash.append((name, tp_str, comment))
|
||||||
return args_wash
|
return args_wash
|
||||||
@@ -394,7 +394,7 @@ def main():
|
|||||||
fw(" :return:\n\n")
|
fw(" :return:\n\n")
|
||||||
|
|
||||||
for (name, tp, comment) in args_out_wash:
|
for (name, tp, comment) in args_out_wash:
|
||||||
assert name.endswith(".out")
|
assert(name.endswith(".out"))
|
||||||
name = name[:-4]
|
name = name[:-4]
|
||||||
fw(" - ``%s``: %s\n\n" % (name, comment))
|
fw(" - ``%s``: %s\n\n" % (name, comment))
|
||||||
fw(" **type** %s\n" % tp)
|
fw(" **type** %s\n" % tp)
|
||||||
|
@@ -101,7 +101,7 @@ def api_dump(args):
|
|||||||
|
|
||||||
version, version_key = api_version()
|
version, version_key = api_version()
|
||||||
if version is None:
|
if version is None:
|
||||||
raise ValueError("API dumps can only be generated from within Blender.")
|
raise(ValueError("API dumps can only be generated from within Blender."))
|
||||||
|
|
||||||
dump = {}
|
dump = {}
|
||||||
dump_module = dump["bpy.types"] = {}
|
dump_module = dump["bpy.types"] = {}
|
||||||
@@ -250,7 +250,7 @@ def api_changelog(args):
|
|||||||
|
|
||||||
version, version_key = api_version()
|
version, version_key = api_version()
|
||||||
if version is None and (filepath_in_from is None or filepath_in_to is None):
|
if version is None and (filepath_in_from is None or filepath_in_to is None):
|
||||||
raise ValueError("API dumps files must be given when ran outside of Blender.")
|
raise(ValueError("API dumps files must be given when ran outside of Blender."))
|
||||||
|
|
||||||
with open(indexpath, 'r', encoding='utf-8') as file_handle:
|
with open(indexpath, 'r', encoding='utf-8') as file_handle:
|
||||||
index = json.load(file_handle)
|
index = json.load(file_handle)
|
||||||
@@ -258,21 +258,17 @@ def api_changelog(args):
|
|||||||
if filepath_in_to is None:
|
if filepath_in_to is None:
|
||||||
filepath_in_to = index.get(version_key, None)
|
filepath_in_to = index.get(version_key, None)
|
||||||
if filepath_in_to is None:
|
if filepath_in_to is None:
|
||||||
raise ValueError("Cannot find API dump file for Blender version " + str(version) + " in index file.")
|
raise(ValueError("Cannot find API dump file for Blender version " + str(version) + " in index file."))
|
||||||
|
|
||||||
print("Found to file: %r" % filepath_in_to)
|
print("Found to file: %r" % filepath_in_to)
|
||||||
|
|
||||||
if filepath_in_from is None:
|
if filepath_in_from is None:
|
||||||
version_from, version_from_key = api_version_previous_in_index(index, version)
|
version_from, version_from_key = api_version_previous_in_index(index, version)
|
||||||
if version_from is None:
|
if version_from is None:
|
||||||
raise ValueError("No previous version of Blender could be found in the index.")
|
raise(ValueError("No previous version of Blender could be found in the index."))
|
||||||
filepath_in_from = index.get(version_from_key, None)
|
filepath_in_from = index.get(version_from_key, None)
|
||||||
if filepath_in_from is None:
|
if filepath_in_from is None:
|
||||||
raise ValueError(
|
raise(ValueError("Cannot find API dump file for previous Blender version " + str(version_from) + " in index file."))
|
||||||
"Cannot find API dump file for previous Blender version " +
|
|
||||||
str(version_from) +
|
|
||||||
" in index file."
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Found from file: %r" % filepath_in_from)
|
print("Found from file: %r" % filepath_in_from)
|
||||||
|
|
||||||
@@ -281,7 +277,7 @@ def api_changelog(args):
|
|||||||
|
|
||||||
with open(os.path.join(rootpath, filepath_in_to), 'r', encoding='utf-8') as file_handle:
|
with open(os.path.join(rootpath, filepath_in_to), 'r', encoding='utf-8') as file_handle:
|
||||||
dump_version, dict_to = json.load(file_handle)
|
dump_version, dict_to = json.load(file_handle)
|
||||||
assert tuple(dump_version) == version
|
assert(tuple(dump_version) == version)
|
||||||
|
|
||||||
api_changes = []
|
api_changes = []
|
||||||
|
|
||||||
@@ -349,10 +345,8 @@ def api_changelog(args):
|
|||||||
fw(""
|
fw(""
|
||||||
":tocdepth: 2\n"
|
":tocdepth: 2\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Change Log\n"
|
"Blender API Change Log\n"
|
||||||
"**********\n"
|
"**********************\n"
|
||||||
"\n"
|
|
||||||
"Changes in Blender's Python API between releases.\n"
|
|
||||||
"\n"
|
"\n"
|
||||||
".. note, this document is auto generated by sphinx_changelog_gen.py\n"
|
".. note, this document is auto generated by sphinx_changelog_gen.py\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@@ -387,35 +387,23 @@ EXAMPLE_SET_USED = set()
|
|||||||
# RST files directory.
|
# RST files directory.
|
||||||
RST_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "rst"))
|
RST_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, "rst"))
|
||||||
|
|
||||||
# Extra info, not api reference docs stored in `./rst/info_*`.
|
# extra info, not api reference docs
|
||||||
# Pairs of (file, description), the title makes from the RST files are displayed before the description.
|
# stored in ./rst/info_*
|
||||||
INFO_DOCS = (
|
INFO_DOCS = (
|
||||||
("info_quickstart.rst",
|
("info_quickstart.rst",
|
||||||
"New to Blender or scripting and want to get your feet wet?"),
|
"Quickstart: New to Blender or scripting and want to get your feet wet?"),
|
||||||
("info_overview.rst",
|
("info_overview.rst",
|
||||||
"A more complete explanation of Python integration."),
|
"API Overview: A more complete explanation of Python integration"),
|
||||||
("info_api_reference.rst",
|
("info_api_reference.rst",
|
||||||
"Examples of how to use the API reference docs."),
|
"API Reference Usage: examples of how to use the API reference docs"),
|
||||||
("info_best_practice.rst",
|
("info_best_practice.rst",
|
||||||
"Conventions to follow for writing good scripts."),
|
"Best Practice: Conventions to follow for writing good scripts"),
|
||||||
("info_tips_and_tricks.rst",
|
("info_tips_and_tricks.rst",
|
||||||
"Hints to help you while writing scripts for Blender."),
|
"Tips and Tricks: Hints to help you while writing scripts for Blender"),
|
||||||
("info_gotcha.rst",
|
("info_gotcha.rst",
|
||||||
"Some of the problems you may encounter when writing scripts."),
|
"Gotcha's: Some of the problems you may encounter when writing scripts"),
|
||||||
("info_advanced.rst",
|
("change_log.rst", "Change Log: List of changes since last Blender release"),
|
||||||
"Topics which may not be required for typical usage."),
|
|
||||||
("change_log.rst",
|
|
||||||
"List of changes since last Blender release"),
|
|
||||||
)
|
)
|
||||||
# Referenced indirectly.
|
|
||||||
INFO_DOCS_OTHER = (
|
|
||||||
# Included by: `info_advanced.rst`.
|
|
||||||
"info_advanced_blender_as_bpy.rst",
|
|
||||||
)
|
|
||||||
|
|
||||||
# Hide the actual TOC, use a separate list that links to the items.
|
|
||||||
# This is done so a short description can be included with each link.
|
|
||||||
USE_INFO_DOCS_FANCY_INDEX = True
|
|
||||||
|
|
||||||
# only support for properties atm.
|
# only support for properties atm.
|
||||||
RNA_BLACKLIST = {
|
RNA_BLACKLIST = {
|
||||||
@@ -1459,15 +1447,15 @@ def pyrna2sphinx(basepath):
|
|||||||
# If the link has been written, no need to inline the enum items.
|
# If the link has been written, no need to inline the enum items.
|
||||||
enum_text = "" if enum_descr_override else pyrna_enum2sphinx(prop)
|
enum_text = "" if enum_descr_override else pyrna_enum2sphinx(prop)
|
||||||
if prop.name or prop.description or enum_text:
|
if prop.name or prop.description or enum_text:
|
||||||
fw(ident + ":%s%s: " % (id_name, identifier))
|
fw(ident + ":%s%s:\n\n" % (id_name, identifier))
|
||||||
|
|
||||||
if prop.name or prop.description:
|
if prop.name or prop.description:
|
||||||
fw(", ".join(val for val in (prop.name, prop.description.replace("\n", "")) if val) + "\n")
|
fw(indent(", ".join(val for val in (prop.name, prop.description) if val), ident + " ") + "\n\n")
|
||||||
|
|
||||||
# Special exception, can't use generic code here for enums.
|
# Special exception, can't use generic code here for enums.
|
||||||
if enum_text:
|
if enum_text:
|
||||||
fw("\n")
|
|
||||||
write_indented_lines(ident + " ", fw, enum_text)
|
write_indented_lines(ident + " ", fw, enum_text)
|
||||||
|
fw("\n")
|
||||||
del enum_text
|
del enum_text
|
||||||
# end enum exception
|
# end enum exception
|
||||||
|
|
||||||
@@ -1482,7 +1470,7 @@ def pyrna2sphinx(basepath):
|
|||||||
|
|
||||||
struct_module_name = struct.module_name
|
struct_module_name = struct.module_name
|
||||||
if USE_ONLY_BUILTIN_RNA_TYPES:
|
if USE_ONLY_BUILTIN_RNA_TYPES:
|
||||||
assert struct_module_name == "bpy.types"
|
assert(struct_module_name == "bpy.types")
|
||||||
filepath = os.path.join(basepath, "%s.%s.rst" % (struct_module_name, struct.identifier))
|
filepath = os.path.join(basepath, "%s.%s.rst" % (struct_module_name, struct.identifier))
|
||||||
file = open(filepath, "w", encoding="utf-8")
|
file = open(filepath, "w", encoding="utf-8")
|
||||||
fw = file.write
|
fw = file.write
|
||||||
@@ -1916,7 +1904,7 @@ except ModuleNotFoundError:
|
|||||||
# fw(" 'collapse_navigation': True,\n")
|
# fw(" 'collapse_navigation': True,\n")
|
||||||
fw(" 'sticky_navigation': False,\n")
|
fw(" 'sticky_navigation': False,\n")
|
||||||
fw(" 'navigation_depth': 1,\n")
|
fw(" 'navigation_depth': 1,\n")
|
||||||
fw(" 'includehidden': False,\n")
|
# fw(" 'includehidden': True,\n")
|
||||||
# fw(" 'titles_only': False\n")
|
# fw(" 'titles_only': False\n")
|
||||||
fw(" }\n\n")
|
fw(" }\n\n")
|
||||||
|
|
||||||
@@ -1988,21 +1976,12 @@ def write_rst_index(basepath):
|
|||||||
|
|
||||||
if not EXCLUDE_INFO_DOCS:
|
if not EXCLUDE_INFO_DOCS:
|
||||||
fw(".. toctree::\n")
|
fw(".. toctree::\n")
|
||||||
if USE_INFO_DOCS_FANCY_INDEX:
|
|
||||||
fw(" :hidden:\n")
|
|
||||||
fw(" :maxdepth: 1\n")
|
fw(" :maxdepth: 1\n")
|
||||||
fw(" :caption: Documentation\n\n")
|
fw(" :caption: Documentation\n\n")
|
||||||
for info, info_desc in INFO_DOCS:
|
for info, info_desc in INFO_DOCS:
|
||||||
fw(" %s\n" % info)
|
fw(" %s <%s>\n" % (info_desc, info))
|
||||||
fw("\n")
|
fw("\n")
|
||||||
|
|
||||||
if USE_INFO_DOCS_FANCY_INDEX:
|
|
||||||
# Show a fake TOC, allowing for an extra description to be shown as well as the title.
|
|
||||||
fw(title_string("Documentation", "="))
|
|
||||||
for info, info_desc in INFO_DOCS:
|
|
||||||
fw("- :doc:`%s`: %s\n" % (info.removesuffix(".rst"), info_desc))
|
|
||||||
fw("\n")
|
|
||||||
|
|
||||||
fw(".. toctree::\n")
|
fw(".. toctree::\n")
|
||||||
fw(" :maxdepth: 1\n")
|
fw(" :maxdepth: 1\n")
|
||||||
fw(" :caption: Application Modules\n\n")
|
fw(" :caption: Application Modules\n\n")
|
||||||
@@ -2335,8 +2314,6 @@ def copy_handwritten_rsts(basepath):
|
|||||||
if not EXCLUDE_INFO_DOCS:
|
if not EXCLUDE_INFO_DOCS:
|
||||||
for info, _info_desc in INFO_DOCS:
|
for info, _info_desc in INFO_DOCS:
|
||||||
shutil.copy2(os.path.join(RST_DIR, info), basepath)
|
shutil.copy2(os.path.join(RST_DIR, info), basepath)
|
||||||
for info in INFO_DOCS_OTHER:
|
|
||||||
shutil.copy2(os.path.join(RST_DIR, info), basepath)
|
|
||||||
|
|
||||||
# TODO: put this docs in Blender's code and use import as per modules above.
|
# TODO: put this docs in Blender's code and use import as per modules above.
|
||||||
handwritten_modules = [
|
handwritten_modules = [
|
||||||
|
4
extern/CMakeLists.txt
vendored
4
extern/CMakeLists.txt
vendored
@@ -91,7 +91,3 @@ endif()
|
|||||||
if(WITH_COMPOSITOR_CPU)
|
if(WITH_COMPOSITOR_CPU)
|
||||||
add_subdirectory(smaa_areatex)
|
add_subdirectory(smaa_areatex)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_VULKAN_BACKEND)
|
|
||||||
add_subdirectory(vulkan_memory_allocator)
|
|
||||||
endif()
|
|
||||||
|
@@ -27,7 +27,6 @@
|
|||||||
#include <memory>
|
#include <memory>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <string>
|
|
||||||
|
|
||||||
AUD_NAMESPACE_BEGIN
|
AUD_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
4
extern/gflags/CMakeLists.txt
vendored
4
extern/gflags/CMakeLists.txt
vendored
@@ -3,7 +3,9 @@
|
|||||||
|
|
||||||
# Too noisy for code we don't maintain.
|
# Too noisy for code we don't maintain.
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
add_cxx_flag("-Wno-cast-function-type")
|
if(NOT "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "8.0")
|
||||||
|
add_cxx_flag("-Wno-cast-function-type")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(INC
|
set(INC
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user