Compare commits
73 Commits
temp-defor
...
tmp-new-gp
Author | SHA1 | Date | |
---|---|---|---|
89b9ceaa2e | |||
0c0b59ecb8 | |||
5caa96a265 | |||
85235c0d4f | |||
c7cde8130d | |||
e1ed665e72 | |||
a794d08844 | |||
9c4ae4d6d3 | |||
03a3ca56a3 | |||
5435efdffb | |||
c8b749d316 | |||
d902a2063c | |||
72ad2f3497 | |||
3f87596b63 | |||
24d79e4897 | |||
144900ac2d | |||
1d0eaa7892 | |||
8acee6ab65 | |||
2036c6719a | |||
c0c2831350 | |||
422de5bf9d | |||
4a2495f974 | |||
b0975356de | |||
16412b8b17 | |||
0575785be2 | |||
a4fcf67667 | |||
e8da2ad3dd | |||
5ebdb485d3 | |||
7361e7c14b | |||
ce99226259 | |||
029916d602 | |||
9435666ebd | |||
6af5b66137 | |||
0ad19b6c60 | |||
5450537ef1 | |||
ba41c62aef | |||
50bc8fa12f | |||
231ba11086 | |||
ed63f5ac4c | |||
121023ad64 | |||
80e88724a9 | |||
f03f60f9ba | |||
7ac9e76c10 | |||
825e46dfb8 | |||
0c8db18d9b | |||
8145706fe0 | |||
63119a9ce4 | |||
4f4072b187 | |||
c61ff2ce11 | |||
815d9163eb | |||
761c7d2fac | |||
aa681372e1 | |||
932118f742 | |||
dd076971da | |||
5f305fa599 | |||
c6dc9c9c33 | |||
be2135cff7 | |||
cc267ab8cf | |||
24fa1bec70 | |||
16d90555d7 | |||
1f2b944114 | |||
57db023981 | |||
36488fed68 | |||
d7cbaa8de1 | |||
3c4e90a6cf | |||
88516cda45 | |||
5291db4e10 | |||
0d18d4c349 | |||
8cdbf0e3b9 | |||
d9f902321e | |||
9db82cc87f | |||
0d6b5c5485 | |||
e7d106c5fc |
@@ -1,8 +1,6 @@
|
|||||||
# The warnings below are disabled because they are too pedantic and not worth fixing.
|
# The warnings below are disabled because they are too pedantic and not worth fixing.
|
||||||
# Some of them will be enabled as part of the Clang-Tidy task, see T78535.
|
# Some of them will be enabled as part of the Clang-Tidy task, see T78535.
|
||||||
|
|
||||||
# NOTE: No comments in the list below is allowed. Clang-tidy will ignore items after comments in the lists flag list.
|
|
||||||
# This is because the comment is not a valid list item and it will stop parsing flags if a list item is a comment.
|
|
||||||
Checks: >
|
Checks: >
|
||||||
-*,
|
-*,
|
||||||
readability-*,
|
readability-*,
|
||||||
@@ -16,9 +14,10 @@ Checks: >
|
|||||||
-readability-make-member-function-const,
|
-readability-make-member-function-const,
|
||||||
-readability-suspicious-call-argument,
|
-readability-suspicious-call-argument,
|
||||||
-readability-redundant-member-init,
|
-readability-redundant-member-init,
|
||||||
|
|
||||||
-readability-misleading-indentation,
|
-readability-misleading-indentation,
|
||||||
|
|
||||||
-readability-use-anyofallof,
|
-readability-use-anyofallof,
|
||||||
-readability-identifier-length,
|
|
||||||
|
|
||||||
-readability-function-cognitive-complexity,
|
-readability-function-cognitive-complexity,
|
||||||
|
|
||||||
@@ -36,8 +35,6 @@ Checks: >
|
|||||||
|
|
||||||
-bugprone-redundant-branch-condition,
|
-bugprone-redundant-branch-condition,
|
||||||
|
|
||||||
-bugprone-suspicious-include,
|
|
||||||
|
|
||||||
modernize-*,
|
modernize-*,
|
||||||
-modernize-use-auto,
|
-modernize-use-auto,
|
||||||
-modernize-use-trailing-return-type,
|
-modernize-use-trailing-return-type,
|
||||||
@@ -45,6 +42,8 @@ Checks: >
|
|||||||
-modernize-use-nodiscard,
|
-modernize-use-nodiscard,
|
||||||
-modernize-loop-convert,
|
-modernize-loop-convert,
|
||||||
-modernize-pass-by-value,
|
-modernize-pass-by-value,
|
||||||
|
# Cannot be enabled yet, because using raw string literals in tests breaks
|
||||||
|
# the windows compiler currently.
|
||||||
-modernize-raw-string-literal,
|
-modernize-raw-string-literal,
|
||||||
-modernize-return-braced-init-list
|
-modernize-return-braced-init-list
|
||||||
|
|
||||||
|
@@ -34,15 +34,6 @@ indent_style = space
|
|||||||
indent_size = 2
|
indent_size = 2
|
||||||
max_line_length = 99
|
max_line_length = 99
|
||||||
|
|
||||||
# Tom's Obvious Minimal Language
|
|
||||||
[*.toml]
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
max_line_length = 120
|
|
||||||
|
|
||||||
# reStructuredText
|
# reStructuredText
|
||||||
[*.rst]
|
[*.rst]
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
|
@@ -284,7 +284,7 @@ option(WITH_IMAGE_TIFF "Enable LibTIFF Support" ON)
|
|||||||
option(WITH_IMAGE_DDS "Enable DDS Image Support" ON)
|
option(WITH_IMAGE_DDS "Enable DDS Image Support" ON)
|
||||||
option(WITH_IMAGE_CINEON "Enable CINEON and DPX Image Support" ON)
|
option(WITH_IMAGE_CINEON "Enable CINEON and DPX Image Support" ON)
|
||||||
option(WITH_IMAGE_HDR "Enable HDR Image Support" ON)
|
option(WITH_IMAGE_HDR "Enable HDR Image Support" ON)
|
||||||
option(WITH_IMAGE_WEBP "Enable WebP Image Support" ON)
|
option(WITH_IMAGE_WEBP "Enable WebP Image Support" OFF)
|
||||||
|
|
||||||
# Audio/Video format support
|
# Audio/Video format support
|
||||||
option(WITH_CODEC_AVI "Enable Blenders own AVI file support (raw/jpeg)" ON)
|
option(WITH_CODEC_AVI "Enable Blenders own AVI file support (raw/jpeg)" ON)
|
||||||
@@ -300,12 +300,9 @@ option(WITH_USD "Enable Universal Scene Description (USD) Suppor
|
|||||||
# 3D format support
|
# 3D format support
|
||||||
# Disable opencollada when we don't have precompiled libs
|
# Disable opencollada when we don't have precompiled libs
|
||||||
option(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" ON)
|
option(WITH_OPENCOLLADA "Enable OpenCollada Support (http://www.opencollada.org)" ON)
|
||||||
option(WITH_IO_WAVEFRONT_OBJ "Enable Wavefront-OBJ 3D file format support (*.obj)" ON)
|
|
||||||
option(WITH_IO_STL "Enable STL 3D file format support (*.stl)" ON)
|
|
||||||
option(WITH_IO_GPENCIL "Enable grease-pencil file format IO (*.svg, *.pdf)" ON)
|
|
||||||
|
|
||||||
# Sound output
|
# Sound output
|
||||||
option(WITH_SDL "Enable SDL for sound" ON)
|
option(WITH_SDL "Enable SDL for sound and joystick support" ON)
|
||||||
option(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON)
|
option(WITH_OPENAL "Enable OpenAL Support (http://www.openal.org)" ON)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
option(WITH_COREAUDIO "Enable CoreAudio for audio support on macOS" ON)
|
option(WITH_COREAUDIO "Enable CoreAudio for audio support on macOS" ON)
|
||||||
@@ -442,9 +439,14 @@ endif()
|
|||||||
|
|
||||||
# AMD HIP
|
# AMD HIP
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON)
|
if(WIN32)
|
||||||
|
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" ON)
|
||||||
|
else()
|
||||||
|
option(WITH_CYCLES_DEVICE_HIP "Enable Cycles AMD HIP support" OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
option(WITH_CYCLES_HIP_BINARIES "Build Cycles AMD HIP binaries" OFF)
|
option(WITH_CYCLES_HIP_BINARIES "Build Cycles AMD HIP binaries" OFF)
|
||||||
set(CYCLES_HIP_BINARIES_ARCH gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 gfx1035 CACHE STRING "AMD HIP architectures to build binaries for")
|
set(CYCLES_HIP_BINARIES_ARCH gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032 gfx1034 CACHE STRING "AMD HIP architectures to build binaries for")
|
||||||
mark_as_advanced(WITH_CYCLES_DEVICE_HIP)
|
mark_as_advanced(WITH_CYCLES_DEVICE_HIP)
|
||||||
mark_as_advanced(CYCLES_HIP_BINARIES_ARCH)
|
mark_as_advanced(CYCLES_HIP_BINARIES_ARCH)
|
||||||
endif()
|
endif()
|
||||||
@@ -489,7 +491,7 @@ if((UNIX AND NOT APPLE) OR (CMAKE_GENERATOR MATCHES "^Visual Studio.+"))
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(WITH_BOOST "Enable features depending on boost" ON)
|
option(WITH_BOOST "Enable features depending on boost" ON)
|
||||||
option(WITH_TBB "Enable multithreading. TBB is also required for features such as Cycles, OpenVDB and USD" ON)
|
option(WITH_TBB "Enable features depending on TBB (OpenVDB, OpenImageDenoise, sculpt multithreading)" ON)
|
||||||
|
|
||||||
# TBB malloc is only supported on for windows currently
|
# TBB malloc is only supported on for windows currently
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -768,7 +770,6 @@ endif()
|
|||||||
|
|
||||||
set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF)
|
set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF)
|
||||||
set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF)
|
set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF)
|
||||||
set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID OFF)
|
|
||||||
|
|
||||||
if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
|
if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
|
||||||
message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
|
message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
|
||||||
@@ -785,9 +786,7 @@ set_and_warn_dependency(WITH_BOOST WITH_OPENCOLORIO OFF)
|
|||||||
set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF)
|
set_and_warn_dependency(WITH_BOOST WITH_QUADRIFLOW OFF)
|
||||||
set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
|
set_and_warn_dependency(WITH_BOOST WITH_USD OFF)
|
||||||
set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF)
|
set_and_warn_dependency(WITH_BOOST WITH_ALEMBIC OFF)
|
||||||
if(WITH_CYCLES)
|
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
|
||||||
set_and_warn_dependency(WITH_PUGIXML WITH_CYCLES_OSL OFF)
|
|
||||||
endif()
|
|
||||||
set_and_warn_dependency(WITH_PUGIXML WITH_OPENIMAGEIO OFF)
|
set_and_warn_dependency(WITH_PUGIXML WITH_OPENIMAGEIO OFF)
|
||||||
|
|
||||||
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
|
if(WITH_BOOST AND NOT (WITH_CYCLES OR WITH_OPENIMAGEIO OR WITH_INTERNATIONAL OR
|
||||||
@@ -812,9 +811,6 @@ set_and_warn_dependency(WITH_IMAGE_OPENEXR WITH_OPENCOLORIO OFF)
|
|||||||
# Haru needs `TIFFFaxBlackCodes` & `TIFFFaxWhiteCodes` symbols from TIFF.
|
# Haru needs `TIFFFaxBlackCodes` & `TIFFFaxWhiteCodes` symbols from TIFF.
|
||||||
set_and_warn_dependency(WITH_IMAGE_TIFF WITH_HARU OFF)
|
set_and_warn_dependency(WITH_IMAGE_TIFF WITH_HARU OFF)
|
||||||
|
|
||||||
# USD needs OpenSubDiv, since that is used by the Cycles Hydra render delegate.
|
|
||||||
set_and_warn_dependency(WITH_OPENSUBDIV WITH_USD OFF)
|
|
||||||
|
|
||||||
# auto enable openimageio for cycles
|
# auto enable openimageio for cycles
|
||||||
if(WITH_CYCLES)
|
if(WITH_CYCLES)
|
||||||
set(WITH_OPENIMAGEIO ON)
|
set(WITH_OPENIMAGEIO ON)
|
||||||
@@ -941,10 +937,7 @@ set(PLATFORM_CFLAGS)
|
|||||||
set(C_WARNINGS)
|
set(C_WARNINGS)
|
||||||
set(CXX_WARNINGS)
|
set(CXX_WARNINGS)
|
||||||
|
|
||||||
# NOTE: These flags are intended for situations where where it's impractical to
|
# for gcc -Wno-blah-blah
|
||||||
# suppress warnings by modifying the code or for code which is maintained externally.
|
|
||||||
# For GCC this typically means adding `-Wno-*` arguments to negate warnings
|
|
||||||
# that are useful in the general case.
|
|
||||||
set(C_REMOVE_STRICT_FLAGS)
|
set(C_REMOVE_STRICT_FLAGS)
|
||||||
set(CXX_REMOVE_STRICT_FLAGS)
|
set(CXX_REMOVE_STRICT_FLAGS)
|
||||||
|
|
||||||
@@ -1464,6 +1457,14 @@ if(WITH_LIBMV OR WITH_GTESTS OR (WITH_CYCLES AND WITH_CYCLES_LOGGING))
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# Configure Ceres
|
||||||
|
|
||||||
|
if(WITH_LIBMV)
|
||||||
|
# We always have C++11 which includes unordered_map.
|
||||||
|
set(CERES_DEFINES "-DCERES_STD_UNORDERED_MAP;-DCERES_USE_CXX_THREADS")
|
||||||
|
endif()
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Extra limits to number of jobs running in parallel for some kind os tasks.
|
# Extra limits to number of jobs running in parallel for some kind os tasks.
|
||||||
# Only supported by Ninja build system currently.
|
# Only supported by Ninja build system currently.
|
||||||
@@ -1540,6 +1541,7 @@ endif()
|
|||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
|
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
|
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ALL -Wall)
|
||||||
|
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_CAST_ALIGN -Wcast-align)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
|
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_IMPLICIT_FUNCTION_DECLARATION -Werror=implicit-function-declaration)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
|
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_RETURN_TYPE -Werror=return-type)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_VLA -Werror=vla)
|
ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_ERROR_VLA -Werror=vla)
|
||||||
@@ -1624,18 +1626,6 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
|||||||
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5)
|
ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_IMPLICIT_FALLTHROUGH -Wimplicit-fallthrough=5)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
#----------------------
|
|
||||||
# Suppress Strict Flags
|
|
||||||
#
|
|
||||||
# Exclude the following warnings from this list:
|
|
||||||
# - `-Wno-address`:
|
|
||||||
# This can give useful hints that point to bugs/misleading logic.
|
|
||||||
# - `-Wno-strict-prototypes`:
|
|
||||||
# No need to support older C-style prototypes.
|
|
||||||
#
|
|
||||||
# If code in `./extern/` needs to suppress these flags that can be done on a case-by-case basis.
|
|
||||||
|
|
||||||
# flags to undo strict flags
|
# flags to undo strict flags
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_DEPRECATED_DECLARATIONS -Wno-deprecated-declarations)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||||
@@ -1691,9 +1681,6 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
|
# ADD_CHECK_C_COMPILER_FLAG(C_WARNINGS C_WARN_UNUSED_MACROS -Wunused-macros)
|
||||||
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
|
# ADD_CHECK_CXX_COMPILER_FLAG(CXX_WARNINGS CXX_WARN_UNUSED_MACROS -Wunused-macros)
|
||||||
|
|
||||||
#----------------------
|
|
||||||
# Suppress Strict Flags
|
|
||||||
|
|
||||||
# flags to undo strict flags
|
# flags to undo strict flags
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_PARAMETER -Wno-unused-parameter)
|
||||||
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
ADD_CHECK_C_COMPILER_FLAG(C_REMOVE_STRICT_FLAGS C_WARN_NO_UNUSED_VARIABLE -Wno-unused-variable)
|
||||||
@@ -1759,7 +1746,6 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "MSVC")
|
|||||||
"/wd4828" # The file contains a character that is illegal
|
"/wd4828" # The file contains a character that is illegal
|
||||||
"/wd4996" # identifier was declared deprecated
|
"/wd4996" # identifier was declared deprecated
|
||||||
"/wd4661" # no suitable definition provided for explicit template instantiation request
|
"/wd4661" # no suitable definition provided for explicit template instantiation request
|
||||||
"/wd4848" # 'no_unique_address' is a vendor extension in C++17
|
|
||||||
# errors:
|
# errors:
|
||||||
"/we4013" # 'function' undefined; assuming extern returning int
|
"/we4013" # 'function' undefined; assuming extern returning int
|
||||||
"/we4133" # incompatible pointer types
|
"/we4133" # incompatible pointer types
|
||||||
|
28
GNUmakefile
28
GNUmakefile
@@ -120,7 +120,7 @@ Utilities
|
|||||||
Updates git and all submodules but not svn.
|
Updates git and all submodules but not svn.
|
||||||
|
|
||||||
* format:
|
* format:
|
||||||
Format source code using clang-format & autopep8 (uses PATHS if passed in). For example::
|
Format source code using clang (uses PATHS if passed in). For example::
|
||||||
|
|
||||||
make format PATHS="source/blender/blenlib source/blender/blenkernel"
|
make format PATHS="source/blender/blenlib source/blender/blenkernel"
|
||||||
|
|
||||||
@@ -130,7 +130,6 @@ Environment Variables
|
|||||||
* BUILD_DIR: Override default build path.
|
* BUILD_DIR: Override default build path.
|
||||||
* PYTHON: Use this for the Python command (used for checking tools).
|
* PYTHON: Use this for the Python command (used for checking tools).
|
||||||
* NPROCS: Number of processes to use building (auto-detect when omitted).
|
* NPROCS: Number of processes to use building (auto-detect when omitted).
|
||||||
* AUTOPEP8: Command used for Python code-formatting (used for the format target).
|
|
||||||
|
|
||||||
Documentation Targets
|
Documentation Targets
|
||||||
Not associated with building Blender.
|
Not associated with building Blender.
|
||||||
@@ -207,27 +206,6 @@ ifeq ($(OS_NCASE),darwin)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Set the LIBDIR, an empty string when not found.
|
|
||||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_${CPU})
|
|
||||||
ifeq (, $(LIBDIR))
|
|
||||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_centos7_${CPU})
|
|
||||||
endif
|
|
||||||
ifeq (, $(LIBDIR))
|
|
||||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE})
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Use the autopep8 module in ../lib/ (which can be executed via Python directly).
|
|
||||||
# Otherwise the "autopep8" command can be used.
|
|
||||||
ifndef AUTOPEP8
|
|
||||||
ifneq (, $(LIBDIR))
|
|
||||||
AUTOPEP8:=$(wildcard $(LIBDIR)/python/lib/python3.10/site-packages/autopep8.py)
|
|
||||||
endif
|
|
||||||
ifeq (, $(AUTOPEP8))
|
|
||||||
AUTOPEP8:=autopep8
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# additional targets for the build configuration
|
# additional targets for the build configuration
|
||||||
|
|
||||||
@@ -549,8 +527,8 @@ update_code: .FORCE
|
|||||||
@$(PYTHON) ./build_files/utils/make_update.py --no-libraries
|
@$(PYTHON) ./build_files/utils/make_update.py --no-libraries
|
||||||
|
|
||||||
format: .FORCE
|
format: .FORCE
|
||||||
@PATH="${LIBDIR}/llvm/bin/:$(PATH)" $(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
@PATH="../lib/${OS_NCASE}_${CPU}/llvm/bin/:../lib/${OS_NCASE}_centos7_${CPU}/llvm/bin/:../lib/${OS_NCASE}/llvm/bin/:$(PATH)" \
|
||||||
@$(PYTHON) source/tools/utils_maintenance/autopep8_format_paths.py --autopep8-command="$(AUTOPEP8)" $(PATHS)
|
$(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
@@ -29,9 +29,8 @@ cmake_minimum_required(VERSION 3.5)
|
|||||||
|
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
include(cmake/check_software.cmake)
|
include(cmake/check_software.cmake)
|
||||||
include(cmake/versions.cmake)
|
|
||||||
include(cmake/options.cmake)
|
include(cmake/options.cmake)
|
||||||
include(cmake/boost_build_options.cmake)
|
include(cmake/versions.cmake)
|
||||||
include(cmake/download.cmake)
|
include(cmake/download.cmake)
|
||||||
|
|
||||||
if(ENABLE_MINGW64)
|
if(ENABLE_MINGW64)
|
||||||
@@ -47,16 +46,19 @@ include(cmake/png.cmake)
|
|||||||
include(cmake/jpeg.cmake)
|
include(cmake/jpeg.cmake)
|
||||||
include(cmake/blosc.cmake)
|
include(cmake/blosc.cmake)
|
||||||
include(cmake/pthreads.cmake)
|
include(cmake/pthreads.cmake)
|
||||||
include(cmake/imath.cmake)
|
|
||||||
include(cmake/openexr.cmake)
|
include(cmake/openexr.cmake)
|
||||||
include(cmake/brotli.cmake)
|
include(cmake/brotli.cmake)
|
||||||
include(cmake/freetype.cmake)
|
include(cmake/freetype.cmake)
|
||||||
include(cmake/freeglut.cmake)
|
include(cmake/freeglut.cmake)
|
||||||
include(cmake/glew.cmake)
|
include(cmake/glew.cmake)
|
||||||
include(cmake/alembic.cmake)
|
include(cmake/alembic.cmake)
|
||||||
|
include(cmake/glfw.cmake)
|
||||||
|
include(cmake/clew.cmake)
|
||||||
|
include(cmake/cuew.cmake)
|
||||||
include(cmake/opensubdiv.cmake)
|
include(cmake/opensubdiv.cmake)
|
||||||
include(cmake/sdl.cmake)
|
include(cmake/sdl.cmake)
|
||||||
include(cmake/opencollada.cmake)
|
include(cmake/opencollada.cmake)
|
||||||
|
include(cmake/llvm.cmake)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
include(cmake/openmp.cmake)
|
include(cmake/openmp.cmake)
|
||||||
endif()
|
endif()
|
||||||
@@ -73,8 +75,8 @@ endif()
|
|||||||
include(cmake/osl.cmake)
|
include(cmake/osl.cmake)
|
||||||
include(cmake/tbb.cmake)
|
include(cmake/tbb.cmake)
|
||||||
include(cmake/openvdb.cmake)
|
include(cmake/openvdb.cmake)
|
||||||
|
include(cmake/nanovdb.cmake)
|
||||||
include(cmake/python.cmake)
|
include(cmake/python.cmake)
|
||||||
include(cmake/llvm.cmake)
|
|
||||||
option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
|
option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
|
||||||
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
||||||
set(USE_PIP_NUMPY ON)
|
set(USE_PIP_NUMPY ON)
|
||||||
@@ -92,15 +94,12 @@ 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/fmt.cmake)
|
|
||||||
include(cmake/robinmap.cmake)
|
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
include(cmake/xr_openxr.cmake)
|
include(cmake/xr_openxr.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# OpenColorIO and dependencies.
|
# OpenColorIO and dependencies.
|
||||||
include(cmake/expat.cmake)
|
include(cmake/expat.cmake)
|
||||||
include(cmake/pystring.cmake)
|
|
||||||
include(cmake/yamlcpp.cmake)
|
include(cmake/yamlcpp.cmake)
|
||||||
include(cmake/opencolorio.cmake)
|
include(cmake/opencolorio.cmake)
|
||||||
|
|
||||||
@@ -108,9 +107,8 @@ if(BLENDER_PLATFORM_ARM)
|
|||||||
include(cmake/sse2neon.cmake)
|
include(cmake/sse2neon.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(cmake/webp.cmake)
|
if(WITH_WEBP)
|
||||||
if(NOT APPLE)
|
include(cmake/webp.cmake)
|
||||||
include(cmake/level-zero.cmake)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT WIN32 OR ENABLE_MINGW64)
|
if(NOT WIN32 OR ENABLE_MINGW64)
|
||||||
|
@@ -1,16 +1,30 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
set(ALEMBIC_EXTRA_ARGS
|
set(ALEMBIC_EXTRA_ARGS
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
-DBUILDSTATIC=ON
|
||||||
-DUSE_PYALEMBIC=OFF
|
-DLINKSTATIC=ON
|
||||||
-DUSE_ARNOLD=OFF
|
-DILMBASE_ROOT=${LIBDIR}/openexr
|
||||||
-DUSE_MAYA=OFF
|
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${LIBDIR}/openexr/include/OpenEXR
|
||||||
-DUSE_PRMAN=OFF
|
-DALEMBIC_ILMBASE_HALF_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DUSE_HDF5=OFF
|
-DALEMBIC_ILMBASE_IMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DUSE_TESTS=OFF
|
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DALEMBIC_ILMBASE_IEX_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DALEMBIC_ILMBASE_IEXMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IexMath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DUSE_PYILMBASE=0
|
||||||
|
-DUSE_PYALEMBIC=0
|
||||||
|
-DUSE_ARNOLD=0
|
||||||
|
-DUSE_MAYA=0
|
||||||
|
-DUSE_PRMAN=0
|
||||||
|
-DUSE_HDF5=Off
|
||||||
|
-DUSE_STATIC_HDF5=Off
|
||||||
|
-DUSE_TESTS=Off
|
||||||
|
-DALEMBIC_NO_OPENGL=1
|
||||||
-DUSE_BINARIES=ON
|
-DUSE_BINARIES=ON
|
||||||
-DALEMBIC_ILMBASE_LINK_STATIC=OFF
|
-DALEMBIC_ILMBASE_LINK_STATIC=On
|
||||||
-DALEMBIC_SHARED_LIBS=OFF
|
-DALEMBIC_SHARED_LIBS=OFF
|
||||||
|
-DGLUT_INCLUDE_DIR=""
|
||||||
|
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||||
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_alembic
|
ExternalProject_Add(external_alembic
|
||||||
@@ -41,5 +55,6 @@ endif()
|
|||||||
|
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_alembic
|
external_alembic
|
||||||
|
external_zlib
|
||||||
external_openexr
|
external_openexr
|
||||||
)
|
)
|
||||||
|
@@ -24,6 +24,7 @@ ExternalProject_Add(external_blosc
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${BLOSC_HASH_TYPE}=${BLOSC_HASH}
|
URL_HASH ${BLOSC_HASH_TYPE}=${BLOSC_HASH}
|
||||||
PREFIX ${BUILD_DIR}/blosc
|
PREFIX ${BUILD_DIR}/blosc
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/blosc/src/external_blosc < ${PATCH_DIR}/blosc.diff
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/blosc
|
INSTALL_DIR ${LIBDIR}/blosc
|
||||||
)
|
)
|
||||||
|
@@ -1,6 +1,22 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
set(BOOST_ADDRESS_MODEL 64)
|
||||||
|
|
||||||
|
if(BLENDER_PLATFORM_ARM)
|
||||||
|
set(BOOST_ARCHITECTURE arm)
|
||||||
|
else()
|
||||||
|
set(BOOST_ARCHITECTURE x86)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
if(MSVC_VERSION GREATER_EQUAL 1920) # 2019
|
||||||
|
set(BOOST_TOOLSET toolset=msvc-14.2)
|
||||||
|
set(BOOST_COMPILER_STRING -vc142)
|
||||||
|
else() # 2017
|
||||||
|
set(BOOST_TOOLSET toolset=msvc-14.1)
|
||||||
|
set(BOOST_COMPILER_STRING -vc141)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(BOOST_CONFIGURE_COMMAND bootstrap.bat)
|
set(BOOST_CONFIGURE_COMMAND bootstrap.bat)
|
||||||
set(BOOST_BUILD_COMMAND b2)
|
set(BOOST_BUILD_COMMAND b2)
|
||||||
set(BOOST_BUILD_OPTIONS runtime-link=shared )
|
set(BOOST_BUILD_OPTIONS runtime-link=shared )
|
||||||
@@ -20,6 +36,11 @@ else()
|
|||||||
set(BOOST_BUILD_COMMAND ./b2)
|
set(BOOST_BUILD_COMMAND ./b2)
|
||||||
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
|
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
|
||||||
set(BOOST_PATCH_COMMAND echo .)
|
set(BOOST_PATCH_COMMAND echo .)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
|
set(BOOST_ADDRESS_MODEL 64)
|
||||||
|
else()
|
||||||
|
set(BOOST_ADDRESS_MODEL 32)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_BOOST_PYTHON)
|
if(WITH_BOOST_PYTHON)
|
||||||
|
@@ -1,30 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(BOOST_ADDRESS_MODEL 64)
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
|
||||||
set(BOOST_ARCHITECTURE arm)
|
|
||||||
else()
|
|
||||||
set(BOOST_ARCHITECTURE x86)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(MSVC_VERSION GREATER_EQUAL 1920) # 2019
|
|
||||||
set(BOOST_TOOLSET toolset=msvc-14.2)
|
|
||||||
set(BOOST_COMPILER_STRING -vc142)
|
|
||||||
else() # 2017
|
|
||||||
set(BOOST_TOOLSET toolset=msvc-14.1)
|
|
||||||
set(BOOST_COMPILER_STRING -vc141)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(DEFAULT_BOOST_FLAGS
|
|
||||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
|
||||||
-DBoost_USE_MULTITHREADED=ON
|
|
||||||
-DBoost_USE_STATIC_LIBS=ON
|
|
||||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
|
||||||
-DBOOST_ROOT=${LIBDIR}/boost
|
|
||||||
-DBoost_NO_SYSTEM_PATHS=ON
|
|
||||||
-DBoost_NO_BOOST_CMAKE=ON
|
|
||||||
-DBoost_ADDITIONAL_VERSIONS=${BOOST_VERSION_SHORT}
|
|
||||||
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
|
||||||
)
|
|
12
build_files/build_environment/cmake/clew.cmake
Normal file
12
build_files/build_environment/cmake/clew.cmake
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
set(CLEW_EXTRA_ARGS)
|
||||||
|
|
||||||
|
ExternalProject_Add(external_clew
|
||||||
|
URL file://${PACKAGE_DIR}/${CLEW_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${CLEW_HASH_TYPE}=${CLEW_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/clew
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CLEW_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/clew
|
||||||
|
)
|
13
build_files/build_environment/cmake/cuew.cmake
Normal file
13
build_files/build_environment/cmake/cuew.cmake
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
set(CUEW_EXTRA_ARGS)
|
||||||
|
|
||||||
|
ExternalProject_Add(external_cuew
|
||||||
|
URL file://${PACKAGE_DIR}/${CUEW_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${CUEW_HASH_TYPE}=${CUEW_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/cuew
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/cuew/src/external_cuew < ${PATCH_DIR}/cuew.diff
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/cuew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CUEW_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/cuew
|
||||||
|
)
|
@@ -39,6 +39,10 @@ download_source(FREETYPE)
|
|||||||
download_source(GLEW)
|
download_source(GLEW)
|
||||||
download_source(FREEGLUT)
|
download_source(FREEGLUT)
|
||||||
download_source(ALEMBIC)
|
download_source(ALEMBIC)
|
||||||
|
download_source(GLFW)
|
||||||
|
download_source(CLEW)
|
||||||
|
download_source(GLFW)
|
||||||
|
download_source(CUEW)
|
||||||
download_source(OPENSUBDIV)
|
download_source(OPENSUBDIV)
|
||||||
download_source(SDL)
|
download_source(SDL)
|
||||||
download_source(OPENCOLLADA)
|
download_source(OPENCOLLADA)
|
||||||
@@ -67,7 +71,9 @@ download_source(FFMPEG)
|
|||||||
download_source(FFTW)
|
download_source(FFTW)
|
||||||
download_source(ICONV)
|
download_source(ICONV)
|
||||||
download_source(SNDFILE)
|
download_source(SNDFILE)
|
||||||
download_source(WEBP)
|
if(WITH_WEBP)
|
||||||
|
download_source(WEBP)
|
||||||
|
endif()
|
||||||
download_source(SPNAV)
|
download_source(SPNAV)
|
||||||
download_source(JEMALLOC)
|
download_source(JEMALLOC)
|
||||||
download_source(XML2)
|
download_source(XML2)
|
||||||
@@ -96,8 +102,3 @@ download_source(HARU)
|
|||||||
download_source(ZSTD)
|
download_source(ZSTD)
|
||||||
download_source(FLEX)
|
download_source(FLEX)
|
||||||
download_source(BROTLI)
|
download_source(BROTLI)
|
||||||
download_source(FMT)
|
|
||||||
download_source(ROBINMAP)
|
|
||||||
download_source(IMATH)
|
|
||||||
download_source(PYSTRING)
|
|
||||||
download_source(LEVEL_ZERO)
|
|
||||||
|
@@ -17,16 +17,6 @@ set(EMBREE_EXTRA_ARGS
|
|||||||
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
|
||||||
set(EMBREE_EXTRA_ARGS
|
|
||||||
${EMBREE_EXTRA_ARGS}
|
|
||||||
-DEMBREE_MAX_ISA=NEON)
|
|
||||||
else()
|
|
||||||
set(EMBREE_EXTRA_ARGS
|
|
||||||
${EMBREE_EXTRA_ARGS}
|
|
||||||
-DEMBREE_MAX_ISA=AVX2)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(TBB_STATIC_LIBRARY)
|
if(TBB_STATIC_LIBRARY)
|
||||||
set(EMBREE_EXTRA_ARGS
|
set(EMBREE_EXTRA_ARGS
|
||||||
${EMBREE_EXTRA_ARGS}
|
${EMBREE_EXTRA_ARGS}
|
||||||
@@ -47,15 +37,26 @@ else()
|
|||||||
set(EMBREE_BUILD_DIR)
|
set(EMBREE_BUILD_DIR)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_embree
|
if(BLENDER_PLATFORM_ARM)
|
||||||
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
ExternalProject_Add(external_embree
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
GIT_REPOSITORY ${EMBREE_ARM_GIT}
|
||||||
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
GIT_TAG "blender-arm"
|
||||||
PREFIX ${BUILD_DIR}/embree
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
|
PREFIX ${BUILD_DIR}/embree
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/embree
|
INSTALL_DIR ${LIBDIR}/embree
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
ExternalProject_Add(external_embree
|
||||||
|
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/embree
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/embree
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_embree
|
external_embree
|
||||||
|
@@ -1,14 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(FMT_EXTRA_ARGS
|
|
||||||
-DFMT_TEST=Off
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_fmt
|
|
||||||
URL file://${PACKAGE_DIR}/${FMT_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${FMT_HASH_TYPE}=${FMT_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/fmt
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/fmt ${DEFAULT_CMAKE_FLAGS} ${FMT_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/fmt
|
|
||||||
)
|
|
12
build_files/build_environment/cmake/glfw.cmake
Normal file
12
build_files/build_environment/cmake/glfw.cmake
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
set(GLFW_EXTRA_ARGS)
|
||||||
|
|
||||||
|
ExternalProject_Add(external_glfw
|
||||||
|
URL file://${PACKAGE_DIR}/${GLFW_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${GLFW_HASH_TYPE}=${GLFW_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/glfw
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glfw -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${GLFW_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/glfw
|
||||||
|
)
|
@@ -14,8 +14,8 @@ 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}/jpg/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}/jpg/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/ &&
|
||||||
@@ -67,8 +67,6 @@ harvest(brotli/include brotli/include "*.h")
|
|||||||
harvest(brotli/lib brotli/lib "*.a")
|
harvest(brotli/lib brotli/lib "*.a")
|
||||||
harvest(boost/include boost/include "*")
|
harvest(boost/include boost/include "*")
|
||||||
harvest(boost/lib boost/lib "*.a")
|
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/include ffmpeg/include "*.h")
|
||||||
harvest(ffmpeg/lib ffmpeg/lib "*.a")
|
harvest(ffmpeg/lib ffmpeg/lib "*.a")
|
||||||
harvest(fftw3/include fftw3/include "*.h")
|
harvest(fftw3/include fftw3/include "*.h")
|
||||||
@@ -82,13 +80,9 @@ harvest(gmp/include gmp/include "*.h")
|
|||||||
harvest(gmp/lib gmp/lib "*.a")
|
harvest(gmp/lib gmp/lib "*.a")
|
||||||
harvest(jemalloc/include jemalloc/include "*.h")
|
harvest(jemalloc/include jemalloc/include "*.h")
|
||||||
harvest(jemalloc/lib jemalloc/lib "*.a")
|
harvest(jemalloc/lib jemalloc/lib "*.a")
|
||||||
harvest(jpeg/include jpeg/include "*.h")
|
harvest(jpg/include jpeg/include "*.h")
|
||||||
harvest(jpeg/lib jpeg/lib "libjpeg.a")
|
harvest(jpg/lib jpeg/lib "libjpeg.a")
|
||||||
harvest(lame/lib ffmpeg/lib "*.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")
|
harvest(llvm/bin llvm/bin "clang-format")
|
||||||
if(BUILD_CLANG_TOOLS)
|
if(BUILD_CLANG_TOOLS)
|
||||||
harvest(llvm/bin llvm/bin "clang-tidy")
|
harvest(llvm/bin llvm/bin "clang-tidy")
|
||||||
@@ -141,13 +135,13 @@ harvest(openimagedenoise/include openimagedenoise/include "*")
|
|||||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||||
harvest(embree/include embree/include "*.h")
|
harvest(embree/include embree/include "*.h")
|
||||||
harvest(embree/lib embree/lib "*.a")
|
harvest(embree/lib embree/lib "*.a")
|
||||||
harvest(openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
|
harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
|
||||||
harvest(openjpeg/lib openjpeg/lib "*.a")
|
harvest(openjpeg/lib openjpeg/lib "*.a")
|
||||||
harvest(opensubdiv/include opensubdiv/include "*.h")
|
harvest(opensubdiv/include opensubdiv/include "*.h")
|
||||||
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
||||||
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||||
harvest(openvdb/include/nanovdb openvdb/include/nanovdb "*.h")
|
|
||||||
harvest(openvdb/lib openvdb/lib "*.a")
|
harvest(openvdb/lib openvdb/lib "*.a")
|
||||||
|
harvest(nanovdb/nanovdb nanovdb/include/nanovdb "*.h")
|
||||||
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
||||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||||
harvest(osl/bin osl/bin "oslc")
|
harvest(osl/bin osl/bin "oslc")
|
||||||
@@ -175,10 +169,9 @@ harvest(tiff/lib tiff/lib "*.a")
|
|||||||
harvest(vorbis/lib ffmpeg/lib "*.a")
|
harvest(vorbis/lib ffmpeg/lib "*.a")
|
||||||
harvest(opus/lib ffmpeg/lib "*.a")
|
harvest(opus/lib ffmpeg/lib "*.a")
|
||||||
harvest(vpx/lib ffmpeg/lib "*.a")
|
harvest(vpx/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(webp/lib ffmpeg/lib "*.a")
|
||||||
harvest(x264/lib ffmpeg/lib "*.a")
|
harvest(x264/lib ffmpeg/lib "*.a")
|
||||||
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
||||||
harvest(webp/lib webp/lib "*.a")
|
|
||||||
harvest(webp/include webp/include "*.h")
|
|
||||||
harvest(usd/include usd/include "*.h")
|
harvest(usd/include usd/include "*.h")
|
||||||
harvest(usd/lib/usd usd/lib/usd "*")
|
harvest(usd/lib/usd usd/lib/usd "*")
|
||||||
harvest(usd/plugin usd/plugin "*")
|
harvest(usd/plugin usd/plugin "*")
|
||||||
|
@@ -1,24 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(IMATH_EXTRA_ARGS
|
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
|
||||||
-DBUILD_TESTING=OFF
|
|
||||||
-DIMATH_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_imath
|
|
||||||
URL file://${PACKAGE_DIR}/${IMATH_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${IMATH_HASH_TYPE}=${IMATH_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/imath
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/imath ${DEFAULT_CMAKE_FLAGS} ${IMATH_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/imath
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
ExternalProject_Add_Step(external_imath after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/lib ${HARVEST_TARGET}/imath/lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/include ${HARVEST_TARGET}/imath/include
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -6,7 +6,6 @@ if(WIN32)
|
|||||||
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
||||||
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe
|
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe
|
||||||
-DARM_ENABLED=Off
|
-DARM_ENABLED=Off
|
||||||
-DPython3_FIND_REGISTRY=NEVER
|
|
||||||
)
|
)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
# Use bison and flex installed via Homebrew.
|
# Use bison and flex installed via Homebrew.
|
||||||
@@ -44,8 +43,6 @@ set(ISPC_EXTRA_ARGS
|
|||||||
-DISPC_INCLUDE_TESTS=Off
|
-DISPC_INCLUDE_TESTS=Off
|
||||||
-DCLANG_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
-DCLANG_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
||||||
-DCLANG_INCLUDE_DIRS=${LIBDIR}/llvm/include
|
-DCLANG_INCLUDE_DIRS=${LIBDIR}/llvm/include
|
||||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
|
||||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
${ISPC_EXTRA_ARGS_WIN}
|
${ISPC_EXTRA_ARGS_WIN}
|
||||||
${ISPC_EXTRA_ARGS_APPLE}
|
${ISPC_EXTRA_ARGS_APPLE}
|
||||||
${ISPC_EXTRA_ARGS_UNIX}
|
${ISPC_EXTRA_ARGS_UNIX}
|
||||||
@@ -64,7 +61,6 @@ ExternalProject_Add(external_ispc
|
|||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_ispc
|
external_ispc
|
||||||
ll
|
ll
|
||||||
external_python
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -2,52 +2,44 @@
|
|||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# cmake for windows
|
# cmake for windows
|
||||||
set(JPEG_EXTRA_ARGS
|
set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d -DWITH_CRT_DLL=On)
|
||||||
-DNASM=${NASM_PATH}
|
|
||||||
-DWITH_JPEG8=ON
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=d
|
|
||||||
-DWITH_CRT_DLL=On
|
|
||||||
-DENABLE_SHARED=OFF
|
|
||||||
-DENABLE_STATIC=ON
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_jpeg
|
ExternalProject_Add(external_jpeg
|
||||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||||
PREFIX ${BUILD_DIR}/jpeg
|
PREFIX ${BUILD_DIR}/jpg
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/jpeg
|
INSTALL_DIR ${LIBDIR}/jpg
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
|
ExternalProject_Add_Step(external_jpeg after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpegd${LIBEXT} ${LIBDIR}/jpg/lib/jpeg${LIBEXT}
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
set(JPEG_LIBRARY jpeg-static${LIBEXT})
|
set(JPEG_LIBRARY jpeg-static${LIBEXT})
|
||||||
else()
|
else()
|
||||||
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
|
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_jpeg after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/${JPEG_LIBRARY} ${LIBDIR}/jpeg/lib/jpeg${LIBEXT}
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
else(WIN32)
|
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
|
||||||
-DENABLE_SHARED=OFF
|
-DENABLE_SHARED=OFF
|
||||||
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpeg/lib)
|
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpg/lib)
|
||||||
|
|
||||||
ExternalProject_Add(external_jpeg
|
ExternalProject_Add(external_jpeg
|
||||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||||
PREFIX ${BUILD_DIR}/jpeg
|
PREFIX ${BUILD_DIR}/jpg
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/jpeg
|
INSTALL_DIR ${LIBDIR}/jpg
|
||||||
)
|
)
|
||||||
|
|
||||||
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
||||||
|
@@ -1,21 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(LEVEL_ZERO_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_level-zero
|
|
||||||
URL file://${PACKAGE_DIR}/${LEVEL_ZERO_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${LEVEL_ZERO_HASH_TYPE}=${LEVEL_ZERO_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/level-zero
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/level-zero/src/external_level-zero < ${PATCH_DIR}/level-zero.diff
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/level-zero ${DEFAULT_CMAKE_FLAGS} ${LEVEL_ZERO_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/level-zero
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_level-zero after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/level-zero ${HARVEST_TARGET}/level-zero
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -25,14 +25,11 @@ set(LLVM_EXTRA_ARGS
|
|||||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||||
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
||||||
-DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}
|
-DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}
|
||||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
|
||||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
${LLVM_XML2_ARGS}
|
${LLVM_XML2_ARGS}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(LLVM_GENERATOR "Ninja")
|
set(LLVM_GENERATOR "Ninja")
|
||||||
list(APPEND LLVM_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
|
||||||
else()
|
else()
|
||||||
set(LLVM_GENERATOR "Unix Makefiles")
|
set(LLVM_GENERATOR "Unix Makefiles")
|
||||||
endif()
|
endif()
|
||||||
@@ -77,9 +74,3 @@ if(APPLE)
|
|||||||
external_xml2
|
external_xml2
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
ll
|
|
||||||
external_python
|
|
||||||
)
|
|
||||||
|
|
||||||
|
39
build_files/build_environment/cmake/nanovdb.cmake
Normal file
39
build_files/build_environment/cmake/nanovdb.cmake
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
set(NANOVDB_EXTRA_ARGS
|
||||||
|
# NanoVDB is header-only, so only need the install target
|
||||||
|
-DNANOVDB_BUILD_UNITTESTS=OFF
|
||||||
|
-DNANOVDB_BUILD_EXAMPLES=OFF
|
||||||
|
-DNANOVDB_BUILD_BENCHMARK=OFF
|
||||||
|
-DNANOVDB_BUILD_DOCS=OFF
|
||||||
|
-DNANOVDB_BUILD_TOOLS=OFF
|
||||||
|
-DNANOVDB_CUDA_KEEP_PTX=OFF
|
||||||
|
# Do not need to include any of the dependencies because of this
|
||||||
|
-DNANOVDB_USE_OPENVDB=OFF
|
||||||
|
-DNANOVDB_USE_OPENGL=OFF
|
||||||
|
-DNANOVDB_USE_OPENCL=OFF
|
||||||
|
-DNANOVDB_USE_CUDA=OFF
|
||||||
|
-DNANOVDB_USE_TBB=OFF
|
||||||
|
-DNANOVDB_USE_BLOSC=OFF
|
||||||
|
-DNANOVDB_USE_ZLIB=OFF
|
||||||
|
-DNANOVDB_USE_OPTIX=OFF
|
||||||
|
-DNANOVDB_ALLOW_FETCHCONTENT=OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
ExternalProject_Add(nanovdb
|
||||||
|
URL file://${PACKAGE_DIR}/${NANOVDB_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${NANOVDB_HASH_TYPE}=${NANOVDB_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/nanovdb
|
||||||
|
SOURCE_SUBDIR nanovdb
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/nanovdb/src/nanovdb < ${PATCH_DIR}/nanovdb.diff
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/nanovdb ${DEFAULT_CMAKE_FLAGS} ${NANOVDB_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/nanovdb
|
||||||
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
ExternalProject_Add_Step(nanovdb after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/nanovdb/nanovdb ${HARVEST_TARGET}/nanovdb/include/nanovdb
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
@@ -11,12 +11,13 @@ set(OPENCOLORIO_EXTRA_ARGS
|
|||||||
-DOCIO_BUILD_GPU_TESTS=OFF
|
-DOCIO_BUILD_GPU_TESTS=OFF
|
||||||
-DOCIO_USE_SSE=ON
|
-DOCIO_USE_SSE=ON
|
||||||
|
|
||||||
-DOCIO_INSTALL_EXT_PACKAGES=NONE
|
# Manually build ext packages except for pystring, which does not have
|
||||||
|
# a CMake or autotools build system that we can easily use.
|
||||||
|
-DOCIO_INSTALL_EXT_PACKAGES=MISSING
|
||||||
|
-DHalf_ROOT=${LIBDIR}/openexr
|
||||||
|
-DHalf_STATIC_LIBRARY=ON
|
||||||
-Dexpat_ROOT=${LIBDIR}/expat
|
-Dexpat_ROOT=${LIBDIR}/expat
|
||||||
-Dyaml-cpp_ROOT=${LIBDIR}/yamlcpp
|
-Dyaml-cpp_ROOT=${LIBDIR}/yamlcpp
|
||||||
-Dpystring_ROOT=${LIBDIR}/pystring
|
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
if(BLENDER_PLATFORM_ARM)
|
||||||
@@ -29,9 +30,7 @@ endif()
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
set(OPENCOLORIO_EXTRA_ARGS
|
||||||
${OPENCOLORIO_EXTRA_ARGS}
|
${OPENCOLORIO_EXTRA_ARGS}
|
||||||
-Dexpat_LIBRARY=${LIBDIR}/expat/lib/libexpatMD
|
-DOCIO_INLINES_HIDDEN=OFF
|
||||||
-Dyaml-cpp_LIBRARY=${LIBDIR}/expat/lib/libyaml-cppmd.lib
|
|
||||||
-DImath_LIBRARY=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}
|
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
set(OPENCOLORIO_EXTRA_ARGS
|
||||||
@@ -53,8 +52,7 @@ add_dependencies(
|
|||||||
external_opencolorio
|
external_opencolorio
|
||||||
external_yamlcpp
|
external_yamlcpp
|
||||||
external_expat
|
external_expat
|
||||||
external_imath
|
external_openexr
|
||||||
external_pystring
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -64,7 +62,7 @@ if(WIN32)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib ${HARVEST_TARGET}/opencolorio/lib
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib ${HARVEST_TARGET}/opencolorio/lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatMD.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatMD.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pystring/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
@@ -73,7 +71,7 @@ if(WIN32)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmdd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmdd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatdMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatdMD.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatdMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatdMD.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/pystring/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
@@ -81,7 +79,7 @@ else()
|
|||||||
ExternalProject_Add_Step(external_opencolorio after_install
|
ExternalProject_Add_Step(external_opencolorio after_install
|
||||||
COMMAND cp ${LIBDIR}/yamlcpp/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/
|
COMMAND cp ${LIBDIR}/yamlcpp/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/
|
||||||
COMMAND cp ${LIBDIR}/expat/lib/libexpat.a ${LIBDIR}/opencolorio/lib/
|
COMMAND cp ${LIBDIR}/expat/lib/libexpat.a ${LIBDIR}/opencolorio/lib/
|
||||||
COMMAND cp ${LIBDIR}/pystring/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
|
COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -16,10 +16,12 @@ set(OPENEXR_EXTRA_ARGS
|
|||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||||
-DBUILD_TESTING=OFF
|
-DBUILD_TESTING=OFF
|
||||||
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
||||||
|
-DILMBASE_BUILD_BOTH_STATIC_SHARED=OFF
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
-DOPENEXR_INSTALL_TOOLS=OFF
|
-DOPENEXR_BUILD_UTILS=OFF
|
||||||
-DOPENEXR_INSTALL_EXAMPLES=OFF
|
-DPYILMBASE_ENABLE=OFF
|
||||||
-DImath_DIR=${LIBDIR}/imath/lib/cmake/Imath
|
-DOPENEXR_VIEWERS_ENABLE=OFF
|
||||||
|
-DILMBASE_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||||
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -8,8 +8,6 @@ set(OIDN_EXTRA_ARGS
|
|||||||
-DOIDN_STATIC_LIB=ON
|
-DOIDN_STATIC_LIB=ON
|
||||||
-DOIDN_STATIC_RUNTIME=OFF
|
-DOIDN_STATIC_RUNTIME=OFF
|
||||||
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
||||||
-DOIDN_FILTER_RTLIGHTMAP=OFF
|
|
||||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -39,7 +37,6 @@ add_dependencies(
|
|||||||
external_openimagedenoise
|
external_openimagedenoise
|
||||||
external_tbb
|
external_tbb
|
||||||
external_ispc
|
external_ispc
|
||||||
external_python
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -23,20 +23,35 @@ else()
|
|||||||
set(OIIO_SIMD_FLAGS)
|
set(OIIO_SIMD_FLAGS)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_WEBP)
|
||||||
|
set(WEBP_ARGS
|
||||||
|
-DWEBP_INCLUDE_DIR=${LIBDIR}/webp/include
|
||||||
|
-DWEBP_LIBRARY=${LIBDIR}/webp/lib/${LIBPREFIX}webp${LIBEXT}
|
||||||
|
)
|
||||||
|
set(WEBP_DEP external_webp)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(OPENJPEG_FLAGS
|
set(OPENJPEG_FLAGS
|
||||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg_msvc
|
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg_msvc
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(OPENJPEG_FLAGS
|
set(OPENJPEG_FLAGS
|
||||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg
|
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENIMAGEIO_EXTRA_ARGS
|
set(OPENIMAGEIO_EXTRA_ARGS
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
${OPENIMAGEIO_LINKSTATIC}
|
${OPENIMAGEIO_LINKSTATIC}
|
||||||
${DEFAULT_BOOST_FLAGS}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
|
-DBoost_USE_STATIC_LIBS=ON
|
||||||
|
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||||
|
-DBOOST_ROOT=${LIBDIR}/boost
|
||||||
|
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||||
|
-DBoost_NO_SYSTEM_PATHS=ON
|
||||||
|
-DBoost_NO_BOOST_CMAKE=ON
|
||||||
-DUSE_LIBSQUISH=OFF
|
-DUSE_LIBSQUISH=OFF
|
||||||
-DUSE_QT5=OFF
|
-DUSE_QT5=OFF
|
||||||
-DUSE_NUKE=OFF
|
-DUSE_NUKE=OFF
|
||||||
@@ -47,6 +62,7 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DUSE_LIBHEIF=OFF
|
-DUSE_LIBHEIF=OFF
|
||||||
-DUSE_OPENGL=OFF
|
-DUSE_OPENGL=OFF
|
||||||
-DUSE_TBB=OFF
|
-DUSE_TBB=OFF
|
||||||
|
-DUSE_FIELD3D=OFF
|
||||||
-DUSE_QT=OFF
|
-DUSE_QT=OFF
|
||||||
-DUSE_PYTHON=OFF
|
-DUSE_PYTHON=OFF
|
||||||
-DUSE_GIF=OFF
|
-DUSE_GIF=OFF
|
||||||
@@ -57,7 +73,7 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DUSE_FREETYPE=OFF
|
-DUSE_FREETYPE=OFF
|
||||||
-DUSE_LIBRAW=OFF
|
-DUSE_LIBRAW=OFF
|
||||||
-DUSE_OPENCOLORIO=OFF
|
-DUSE_OPENCOLORIO=OFF
|
||||||
-DUSE_WEBP=ON
|
-DUSE_WEBP=${WITH_WEBP}
|
||||||
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
|
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
|
||||||
-DOIIO_BUILD_TESTS=OFF
|
-DOIIO_BUILD_TESTS=OFF
|
||||||
-DBUILD_TESTING=OFF
|
-DBUILD_TESTING=OFF
|
||||||
@@ -67,9 +83,14 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
|
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
|
||||||
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT}
|
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT}
|
||||||
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
|
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
|
||||||
-DJPEG_LIBRARY=${LIBDIR}/jpeg/lib/${JPEG_LIBRARY}
|
-DJPEG_LIBRARY=${LIBDIR}/jpg/lib/${JPEG_LIBRARY}
|
||||||
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpeg/include
|
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpg/include
|
||||||
${OPENJPEG_FLAGS}
|
${OPENJPEG_FLAGS}
|
||||||
|
-DOpenEXR_USE_STATIC_LIBS=On
|
||||||
|
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
|
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
|
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
@@ -77,14 +98,8 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DUSE_EXTERNAL_PUGIXML=ON
|
-DUSE_EXTERNAL_PUGIXML=ON
|
||||||
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
|
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
|
||||||
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
|
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
|
||||||
-DBUILD_MISSING_ROBINMAP=OFF
|
${WEBP_FLAGS}
|
||||||
-DBUILD_MISSING_FMT=OFF
|
|
||||||
-DFMT_INCLUDE_DIR=${LIBDIR}/fmt/include/
|
|
||||||
-DRobinmap_ROOT=${LIBDIR}/robinmap
|
|
||||||
-DWebP_ROOT=${LIBDIR}/webp
|
|
||||||
${OIIO_SIMD_FLAGS}
|
${OIIO_SIMD_FLAGS}
|
||||||
-DOpenEXR_ROOT=${LIBDIR}/openexr
|
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_openimageio
|
ExternalProject_Add(external_openimageio
|
||||||
@@ -102,15 +117,12 @@ add_dependencies(
|
|||||||
external_png
|
external_png
|
||||||
external_zlib
|
external_zlib
|
||||||
external_openexr
|
external_openexr
|
||||||
external_imath
|
|
||||||
external_jpeg
|
external_jpeg
|
||||||
external_boost
|
external_boost
|
||||||
external_tiff
|
external_tiff
|
||||||
external_pugixml
|
external_pugixml
|
||||||
external_fmt
|
|
||||||
external_robinmap
|
|
||||||
external_openjpeg${OPENJPEG_POSTFIX}
|
external_openjpeg${OPENJPEG_POSTFIX}
|
||||||
external_webp
|
${WEBP_DEP}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -125,8 +137,8 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_openimageio after_install
|
ExternalProject_Add_Step(external_openimageio after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -3,24 +3,20 @@
|
|||||||
# Note the encoder/decoder may use png/tiff/lcms system libraries, but the
|
# Note the encoder/decoder may use png/tiff/lcms system libraries, but the
|
||||||
# library itself does not depend on them, so should give no problems.
|
# library itself does not depend on them, so should give no problems.
|
||||||
|
|
||||||
|
set(OPENJPEG_EXTRA_ARGS -DBUILD_SHARED_LIBS=OFF)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
|
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
|
||||||
else()
|
else()
|
||||||
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
|
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENJPEG_EXTRA_ARGS
|
|
||||||
${OPENJPEG_EXTRA_ARGS}
|
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
|
||||||
-DBUILD_CODEC=OFF
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_openjpeg
|
ExternalProject_Add(external_openjpeg
|
||||||
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
|
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
||||||
PREFIX ${BUILD_DIR}/openjpeg
|
PREFIX ${BUILD_DIR}/openjpeg
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg ${BUILD_DIR}/openjpeg/src/external_openjpeg
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF ${BUILD_DIR}/openjpeg/src/external_openjpeg
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install
|
||||||
INSTALL_DIR ${LIBDIR}/openjpeg
|
INSTALL_DIR ${LIBDIR}/openjpeg
|
||||||
|
@@ -1,25 +1,19 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
set(OPENSUBDIV_EXTRA_ARGS
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
-DNO_LIB=OFF
|
|
||||||
-DNO_EXAMPLES=ON
|
-DNO_EXAMPLES=ON
|
||||||
-DNO_TUTORIALS=ON
|
|
||||||
-DNO_REGRESSION=ON
|
-DNO_REGRESSION=ON
|
||||||
|
-DNO_PYTHON=ON
|
||||||
|
-DNO_MAYA=ON
|
||||||
-DNO_PTEX=ON
|
-DNO_PTEX=ON
|
||||||
-DNO_DOC=ON
|
-DNO_DOC=ON
|
||||||
-DNO_OMP=ON
|
-DNO_CLEW=OFF
|
||||||
-DNO_TBB=OFF
|
-DNO_OPENCL=OFF
|
||||||
-DNO_CUDA=ON
|
-DNO_TUTORIALS=ON
|
||||||
-DNO_OPENCL=ON
|
-DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include
|
||||||
-DNO_CLEW=ON
|
-DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT}
|
||||||
-DNO_OPENGL=OFF
|
-DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include
|
||||||
-DNO_METAL=OFF
|
-DGLFW_LIBRARIES=${LIBDIR}/glfw/lib/glfw3${LIBEXT}
|
||||||
-DNO_DX=ON
|
|
||||||
-DNO_TESTS=ON
|
|
||||||
-DNO_GLTESTS=ON
|
|
||||||
-DNO_GLEW=ON
|
|
||||||
-DNO_GLFW=ON
|
|
||||||
-DNO_GLFW_X11=ON
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -27,12 +21,30 @@ if(WIN32)
|
|||||||
${OPENSUBDIV_EXTRA_ARGS}
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
|
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
|
||||||
|
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||||
|
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
|
||||||
|
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||||
|
-DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
|
||||||
)
|
)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
|
-DNO_CUDA=OFF
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
|
-DNO_CUDA=ON
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
else()
|
else()
|
||||||
set(OPENSUBDIV_EXTRA_ARGS
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
${OPENSUBDIV_EXTRA_ARGS}
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
-DNO_CUDA=ON
|
||||||
-DTBB_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||||
|
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||||
|
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -64,5 +76,9 @@ endif()
|
|||||||
|
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_opensubdiv
|
external_opensubdiv
|
||||||
|
external_glew
|
||||||
|
external_glfw
|
||||||
|
external_clew
|
||||||
|
external_cuew
|
||||||
external_tbb
|
external_tbb
|
||||||
)
|
)
|
||||||
|
@@ -13,7 +13,6 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENVDB_EXTRA_ARGS
|
set(OPENVDB_EXTRA_ARGS
|
||||||
${DEFAULT_BOOST_FLAGS}
|
|
||||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
-DBoost_USE_MULTITHREADED=ON
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
-DBoost_USE_STATIC_LIBS=ON
|
-DBoost_USE_STATIC_LIBS=ON
|
||||||
@@ -25,20 +24,22 @@ set(OPENVDB_EXTRA_ARGS
|
|||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||||
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
||||||
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||||
-DBlosc_LIBRARY_RELEASE=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
|
||||||
-DBlosc_LIBRARY_DEBUG=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
-DOPENVDB_BUILD_UNITTESTS=Off
|
||||||
-DOPENVDB_BUILD_UNITTESTS=OFF
|
-DOPENVDB_BUILD_PYTHON_MODULE=Off
|
||||||
-DOPENVDB_BUILD_PYTHON_MODULE=OFF
|
|
||||||
-DOPENVDB_BUILD_NANOVDB=ON
|
|
||||||
-DNANOVDB_BUILD_TOOLS=OFF
|
|
||||||
-DBlosc_ROOT=${LIBDIR}/blosc/
|
-DBlosc_ROOT=${LIBDIR}/blosc/
|
||||||
-DTBB_ROOT=${LIBDIR}/tbb/
|
-DTBB_ROOT=${LIBDIR}/tbb/
|
||||||
|
-DOpenEXR_ROOT=${LIBDIR}/openexr
|
||||||
|
-DIlmBase_ROOT=${LIBDIR}/openexr
|
||||||
|
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
|
# All libs live in openexr, even the ilmbase ones
|
||||||
|
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
-DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
|
-DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
|
||||||
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
|
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
|
||||||
-DOPENVDB_BUILD_BINARIES=OFF
|
-DOPENVDB_BUILD_BINARIES=Off
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
-DCMAKE_DEBUG_POSTFIX=_d
|
||||||
-DBLOSC_USE_STATIC_LIBS=ON
|
-DILMBASE_USE_STATIC_LIBS=On
|
||||||
-DUSE_NANOVDB=ON
|
-DOPENEXR_USE_STATIC_LIBS=On
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -47,6 +48,15 @@ if(WIN32)
|
|||||||
# needs to link pthreads due to it being a blosc dependency
|
# needs to link pthreads due to it being a blosc dependency
|
||||||
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
||||||
-DCMAKE_CXX_STANDARD_LIBRARIES="${LIBDIR}/pthreads/lib/pthreadVC3.lib"
|
-DCMAKE_CXX_STANDARD_LIBRARIES="${LIBDIR}/pthreads/lib/pthreadVC3.lib"
|
||||||
|
-DUSE_EXR=On
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
# OpenVDB can't find the _static libraries automatically.
|
||||||
|
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
||||||
|
-DTbb_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||||
|
-DTbb_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||||
|
-DTbb_tbbmalloc_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_static${LIBEXT}
|
||||||
|
-DTbb_tbbmalloc_proxy_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_proxy_static${LIBEXT}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -64,6 +74,7 @@ add_dependencies(
|
|||||||
openvdb
|
openvdb
|
||||||
external_tbb
|
external_tbb
|
||||||
external_boost
|
external_boost
|
||||||
|
external_openexr
|
||||||
external_zlib
|
external_zlib
|
||||||
external_blosc
|
external_blosc
|
||||||
)
|
)
|
||||||
@@ -71,7 +82,7 @@ add_dependencies(
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(openvdb after_install
|
ExternalProject_Add_Step(openvdb after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include/openvdb ${HARVEST_TARGET}/openvdb/include/openvdb
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
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(WITH_WEBP "Enable building of oiio with webp support" 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")
|
||||||
@@ -41,29 +42,29 @@ if(WIN32)
|
|||||||
set(LIBPREFIX "")
|
set(LIBPREFIX "")
|
||||||
|
|
||||||
# For OIIO and OSL
|
# For OIIO and OSL
|
||||||
set(COMMON_DEFINES /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
|
set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
|
||||||
|
|
||||||
if(MSVC_VERSION GREATER 1909)
|
if(MSVC_VERSION GREATER 1909)
|
||||||
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
||||||
endif()
|
endif()
|
||||||
string(APPEND COMMON_MSVC_FLAGS " /bigobj")
|
string(APPEND COMMON_MSVC_FLAGS " /bigobj")
|
||||||
if(WITH_OPTIMIZED_DEBUG)
|
if(WITH_OPTIMIZED_DEBUG)
|
||||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
else()
|
else()
|
||||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
endif()
|
endif()
|
||||||
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
|
|
||||||
if(WITH_OPTIMIZED_DEBUG)
|
if(WITH_OPTIMIZED_DEBUG)
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
else()
|
else()
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
endif()
|
endif()
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
|
|
||||||
set(PLATFORM_FLAGS)
|
set(PLATFORM_FLAGS)
|
||||||
set(PLATFORM_CXX_FLAGS)
|
set(PLATFORM_CXX_FLAGS)
|
||||||
|
@@ -3,15 +3,33 @@
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
||||||
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
|
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
|
||||||
|
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2)
|
||||||
else()
|
else()
|
||||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
|
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
|
||||||
set(OSL_FLEX_BISON)
|
set(OSL_FLEX_BISON)
|
||||||
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpeg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
|
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/openexr/lib/Imath${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Half{OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/IlmThread${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Iex${OPENEXR_VERSION_POSTFIX}.lib")
|
||||||
|
|
||||||
set(OSL_EXTRA_ARGS
|
set(OSL_EXTRA_ARGS
|
||||||
${DEFAULT_BOOST_FLAGS}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
|
-DBoost_USE_STATIC_LIBS=ON
|
||||||
|
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||||
|
-DBOOST_ROOT=${LIBDIR}/boost
|
||||||
|
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||||
|
-DBoost_NO_SYSTEM_PATHS=ON
|
||||||
|
-DBoost_NO_BOOST_CMAKE=ON
|
||||||
-DOpenEXR_ROOT=${LIBDIR}/openexr/
|
-DOpenEXR_ROOT=${LIBDIR}/openexr/
|
||||||
|
-DIlmBase_ROOT=${LIBDIR}/openexr/
|
||||||
|
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
|
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
|
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DOpenImageIO_ROOT=${LIBDIR}/openimageio/
|
-DOpenImageIO_ROOT=${LIBDIR}/openimageio/
|
||||||
-DOSL_BUILD_TESTS=OFF
|
-DOSL_BUILD_TESTS=OFF
|
||||||
-DOSL_BUILD_MATERIALX=OFF
|
-DOSL_BUILD_MATERIALX=OFF
|
||||||
@@ -31,10 +49,10 @@ set(OSL_EXTRA_ARGS
|
|||||||
-DUSE_QT=OFF
|
-DUSE_QT=OFF
|
||||||
-DUSE_Qt5=OFF
|
-DUSE_Qt5=OFF
|
||||||
-DINSTALL_DOCS=OFF
|
-DINSTALL_DOCS=OFF
|
||||||
|
${OSL_SIMD_FLAGS}
|
||||||
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
||||||
-DUSE_PYTHON=OFF
|
-DUSE_PYTHON=OFF
|
||||||
-DCMAKE_CXX_STANDARD=14
|
-DCMAKE_CXX_STANDARD=14
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_osl
|
ExternalProject_Add(external_osl
|
||||||
|
@@ -1,22 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(PYSTRING_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_pystring
|
|
||||||
URL file://${PACKAGE_DIR}/${PYSTRING_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${PYSTRING_HASH_TYPE}=${PYSTRING_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/pystring
|
|
||||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_pystring.txt ${BUILD_DIR}/pystring/src/external_pystring/CMakeLists.txt
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pystring ${DEFAULT_CMAKE_FLAGS} ${PYSTRING_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/pystring
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
ExternalProject_Add_Step(external_pystring after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/lib ${HARVEST_TARGET}/pystring/lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/include ${HARVEST_TARGET}/pystring/include
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -15,7 +15,7 @@ ExternalProject_Add(external_python_site_packages
|
|||||||
CONFIGURE_COMMAND ${PIP_CONFIGURE_COMMAND}
|
CONFIGURE_COMMAND ${PIP_CONFIGURE_COMMAND}
|
||||||
BUILD_COMMAND ""
|
BUILD_COMMAND ""
|
||||||
PREFIX ${BUILD_DIR}/site_packages
|
PREFIX ${BUILD_DIR}/site_packages
|
||||||
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} zstandard==${ZSTANDARD_VERSION} autopep8==${AUTOPEP8_VERSION} pycodestyle==${PYCODESTYLE_VERSION} toml==${TOML_VERSION} --no-binary :all:
|
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} zstandard==${ZSTANDARD_VERSION} --no-binary :all:
|
||||||
)
|
)
|
||||||
|
|
||||||
if(USE_PIP_NUMPY)
|
if(USE_PIP_NUMPY)
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(ROBINMAP_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_robinmap
|
|
||||||
URL file://${PACKAGE_DIR}/${ROBINMAP_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${ROBINMAP_HASH_TYPE}=${ROBINMAP_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/robinmap
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/robinmap ${DEFAULT_CMAKE_FLAGS} ${ROBINMAP_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/robinmap
|
|
||||||
)
|
|
@@ -1,5 +1,11 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
if(WITH_WEBP)
|
||||||
|
set(WITH_TIFF_WEBP ON)
|
||||||
|
else()
|
||||||
|
set(WITH_TIFF_WEBP OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(TIFF_EXTRA_ARGS
|
set(TIFF_EXTRA_ARGS
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||||
@@ -8,7 +14,7 @@ set(TIFF_EXTRA_ARGS
|
|||||||
-Dlzma=OFF
|
-Dlzma=OFF
|
||||||
-Djbig=OFF
|
-Djbig=OFF
|
||||||
-Dzstd=OFF
|
-Dzstd=OFF
|
||||||
-Dwebp=OFF
|
-Dwebp=${WITH_TIFF_WEBP}
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_tiff
|
ExternalProject_Add(external_tiff
|
||||||
|
@@ -1,72 +1,39 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
# OIIO and OSL are statically linked for us, but USD doesn't know
|
|
||||||
set(USD_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DOIIO_STATIC_DEFINE /DOSL_STATIC_DEFINE")
|
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
|
||||||
# USD does not look for debug libs, nor does it link them
|
|
||||||
# when building static, so this is just to keep find_package happy
|
|
||||||
# if we ever link dynamically on windows util will need to be linked as well.
|
|
||||||
set(USD_OIIO_CMAKE_DEFINES "-DOIIO_LIBRARIES=${LIBDIR}/openimageio/lib/OpenImageIO_d${LIBEXT}")
|
|
||||||
endif()
|
|
||||||
set(USD_PLATFORM_FLAGS
|
|
||||||
${USD_OIIO_CMAKE_DEFINES}
|
|
||||||
-DCMAKE_CXX_FLAGS=${USD_CXX_FLAGS}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(USD_EXTRA_ARGS
|
set(USD_EXTRA_ARGS
|
||||||
${DEFAULT_BOOST_FLAGS}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
${USD_PLATFORM_FLAGS}
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
# This is a preventative measure that avoids possible conflicts when add-ons
|
-DBoost_USE_STATIC_LIBS=ON
|
||||||
# try to load another USD library into the same process space.
|
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||||
-DPXR_SET_INTERNAL_NAMESPACE=usdBlender
|
-DBOOST_ROOT=${LIBDIR}/boost
|
||||||
-DOPENSUBDIV_ROOT_DIR=${LIBDIR}/opensubdiv
|
-DBoost_NO_SYSTEM_PATHS=ON
|
||||||
-DOpenImageIO_ROOT=${LIBDIR}/openimageio
|
-DBoost_NO_BOOST_CMAKE=ON
|
||||||
-DOPENEXR_LIBRARIES=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
|
||||||
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/imath/include
|
|
||||||
-DPXR_ENABLE_PYTHON_SUPPORT=OFF
|
|
||||||
-DPXR_BUILD_IMAGING=ON
|
|
||||||
-DPXR_BUILD_TESTS=OFF
|
|
||||||
-DPXR_BUILD_EXAMPLES=OFF
|
|
||||||
-DPXR_BUILD_TUTORIALS=OFF
|
|
||||||
-DPXR_ENABLE_HDF5_SUPPORT=OFF
|
|
||||||
-DPXR_ENABLE_MATERIALX_SUPPORT=OFF
|
|
||||||
-DPXR_ENABLE_OPENVDB_SUPPORT=OFF
|
|
||||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
-DPXR_BUILD_MONOLITHIC=ON
|
|
||||||
# OSL is an optional dependency of the Imaging module. However, since that
|
|
||||||
# module was included for its support for converting primitive shapes (sphere,
|
|
||||||
# cube, etc.) to geometry, it's not necessary. Disabling it will make it
|
|
||||||
# simpler to build Blender; currently only Cycles uses OSL.
|
|
||||||
-DPXR_ENABLE_OSL_SUPPORT=OFF
|
|
||||||
# GL support on Linux also links to X11 libraries. Enabling it would break
|
|
||||||
# headless or Wayland-only builds. OpenGL support would be useful if someone
|
|
||||||
# wants to work on a Hydra viewport in Blender; when that's actually being
|
|
||||||
# worked on, we could patch in a new PXR_ENABLE_X11_SUPPORT option (to
|
|
||||||
# separate OpenGL from X11) and contribute it upstream.
|
|
||||||
-DPXR_ENABLE_GL_SUPPORT=OFF
|
|
||||||
# Disable Metal since USD fails to build this when OpenGL is disabled.
|
|
||||||
-DPXR_ENABLE_METAL_SUPPORT=OFF
|
|
||||||
# OIIO is used for loading image textures in Hydra Storm / Embree renderers,
|
|
||||||
# which we don't use.
|
|
||||||
-DPXR_BUILD_OPENIMAGEIO_PLUGIN=OFF
|
|
||||||
# USD 22.03 does not support OCIO 2.x
|
|
||||||
# Tracking ticket https://github.com/PixarAnimationStudios/USD/issues/1386
|
|
||||||
-DPXR_BUILD_OPENCOLORIO_PLUGIN=OFF
|
|
||||||
-DPXR_ENABLE_PTEX_SUPPORT=OFF
|
|
||||||
-DPXR_BUILD_USD_TOOLS=OFF
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
-DBUILD_SHARED_LIBS=Off
|
|
||||||
# USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file
|
|
||||||
# doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib.
|
|
||||||
-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}
|
||||||
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
-DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
||||||
# USD wants the tbb debug lib set even when you are doing a release build
|
# USD wants the tbb debug lib set even when you are doing a release build
|
||||||
# Otherwise it will error out during the cmake configure phase.
|
# Otherwise it will error out during the cmake configure phase.
|
||||||
-DTBB_LIBRARIES_DEBUG=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
-DTBB_LIBRARIES_DEBUG=${LIBDIR}/tbb/lib/${LIBPREFIX}${TBB_LIBRARY}${LIBEXT}
|
||||||
|
|
||||||
|
# This is a preventative measure that avoids possible conflicts when add-ons
|
||||||
|
# try to load another USD library into the same process space.
|
||||||
|
-DPXR_SET_INTERNAL_NAMESPACE=usdBlender
|
||||||
|
|
||||||
|
-DPXR_ENABLE_PYTHON_SUPPORT=OFF
|
||||||
|
-DPXR_BUILD_IMAGING=OFF
|
||||||
|
-DPXR_BUILD_TESTS=OFF
|
||||||
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
|
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
||||||
|
-DPXR_BUILD_MONOLITHIC=ON
|
||||||
|
|
||||||
|
# The PXR_BUILD_USD_TOOLS argument is patched-in by usd.diff. An upstream pull request
|
||||||
|
# can be found at https://github.com/PixarAnimationStudios/USD/pull/1048.
|
||||||
|
-DPXR_BUILD_USD_TOOLS=OFF
|
||||||
|
|
||||||
|
-DCMAKE_DEBUG_POSTFIX=_d
|
||||||
|
# USD is hellbound on making a shared lib, unless you point this variable to a valid cmake file
|
||||||
|
# doesn't have to make sense, but as long as it points somewhere valid it will skip the shared lib.
|
||||||
|
-DPXR_MONOLITHIC_IMPORT=${BUILD_DIR}/usd/src/external_usd/cmake/defaults/Version.cmake
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_usd
|
ExternalProject_Add(external_usd
|
||||||
@@ -83,31 +50,37 @@ add_dependencies(
|
|||||||
external_usd
|
external_usd
|
||||||
external_tbb
|
external_tbb
|
||||||
external_boost
|
external_boost
|
||||||
external_opensubdiv
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "libusd_m.a" became "libusd_usd_m.a".
|
# Since USD 21.11 the libraries are prefixed with "usd_", i.e. "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 (USD_VERSION VERSION_LESS 21.11)
|
||||||
if (USD_VERSION VERSION_LESS 21.11)
|
set(PXR_LIB_PREFIX "")
|
||||||
set(PXR_LIB_PREFIX "")
|
else()
|
||||||
else()
|
set(PXR_LIB_PREFIX "usd_")
|
||||||
set(PXR_LIB_PREFIX "usd_")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
# USD currently demands python be available at build time
|
||||||
|
# and then proceeds not to use it, but still checks that the
|
||||||
|
# version of the interpreter it is not going to use is atleast 2.7
|
||||||
|
# so we need this dep currently since there is no system python
|
||||||
|
# on windows.
|
||||||
|
add_dependencies(
|
||||||
|
external_usd
|
||||||
|
external_python
|
||||||
|
)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(external_usd after_install
|
ExternalProject_Add_Step(external_usd after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/ ${HARVEST_TARGET}/usd
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/ ${HARVEST_TARGET}/usd
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Release/usd_usd_m.lib ${HARVEST_TARGET}/usd/lib/usd_usd_m.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Release/${PXR_LIB_PREFIX}usd_m.lib ${HARVEST_TARGET}/usd/lib/lib${PXR_LIB_PREFIX}usd_m.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_usd after_install
|
ExternalProject_Add_Step(external_usd after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/lib ${HARVEST_TARGET}/usd/lib
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/usd/lib ${HARVEST_TARGET}/usd/lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Debug/usd_usd_m_d.lib ${HARVEST_TARGET}/usd/lib/usd_usd_m_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/usd/src/external_usd-build/pxr/Debug/${PXR_LIB_PREFIX}usd_m_d.lib ${HARVEST_TARGET}/usd/lib/lib${PXR_LIB_PREFIX}usd_m_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
set(ZLIB_VERSION 1.2.12)
|
set(ZLIB_VERSION 1.2.11)
|
||||||
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 5fc414a9726be31427b440b434d05f78)
|
set(ZLIB_HASH 1c9f62f0778697a09d36121ead88e08e)
|
||||||
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(OPENAL_VERSION 1.21.1)
|
set(OPENAL_VERSION 1.20.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)
|
||||||
set(OPENAL_HASH a936806ebd8de417b0ffd8cf3f48f456)
|
set(OPENAL_HASH 556695068ce8375b89986083d810fd35)
|
||||||
set(OPENAL_HASH_TYPE MD5)
|
set(OPENAL_HASH_TYPE MD5)
|
||||||
set(OPENAL_FILE openal-soft-${OPENAL_VERSION}.tar.bz2)
|
set(OPENAL_FILE openal-soft-${OPENAL_VERSION}.tar.bz2)
|
||||||
|
|
||||||
@@ -18,24 +18,24 @@ 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(JPEG_VERSION 2.1.3)
|
set(JPEG_VERSION 2.0.4)
|
||||||
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 44c43e4a9fb352f47090804529317c88)
|
||||||
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(BOOST_VERSION 1.78.0)
|
set(BOOST_VERSION 1.73.0)
|
||||||
set(BOOST_VERSION_SHORT 1.78)
|
set(BOOST_VERSION_NODOTS 1_73_0)
|
||||||
set(BOOST_VERSION_NODOTS 1_78_0)
|
set(BOOST_VERSION_NODOTS_SHORT 1_73)
|
||||||
set(BOOST_VERSION_NODOTS_SHORT 1_78)
|
|
||||||
set(BOOST_URI https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
set(BOOST_URI https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_NODOTS}.tar.gz)
|
||||||
set(BOOST_HASH c2f6428ac52b0e5a3c9b2e1d8cc832b5)
|
set(BOOST_HASH 4036cd27ef7548b8d29c30ea10956196)
|
||||||
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(BLOSC_VERSION 1.21.1)
|
# Using old version as recommended by OpenVDB build documentation.
|
||||||
|
set(BLOSC_VERSION 1.5.0)
|
||||||
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 6e4a49c8c06f05aa543f3312cfce3d55)
|
||||||
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)
|
||||||
|
|
||||||
@@ -45,19 +45,12 @@ set(PTHREADS_HASH f3bf81bb395840b3446197bcf4ecd653)
|
|||||||
set(PTHREADS_HASH_TYPE MD5)
|
set(PTHREADS_HASH_TYPE MD5)
|
||||||
set(PTHREADS_FILE pthreads4w-code-${PTHREADS_VERSION}.zip)
|
set(PTHREADS_FILE pthreads4w-code-${PTHREADS_VERSION}.zip)
|
||||||
|
|
||||||
set(OPENEXR_VERSION 3.1.4)
|
set(OPENEXR_VERSION 2.5.5)
|
||||||
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
|
set(OPENEXR_URI https://github.com/AcademySoftwareFoundation/openexr/archive/v${OPENEXR_VERSION}.tar.gz)
|
||||||
set(OPENEXR_HASH e990be1ff765797bc2d93a8060e1c1f2)
|
set(OPENEXR_HASH 85e8a979092c9055d10ed103062d31a0)
|
||||||
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(IMATH_VERSION 3.1.4)
|
|
||||||
set(IMATH_URI https://github.com/AcademySoftwareFoundation/Imath/archive/v${OPENEXR_VERSION}.tar.gz)
|
|
||||||
set(IMATH_HASH fddf14ec73e12c34e74c3c175e311a3f)
|
|
||||||
set(IMATH_HASH_TYPE MD5)
|
|
||||||
set(IMATH_FILE imath-${IMATH_VERSION}.tar.gz)
|
|
||||||
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# Openexr started appending _d on its own so now
|
# Openexr started appending _d on its own so now
|
||||||
# we need to tell the build the postfix is _s while
|
# we need to tell the build the postfix is _s while
|
||||||
@@ -92,21 +85,42 @@ set(FREEGLUT_HASH 90c3ca4dd9d51cf32276bc5344ec9754)
|
|||||||
set(FREEGLUT_HASH_TYPE MD5)
|
set(FREEGLUT_HASH_TYPE MD5)
|
||||||
set(FREEGLUT_FILE freeglut-${FREEGLUT_VERSION}.tar.gz)
|
set(FREEGLUT_FILE freeglut-${FREEGLUT_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(ALEMBIC_VERSION 1.8.3)
|
set(ALEMBIC_VERSION 1.7.16)
|
||||||
set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.tar.gz)
|
set(ALEMBIC_URI https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}.tar.gz)
|
||||||
set(ALEMBIC_HASH 2cd8d6e5a3ac4a014e24a4b04f4fadf9)
|
set(ALEMBIC_HASH effcc86e42fe6605588e3de57bde6677)
|
||||||
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(OPENSUBDIV_VERSION v3_4_4)
|
# hash is for 3.1.2
|
||||||
|
set(GLFW_GIT_UID 30306e54705c3adae9fe082c816a3be71963485c)
|
||||||
|
set(GLFW_URI https://github.com/glfw/glfw/archive/${GLFW_GIT_UID}.zip)
|
||||||
|
set(GLFW_HASH 20cacb1613da7eeb092f3ac4f6b2b3d0)
|
||||||
|
set(GLFW_HASH_TYPE MD5)
|
||||||
|
set(GLFW_FILE glfw-${GLFW_GIT_UID}.zip)
|
||||||
|
|
||||||
|
# latest uid in git as of 2016-04-01
|
||||||
|
set(CLEW_GIT_UID 277db43f6cafe8b27c6f1055f69dc67da4aeb299)
|
||||||
|
set(CLEW_URI https://github.com/OpenCLWrangler/clew/archive/${CLEW_GIT_UID}.zip)
|
||||||
|
set(CLEW_HASH 2c699d10ed78362e71f56fae2a4c5f98)
|
||||||
|
set(CLEW_HASH_TYPE MD5)
|
||||||
|
set(CLEW_FILE clew-${CLEW_GIT_UID}.zip)
|
||||||
|
|
||||||
|
# latest uid in git as of 2016-04-01
|
||||||
|
set(CUEW_GIT_UID 1744972026de9cf27c8a7dc39cf39cd83d5f922f)
|
||||||
|
set(CUEW_URI https://github.com/CudaWrangler/cuew/archive/${CUEW_GIT_UID}.zip)
|
||||||
|
set(CUEW_HASH 86760d62978ebfd96cd93f5aa1abaf4a)
|
||||||
|
set(CUEW_HASH_TYPE MD5)
|
||||||
|
set(CUEW_FILE cuew-${CUEW_GIT_UID}.zip)
|
||||||
|
|
||||||
|
set(OPENSUBDIV_VERSION v3_4_3)
|
||||||
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)
|
||||||
set(OPENSUBDIV_HASH 39ecc5caf0abebc943d1ce131855e76e)
|
set(OPENSUBDIV_HASH 7bbfa275d021fb829e521df749160edb)
|
||||||
set(OPENSUBDIV_HASH_TYPE MD5)
|
set(OPENSUBDIV_HASH_TYPE MD5)
|
||||||
set(OPENSUBDIV_FILE opensubdiv-${OPENSUBDIV_VERSION}.tar.gz)
|
set(OPENSUBDIV_FILE opensubdiv-${OPENSUBDIV_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(SDL_VERSION 2.0.20)
|
set(SDL_VERSION 2.0.12)
|
||||||
set(SDL_URI https://www.libsdl.org/release/SDL2-${SDL_VERSION}.tar.gz)
|
set(SDL_URI https://www.libsdl.org/release/SDL2-${SDL_VERSION}.tar.gz)
|
||||||
set(SDL_HASH a53acc02e1cca98c4123229069b67c9e)
|
set(SDL_HASH 783b6f2df8ff02b19bb5ce492b99c8ff)
|
||||||
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)
|
||||||
|
|
||||||
@@ -116,9 +130,9 @@ set(OPENCOLLADA_HASH ee7dae874019fea7be11613d07567493)
|
|||||||
set(OPENCOLLADA_HASH_TYPE MD5)
|
set(OPENCOLLADA_HASH_TYPE MD5)
|
||||||
set(OPENCOLLADA_FILE opencollada-${OPENCOLLADA_VERSION}.tar.gz)
|
set(OPENCOLLADA_FILE opencollada-${OPENCOLLADA_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(OPENCOLORIO_VERSION 2.1.1)
|
set(OPENCOLORIO_VERSION 2.0.0)
|
||||||
set(OPENCOLORIO_URI https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
|
set(OPENCOLORIO_URI https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v${OPENCOLORIO_VERSION}.tar.gz)
|
||||||
set(OPENCOLORIO_HASH 604f562e073f23d88ce89ed4f7f709ba)
|
set(OPENCOLORIO_HASH 1a2e3478b6cd9a1549f24e1b2205e3f0)
|
||||||
set(OPENCOLORIO_HASH_TYPE MD5)
|
set(OPENCOLORIO_HASH_TYPE MD5)
|
||||||
set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz)
|
set(OPENCOLORIO_FILE OpenColorIO-${OPENCOLORIO_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -141,37 +155,21 @@ 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.13.0)
|
set(OPENIMAGEIO_VERSION 2.2.15.1)
|
||||||
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/refs/tags/${OPENIMAGEIO_VERSION}.tar.gz)
|
set(OPENIMAGEIO_URI https://github.com/OpenImageIO/oiio/archive/Release-${OPENIMAGEIO_VERSION}.tar.gz)
|
||||||
set(OPENIMAGEIO_HASH de45fb38501c4581062b522b53b6141c)
|
set(OPENIMAGEIO_HASH 3db5c5f0b3dc91597c75e5df09eb9072)
|
||||||
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)
|
||||||
|
|
||||||
# 8.0.0 is currently oiio's preferred vesion although never versions may be available.
|
set(TIFF_VERSION 4.1.0)
|
||||||
# the preferred version can be found in oiio's externalpackages.cmake
|
|
||||||
set(FMT_VERSION 8.0.0)
|
|
||||||
set(FMT_URI https://github.com/fmtlib/fmt/archive/refs/tags/${FMT_VERSION}.tar.gz)
|
|
||||||
set(FMT_HASH 7bce0e9e022e586b178b150002e7c2339994e3c2bbe44027e9abb0d60f9cce83)
|
|
||||||
set(FMT_HASH_TYPE SHA256)
|
|
||||||
set(FMT_FILE fmt-${FMT_VERSION}.tar.gz)
|
|
||||||
|
|
||||||
# 0.6.2 is currently oiio's preferred vesion although never versions may be available.
|
|
||||||
# the preferred version can be found in oiio's externalpackages.cmake
|
|
||||||
set(ROBINMAP_VERSION v0.6.2)
|
|
||||||
set(ROBINMAP_URI https://github.com/Tessil/robin-map/archive/refs/tags/${ROBINMAP_VERSION}.tar.gz)
|
|
||||||
set(ROBINMAP_HASH c08ec4b1bf1c85eb0d6432244a6a89862229da1cb834f3f90fba8dc35d8c8ef1)
|
|
||||||
set(ROBINMAP_HASH_TYPE SHA256)
|
|
||||||
set(ROBINMAP_FILE robinmap-${ROBINMAP_VERSION}.tar.gz)
|
|
||||||
|
|
||||||
set(TIFF_VERSION 4.3.0)
|
|
||||||
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
|
set(TIFF_URI http://download.osgeo.org/libtiff/tiff-${TIFF_VERSION}.tar.gz)
|
||||||
set(TIFF_HASH 0a2e4744d1426a8fc8211c0cdbc3a1b3)
|
set(TIFF_HASH 2165e7aba557463acc0664e71a3ed424)
|
||||||
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(OSL_VERSION 1.11.17.0)
|
set(OSL_VERSION 1.11.14.1)
|
||||||
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
|
set(OSL_URI https://github.com/imageworks/OpenShadingLanguage/archive/Release-${OSL_VERSION}.tar.gz)
|
||||||
set(OSL_HASH 63265472ce14548839ace2e21e401544)
|
set(OSL_HASH 1abd7ce40481771a9fa937f19595d2f2)
|
||||||
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)
|
||||||
|
|
||||||
@@ -183,18 +181,24 @@ 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(TBB_VERSION 2020_U3)
|
set(TBB_VERSION 2020_U2)
|
||||||
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 1b711ae956524855088df3bbf5ec65dc)
|
||||||
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(OPENVDB_VERSION 9.0.0)
|
set(OPENVDB_VERSION 8.0.1)
|
||||||
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)
|
||||||
set(OPENVDB_HASH 684ce40c2f74f3a0c9cac530e1c7b07e)
|
set(OPENVDB_HASH 01b490be16cc0e15c690f9a153c21461)
|
||||||
set(OPENVDB_HASH_TYPE MD5)
|
set(OPENVDB_HASH_TYPE MD5)
|
||||||
set(OPENVDB_FILE openvdb-${OPENVDB_VERSION}.tar.gz)
|
set(OPENVDB_FILE openvdb-${OPENVDB_VERSION}.tar.gz)
|
||||||
|
|
||||||
|
set(NANOVDB_GIT_UID dc37d8a631922e7bef46712947dc19b755f3e841)
|
||||||
|
set(NANOVDB_URI https://github.com/AcademySoftwareFoundation/openvdb/archive/${NANOVDB_GIT_UID}.tar.gz)
|
||||||
|
set(NANOVDB_HASH e7b9e863ec2f3b04ead171dec2322807)
|
||||||
|
set(NANOVDB_HASH_TYPE MD5)
|
||||||
|
set(NANOVDB_FILE nano-vdb-${NANOVDB_GIT_UID}.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)
|
||||||
@@ -204,9 +208,6 @@ set(CYTHON_VERSION 0.29.26)
|
|||||||
# The version of the zstd library used to build the Python package should match ZSTD_VERSION defined below.
|
# The version of the zstd library used to build the Python package should match ZSTD_VERSION defined below.
|
||||||
# At this time of writing, 0.17.0 was already released, but built against zstd 1.5.1, while we use 1.5.0.
|
# At this time of writing, 0.17.0 was already released, 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(PYCODESTYLE_VERSION 2.8.0)
|
|
||||||
set(TOML_VERSION 0.10.2)
|
|
||||||
|
|
||||||
set(NUMPY_VERSION 1.22.0)
|
set(NUMPY_VERSION 1.22.0)
|
||||||
set(NUMPY_SHORT_VERSION 1.22)
|
set(NUMPY_SHORT_VERSION 1.22)
|
||||||
@@ -221,15 +222,15 @@ 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(OGG_VERSION 1.3.5)
|
set(OGG_VERSION 1.3.4)
|
||||||
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)
|
||||||
set(OGG_HASH 0eb4b4b9420a0f51db142ba3f9c64b333f826532dc0f48c6410ae51f4799b664)
|
set(OGG_HASH fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e)
|
||||||
set(OGG_HASH_TYPE SHA256)
|
set(OGG_HASH_TYPE SHA256)
|
||||||
set(OGG_FILE libogg-${OGG_VERSION}.tar.gz)
|
set(OGG_FILE libogg-${OGG_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(VORBIS_VERSION 1.3.7)
|
set(VORBIS_VERSION 1.3.6)
|
||||||
set(VORBIS_URI http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz)
|
set(VORBIS_URI http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz)
|
||||||
set(VORBIS_HASH 0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab)
|
set(VORBIS_HASH 6ed40e0241089a42c48604dc00e362beee00036af2d8b3f46338031c9e0351cb)
|
||||||
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)
|
||||||
|
|
||||||
@@ -239,15 +240,15 @@ set(THEORA_HASH b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc
|
|||||||
set(THEORA_HASH_TYPE SHA256)
|
set(THEORA_HASH_TYPE SHA256)
|
||||||
set(THEORA_FILE libtheora-${THEORA_VERSION}.tar.bz2)
|
set(THEORA_FILE libtheora-${THEORA_VERSION}.tar.bz2)
|
||||||
|
|
||||||
set(FLAC_VERSION 1.3.4)
|
set(FLAC_VERSION 1.3.3)
|
||||||
set(FLAC_URI http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.xz)
|
set(FLAC_URI http://downloads.xiph.org/releases/flac/flac-${FLAC_VERSION}.tar.xz)
|
||||||
set(FLAC_HASH 8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737 )
|
set(FLAC_HASH 213e82bd716c9de6db2f98bcadbc4c24c7e2efe8c75939a1a84e28539c4e1748)
|
||||||
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(VPX_VERSION 1.11.0)
|
set(VPX_VERSION 1.8.2)
|
||||||
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 8735d9fcd1a781ae6917f28f239a8aa358ce4864ba113ea18af4bb2dc8b474ac)
|
||||||
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)
|
||||||
|
|
||||||
@@ -257,9 +258,9 @@ set(OPUS_HASH 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d)
|
|||||||
set(OPUS_HASH_TYPE SHA256)
|
set(OPUS_HASH_TYPE SHA256)
|
||||||
set(OPUS_FILE opus-${OPUS_VERSION}.tar.gz)
|
set(OPUS_FILE opus-${OPUS_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(X264_VERSION 35fe20d1ba49918ec739a5b068c208ca82f977f7)
|
set(X264_VERSION 33f9e1474613f59392be5ab6a7e7abf60fa63622)
|
||||||
set(X264_URI https://code.videolan.org/videolan/x264/-/archive/${X264_VERSION}/x264-${X264_VERSION}.tar.gz)
|
set(X264_URI https://code.videolan.org/videolan/x264/-/archive/${X264_VERSION}/x264-${X264_VERSION}.tar.gz)
|
||||||
set(X264_HASH bb4f7da03936b5a030ed5827133b58eb3f701d7e5dce32cca4ba6df93797d42e)
|
set(X264_HASH 5456450ee1ae02cd2328be3157367a232a0ab73315e8c8f80dab80469524f525)
|
||||||
set(X264_HASH_TYPE SHA256)
|
set(X264_HASH_TYPE SHA256)
|
||||||
set(X264_FILE x264-${X264_VERSION}.tar.gz)
|
set(X264_FILE x264-${X264_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -269,22 +270,22 @@ 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.4.0)
|
set(OPENJPEG_VERSION 2.3.1)
|
||||||
set(OPENJPEG_SHORT_VERSION 2.4)
|
set(OPENJPEG_SHORT_VERSION 2.3)
|
||||||
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 8702ba68b442657f11aaeb2b338443ca8d5fb95b0d845757968a7be31ef7f16d)
|
set(OPENJPEG_HASH 63f5a4713ecafc86de51bfad89cc07bb788e9bba24ebbf0c4ca637621aadb6a9)
|
||||||
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(FFMPEG_VERSION 5.0)
|
set(FFMPEG_VERSION 4.4)
|
||||||
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 c0130b8db2c763430fd1c6905288d61bc44ee0548ad5fcd2dfd650b88432bed9)
|
set(FFMPEG_HASH 42093549751b582cf0f338a21a3664f52e0a9fbe0d238d3c992005e493607d0e)
|
||||||
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(FFTW_VERSION 3.3.10)
|
set(FFTW_VERSION 3.3.8)
|
||||||
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
|
set(FFTW_URI http://www.fftw.org/fftw-${FFTW_VERSION}.tar.gz)
|
||||||
set(FFTW_HASH 8ccbf6a5ea78a16dbc3e1306e234cc5c)
|
set(FFTW_HASH 8aac833c943d8e90d51b697b27d4384d)
|
||||||
set(FFTW_HASH_TYPE MD5)
|
set(FFTW_HASH_TYPE MD5)
|
||||||
set(FFTW_FILE fftw-${FFTW_VERSION}.tar.gz)
|
set(FFTW_FILE fftw-${FFTW_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -300,9 +301,9 @@ 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(WEBP_VERSION 1.2.2)
|
set(WEBP_VERSION 0.6.1)
|
||||||
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 b49ce9c3e3e9acae4d91bca44bb85a72)
|
||||||
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)
|
||||||
|
|
||||||
@@ -337,15 +338,9 @@ 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(PYSTRING_VERSION v1.1.3)
|
set(EXPAT_VERSION 2_2_10)
|
||||||
set(PYSTRING_URI https://codeload.github.com/imageworks/pystring/tar.gz/refs/tags/${PYSTRING_VERSION})
|
|
||||||
set(PYSTRING_HASH f2c68786b359f5e4e62bed53bc4fb86d)
|
|
||||||
set(PYSTRING_HASH_TYPE MD5)
|
|
||||||
set(PYSTRING_FILE pystring-${PYSTRING_VERSION}.tar.gz)
|
|
||||||
|
|
||||||
set(EXPAT_VERSION 2_4_4)
|
|
||||||
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 2d3e81dee94b452369dc6394ff0f8f98)
|
set(EXPAT_HASH 7ca5f09959fcb9a57618368deb627b9f)
|
||||||
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)
|
||||||
|
|
||||||
@@ -410,21 +405,22 @@ set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7)
|
|||||||
set(SQLITE_HASH_TYPE SHA1)
|
set(SQLITE_HASH_TYPE SHA1)
|
||||||
set(SQLITE_FILE sqlite-src-3240000.zip)
|
set(SQLITE_FILE sqlite-src-3240000.zip)
|
||||||
|
|
||||||
set(EMBREE_VERSION 3.13.3)
|
set(EMBREE_VERSION 3.10.0)
|
||||||
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)
|
||||||
set(EMBREE_HASH f62766ba54e48a2f327c3a22596e7133)
|
set(EMBREE_HASH 4bbe29e7eaa46417efc75fc5f1e8eb87)
|
||||||
set(EMBREE_HASH_TYPE MD5)
|
set(EMBREE_HASH_TYPE MD5)
|
||||||
set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip)
|
set(EMBREE_FILE embree-v${EMBREE_VERSION}.zip)
|
||||||
|
set(EMBREE_ARM_GIT https://github.com/brechtvl/embree.git)
|
||||||
|
|
||||||
set(USD_VERSION 22.03)
|
set(USD_VERSION 21.02)
|
||||||
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
|
set(USD_URI https://github.com/PixarAnimationStudios/USD/archive/v${USD_VERSION}.tar.gz)
|
||||||
set(USD_HASH e0e441a05057692a83124a1195b09eed)
|
set(USD_HASH 1dd1e2092d085ed393c1f7c450a4155a)
|
||||||
set(USD_HASH_TYPE MD5)
|
set(USD_HASH_TYPE MD5)
|
||||||
set(USD_FILE usd-v${USD_VERSION}.tar.gz)
|
set(USD_FILE usd-v${USD_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(OIDN_VERSION 1.4.3)
|
set(OIDN_VERSION 1.4.1)
|
||||||
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
set(OIDN_URI https://github.com/OpenImageDenoise/oidn/releases/download/v${OIDN_VERSION}/oidn-${OIDN_VERSION}.src.tar.gz)
|
||||||
set(OIDN_HASH 027093eaf5e8b4e45835b991137b38e6)
|
set(OIDN_HASH df4007b0ab93b1c41cdf223b075d01c0)
|
||||||
set(OIDN_HASH_TYPE MD5)
|
set(OIDN_HASH_TYPE MD5)
|
||||||
set(OIDN_FILE oidn-${OIDN_VERSION}.src.tar.gz)
|
set(OIDN_FILE oidn-${OIDN_VERSION}.src.tar.gz)
|
||||||
|
|
||||||
@@ -458,9 +454,9 @@ 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(ISPC_VERSION v1.17.0)
|
set(ISPC_VERSION v1.16.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 2e3abedbc0ea9aaec17d6562c632454d)
|
||||||
set(ISPC_HASH_TYPE MD5)
|
set(ISPC_HASH_TYPE MD5)
|
||||||
set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz)
|
set(ISPC_FILE ispc-${ISPC_VERSION}.tar.gz)
|
||||||
|
|
||||||
@@ -496,9 +492,3 @@ set(BROTLI_URI https://github.com/google/brotli/archive/refs/tags/${BROTLI_VERSI
|
|||||||
set(BROTLI_HASH f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46)
|
set(BROTLI_HASH f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46)
|
||||||
set(BROTLI_HASH_TYPE SHA256)
|
set(BROTLI_HASH_TYPE SHA256)
|
||||||
set(BROTLI_FILE brotli-${BROTLI_VERSION}.tar.gz)
|
set(BROTLI_FILE brotli-${BROTLI_VERSION}.tar.gz)
|
||||||
|
|
||||||
set(LEVEL_ZERO_VERSION v1.7.15)
|
|
||||||
set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${LEVEL_ZERO_VERSION}.tar.gz)
|
|
||||||
set(LEVEL_ZERO_HASH c39bb05a8e5898aa6c444e1704105b93d3f1888b9c333f8e7e73825ffbfb2617)
|
|
||||||
set(LEVEL_ZERO_HASH_TYPE SHA256)
|
|
||||||
set(LEVEL_ZERO_FILE level-zero-${LEVEL_ZERO_VERSION}.tar.gz)
|
|
||||||
|
@@ -4,15 +4,9 @@
|
|||||||
# library itself does not depend on them, so should give no problems.
|
# library itself does not depend on them, so should give no problems.
|
||||||
|
|
||||||
set(WEBP_EXTRA_ARGS
|
set(WEBP_EXTRA_ARGS
|
||||||
-DWEBP_BUILD_ANIM_UTILS=OFF
|
-DWEBP_HAVE_SSE2=ON
|
||||||
-DWEBP_BUILD_CWEBP=OFF
|
-DWEBP_HAVE_SSE41=OFF
|
||||||
-DWEBP_BUILD_DWEBP=OFF
|
-DWEBP_HAVE_AVX2=OFF
|
||||||
-DWEBP_BUILD_GIF2WEBP=OFF
|
|
||||||
-DWEBP_BUILD_IMG2WEBP=OFF
|
|
||||||
-DWEBP_BUILD_VWEBP=OFF
|
|
||||||
-DWEBP_BUILD_WEBPINFO=OFF
|
|
||||||
-DWEBP_BUILD_WEBPMUX=OFF
|
|
||||||
-DWEBP_BUILD_EXTRAS=OFF
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -37,6 +37,10 @@ graph[autosize = false, size = "25.7,8.3!", resolution = 300, overlap = false, s
|
|||||||
external_openimageio -- external_webp;
|
external_openimageio -- external_webp;
|
||||||
external_openimageio -- external_opencolorio_extra;
|
external_openimageio -- external_opencolorio_extra;
|
||||||
external_openmp -- external_clang;
|
external_openmp -- external_clang;
|
||||||
|
external_opensubdiv -- external_glew;
|
||||||
|
external_opensubdiv -- external_glfw;
|
||||||
|
external_opensubdiv -- external_clew;
|
||||||
|
external_opensubdiv -- external_cuew;
|
||||||
external_opensubdiv -- external_tbb;
|
external_opensubdiv -- external_tbb;
|
||||||
openvdb -- external_tbb;
|
openvdb -- external_tbb;
|
||||||
openvdb -- external_boost;
|
openvdb -- external_boost;
|
||||||
|
@@ -36,19 +36,19 @@ getopt \
|
|||||||
-o s:i:t:h \
|
-o s:i:t:h \
|
||||||
--long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,\
|
--long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,\
|
||||||
with-all,with-opencollada,with-jack,with-pulseaudio,with-embree,with-oidn,with-nanovdb,\
|
with-all,with-opencollada,with-jack,with-pulseaudio,with-embree,with-oidn,with-nanovdb,\
|
||||||
ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,ver-xr-openxr:,ver-level-zero:\
|
ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,ver-xr-openxr:,\
|
||||||
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-xr-openxr,\
|
||||||
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-xr-openxr,\
|
||||||
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-xr-openxr \
|
||||||
-- "$@" \
|
-- "$@" \
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -165,9 +165,6 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
--ver-xr-openxr=<ver>
|
--ver-xr-openxr=<ver>
|
||||||
Force version of OpenXR-SDK.
|
Force version of OpenXR-SDK.
|
||||||
|
|
||||||
--ver-level-zero=<ver>
|
|
||||||
Force version of OneAPI Level Zero library.
|
|
||||||
|
|
||||||
Note about the --ver-foo options:
|
Note about the --ver-foo options:
|
||||||
It may not always work as expected (some libs are actually checked out from a git rev...), yet it might help
|
It may not always work as expected (some libs are actually checked out from a git rev...), yet it might help
|
||||||
to fix some build issues (like LLVM mismatch with the version used by your graphic system).
|
to fix some build issues (like LLVM mismatch with the version used by your graphic system).
|
||||||
@@ -229,9 +226,6 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
--build-xr-openxr
|
--build-xr-openxr
|
||||||
Force the build of OpenXR-SDK.
|
Force the build of OpenXR-SDK.
|
||||||
|
|
||||||
--build-level-zero=<ver>
|
|
||||||
Force the build of OneAPI Level Zero 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
|
||||||
@@ -299,9 +293,6 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
--force-xr-openxr
|
--force-xr-openxr
|
||||||
Force the rebuild of OpenXR-SDK.
|
Force the rebuild of OpenXR-SDK.
|
||||||
|
|
||||||
--force-level-zero=<ver>
|
|
||||||
Force the rebuild of OneAPI Level Zero 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)!
|
||||||
@@ -360,10 +351,7 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS:
|
|||||||
Unconditionally skip Universal Scene Description installation/building.
|
Unconditionally skip Universal Scene Description installation/building.
|
||||||
|
|
||||||
--skip-xr-openxr
|
--skip-xr-openxr
|
||||||
Unconditionally skip OpenXR-SDK installation/building.
|
Unconditionally skip OpenXR-SDK installation/building.\""
|
||||||
|
|
||||||
--skip-level-zero=<ver>
|
|
||||||
Unconditionally skip OneAPI Level Zero installation/building.\""
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Main Vars
|
# Main Vars
|
||||||
@@ -551,10 +539,10 @@ ALEMBIC_FORCE_BUILD=false
|
|||||||
ALEMBIC_FORCE_REBUILD=false
|
ALEMBIC_FORCE_REBUILD=false
|
||||||
ALEMBIC_SKIP=false
|
ALEMBIC_SKIP=false
|
||||||
|
|
||||||
USD_VERSION="22.03"
|
USD_VERSION="21.02"
|
||||||
USD_VERSION_SHORT="22.03"
|
USD_VERSION_SHORT="21.02"
|
||||||
USD_VERSION_MIN="20.05"
|
USD_VERSION_MIN="20.05"
|
||||||
USD_VERSION_MEX="23.00"
|
USD_VERSION_MEX="22.00"
|
||||||
USD_FORCE_BUILD=false
|
USD_FORCE_BUILD=false
|
||||||
USD_FORCE_REBUILD=false
|
USD_FORCE_REBUILD=false
|
||||||
USD_SKIP=false
|
USD_SKIP=false
|
||||||
@@ -585,13 +573,14 @@ OIDN_SKIP=false
|
|||||||
|
|
||||||
ISPC_VERSION="1.17.0"
|
ISPC_VERSION="1.17.0"
|
||||||
|
|
||||||
LEVEL_ZERO_VERSION="1.7.15"
|
FFMPEG_VERSION="4.4"
|
||||||
LEVEL_ZERO_VERSION_SHORT="1.7"
|
FFMPEG_VERSION_SHORT="4.4"
|
||||||
LEVEL_ZERO_VERSION_MIN="1.7"
|
FFMPEG_VERSION_MIN="3.0"
|
||||||
LEVEL_ZERO_VERSION_MEX="2.0"
|
FFMPEG_VERSION_MEX="5.0"
|
||||||
LEVEL_ZERO_FORCE_BUILD=false
|
FFMPEG_FORCE_BUILD=false
|
||||||
LEVEL_ZERO_FORCE_REBUILD=false
|
FFMPEG_FORCE_REBUILD=false
|
||||||
LEVEL_ZERO_SKIP=false
|
FFMPEG_SKIP=false
|
||||||
|
_ffmpeg_list_sep=";"
|
||||||
|
|
||||||
XR_OPENXR_VERSION="1.0.22"
|
XR_OPENXR_VERSION="1.0.22"
|
||||||
XR_OPENXR_VERSION_SHORT="1.0"
|
XR_OPENXR_VERSION_SHORT="1.0"
|
||||||
@@ -601,15 +590,6 @@ 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.0"
|
|
||||||
FFMPEG_VERSION_SHORT="5.0"
|
|
||||||
FFMPEG_VERSION_MIN="4.0"
|
|
||||||
FFMPEG_VERSION_MEX="6.0"
|
|
||||||
FFMPEG_FORCE_BUILD=false
|
|
||||||
FFMPEG_FORCE_REBUILD=false
|
|
||||||
FFMPEG_SKIP=false
|
|
||||||
_ffmpeg_list_sep=";"
|
|
||||||
|
|
||||||
# FFMPEG optional libs.
|
# FFMPEG optional libs.
|
||||||
VORBIS_USE=false
|
VORBIS_USE=false
|
||||||
VORBIS_DEV=""
|
VORBIS_DEV=""
|
||||||
@@ -801,12 +781,6 @@ while true; do
|
|||||||
XR_OPENXR_VERSION_SHORT=$XR_OPENXR_VERSION
|
XR_OPENXR_VERSION_SHORT=$XR_OPENXR_VERSION
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--ver-level-zero)
|
|
||||||
LEVEL_ZERO_VERSION="$2"
|
|
||||||
LEVEL_ZERO_VERSION_MIN=$LEVEL_ZERO_VERSION
|
|
||||||
LEVEL_ZERO_VERSION_SHORT=$LEVEL_ZERO_VERSION
|
|
||||||
shift; shift; continue
|
|
||||||
;;
|
|
||||||
--build-all)
|
--build-all)
|
||||||
PYTHON_FORCE_BUILD=true
|
PYTHON_FORCE_BUILD=true
|
||||||
BOOST_FORCE_BUILD=true
|
BOOST_FORCE_BUILD=true
|
||||||
@@ -826,7 +800,6 @@ while true; do
|
|||||||
ALEMBIC_FORCE_BUILD=true
|
ALEMBIC_FORCE_BUILD=true
|
||||||
USD_FORCE_BUILD=true
|
USD_FORCE_BUILD=true
|
||||||
XR_OPENXR_FORCE_BUILD=true
|
XR_OPENXR_FORCE_BUILD=true
|
||||||
LEVEL_ZERO_FORCE_BUILD=true
|
|
||||||
shift; continue
|
shift; continue
|
||||||
;;
|
;;
|
||||||
--build-python)
|
--build-python)
|
||||||
@@ -884,9 +857,6 @@ while true; do
|
|||||||
--build-xr-openxr)
|
--build-xr-openxr)
|
||||||
XR_OPENXR_FORCE_BUILD=true; shift; continue
|
XR_OPENXR_FORCE_BUILD=true; shift; continue
|
||||||
;;
|
;;
|
||||||
--build-level-zero)
|
|
||||||
LEVEL_ZERO_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
|
||||||
@@ -906,7 +876,6 @@ while true; do
|
|||||||
ALEMBIC_FORCE_REBUILD=true
|
ALEMBIC_FORCE_REBUILD=true
|
||||||
USD_FORCE_REBUILD=true
|
USD_FORCE_REBUILD=true
|
||||||
XR_OPENXR_FORCE_REBUILD=true
|
XR_OPENXR_FORCE_REBUILD=true
|
||||||
LEVEL_ZERO_FORCE_REBUILD=true
|
|
||||||
shift; continue
|
shift; continue
|
||||||
;;
|
;;
|
||||||
--force-python)
|
--force-python)
|
||||||
@@ -964,9 +933,6 @@ while true; do
|
|||||||
--force-xr-openxr)
|
--force-xr-openxr)
|
||||||
XR_OPENXR_FORCE_REBUILD=true; shift; continue
|
XR_OPENXR_FORCE_REBUILD=true; shift; continue
|
||||||
;;
|
;;
|
||||||
--force-level-zero)
|
|
||||||
LEVEL_ZERO_FORCE_REBUILD=true; shift; continue
|
|
||||||
;;
|
|
||||||
--skip-python)
|
--skip-python)
|
||||||
PYTHON_SKIP=true; shift; continue
|
PYTHON_SKIP=true; shift; continue
|
||||||
;;
|
;;
|
||||||
@@ -1021,9 +987,6 @@ while true; do
|
|||||||
--skip-xr-openxr)
|
--skip-xr-openxr)
|
||||||
XR_OPENXR_SKIP=true; shift; continue
|
XR_OPENXR_SKIP=true; shift; continue
|
||||||
;;
|
;;
|
||||||
--skip-level-zero)
|
|
||||||
LEVEL_ZERO_SKIP=true; shift; continue
|
|
||||||
;;
|
|
||||||
--)
|
--)
|
||||||
# no more arguments to parse
|
# no more arguments to parse
|
||||||
break
|
break
|
||||||
@@ -1165,16 +1128,14 @@ OIDN_SOURCE=( "https://github.com/OpenImageDenoise/oidn/releases/download/v${OID
|
|||||||
|
|
||||||
ISPC_BINARY=( "https://github.com/ispc/ispc/releases/download/v${ISPC_VERSION}/ispc-v${ISPC_VERSION}-linux.tar.gz" )
|
ISPC_BINARY=( "https://github.com/ispc/ispc/releases/download/v${ISPC_VERSION}/ispc-v${ISPC_VERSION}-linux.tar.gz" )
|
||||||
|
|
||||||
|
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
|
||||||
|
|
||||||
XR_OPENXR_USE_REPO=false
|
XR_OPENXR_USE_REPO=false
|
||||||
XR_OPENXR_SOURCE=("https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_VERSION}.tar.gz")
|
XR_OPENXR_SOURCE=("https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_VERSION}.tar.gz")
|
||||||
XR_OPENXR_SOURCE_REPO=("https://github.com/KhronosGroup/OpenXR-SDK.git")
|
XR_OPENXR_SOURCE_REPO=("https://github.com/KhronosGroup/OpenXR-SDK.git")
|
||||||
XR_OPENXR_REPO_UID="458984d7f59d1ae6dc1b597d94b02e4f7132eaba"
|
XR_OPENXR_REPO_UID="458984d7f59d1ae6dc1b597d94b02e4f7132eaba"
|
||||||
XR_OPENXR_REPO_BRANCH="master"
|
XR_OPENXR_REPO_BRANCH="master"
|
||||||
|
|
||||||
LEVEL_ZERO_SOURCE=("https://github.com/oneapi-src/level-zero/archive/refs/tags/v${LEVEL_ZERO_VERSION}.tar.gz")
|
|
||||||
|
|
||||||
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
|
|
||||||
|
|
||||||
# C++11 is required now
|
# C++11 is required now
|
||||||
CXXFLAGS_BACK=$CXXFLAGS
|
CXXFLAGS_BACK=$CXXFLAGS
|
||||||
CXXFLAGS="$CXXFLAGS -std=c++11"
|
CXXFLAGS="$CXXFLAGS -std=c++11"
|
||||||
@@ -1226,8 +1187,7 @@ You may also want to build them yourself (optional ones are [between brackets]):
|
|||||||
* [OpenImageDenoise $OIDN_VERSION] (from $OIDN_SOURCE).
|
* [OpenImageDenoise $OIDN_VERSION] (from $OIDN_SOURCE).
|
||||||
* [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).\""
|
|
||||||
|
|
||||||
if [ "$DO_SHOW_DEPS" = true ]; then
|
if [ "$DO_SHOW_DEPS" = true ]; then
|
||||||
PRINT ""
|
PRINT ""
|
||||||
@@ -3862,103 +3822,6 @@ compile_XR_OpenXR_SDK() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Build OneAPI Level Zero library.
|
|
||||||
|
|
||||||
_init_level_zero() {
|
|
||||||
_src=$SRC/level-zero-$LEVEL_ZERO_VERSION
|
|
||||||
_git=false
|
|
||||||
_inst=$INST/level-zero-$LEVEL_ZERO_VERSION_SHORT
|
|
||||||
_inst_shortcut=$INST/level-zero
|
|
||||||
}
|
|
||||||
|
|
||||||
_update_deps_level_zero() {
|
|
||||||
:
|
|
||||||
}
|
|
||||||
|
|
||||||
clean_Level_Zero() {
|
|
||||||
_init_level_zero
|
|
||||||
if [ -d $_inst ]; then
|
|
||||||
# Force rebuilding the dependencies if needed.
|
|
||||||
_update_deps_level_zero false true
|
|
||||||
fi
|
|
||||||
_clean
|
|
||||||
}
|
|
||||||
|
|
||||||
compile_Level_Zero() {
|
|
||||||
if [ "$NO_BUILD" = true ]; then
|
|
||||||
WARNING "--no-build enabled, Level Zero will not be compiled!"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
# To be changed each time we make edits that would modify the compiled result!
|
|
||||||
level_zero_magic=1
|
|
||||||
_init_level_zero
|
|
||||||
|
|
||||||
# Force having own builds for the dependencies.
|
|
||||||
_update_deps_level_zero true false
|
|
||||||
|
|
||||||
# Clean install if needed!
|
|
||||||
magic_compile_check level-zero-$LEVEL_ZERO_VERSION $level_zero_magic
|
|
||||||
if [ $? -eq 1 -o "$LEVEL_ZERO_FORCE_REBUILD" = true ]; then
|
|
||||||
clean_Level_Zero
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d $_inst ]; then
|
|
||||||
INFO "Building Level-Zero-$LEVEL_ZERO_VERSION"
|
|
||||||
|
|
||||||
# Force rebuilding the dependencies.
|
|
||||||
_update_deps_level_zero true true
|
|
||||||
|
|
||||||
prepare_inst
|
|
||||||
|
|
||||||
if [ ! -d $_src ]; then
|
|
||||||
mkdir -p $SRC
|
|
||||||
|
|
||||||
download LEVEL_ZERO_SOURCE[@] "$_src.tar.gz"
|
|
||||||
INFO "Unpacking Level-Zero-$LEVEL_ZERO_VERSION"
|
|
||||||
tar -C $SRC -xf $_src.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $_src
|
|
||||||
|
|
||||||
# Always refresh the whole build!
|
|
||||||
if [ -d build ]; then
|
|
||||||
rm -rf build
|
|
||||||
fi
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# Keep flags in sync with LEVEL_ZERO_EXTRA_ARGS in level-zero.cmake!
|
|
||||||
cmake_d="-D CMAKE_BUILD_TYPE=Release"
|
|
||||||
cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst"
|
|
||||||
|
|
||||||
cmake $cmake_d ..
|
|
||||||
|
|
||||||
make -j$THREADS && make install
|
|
||||||
make clean
|
|
||||||
|
|
||||||
if [ ! -d $_inst ]; then
|
|
||||||
ERROR "Level-Zero-$LEVEL_ZERO_VERSION failed to compile, exiting"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
magic_compile_set level-zero-$LEVEL_ZERO_VERSION $level_zero_magic
|
|
||||||
|
|
||||||
cd $CWD
|
|
||||||
INFO "Done compiling Level-Zero-$LEVEL_ZERO_VERSION!"
|
|
||||||
else
|
|
||||||
INFO "Own Level-Zero-$LEVEL_ZERO_VERSION is up to date, nothing to do!"
|
|
||||||
INFO "If you want to force rebuild of this lib, use the --force-level-zero option."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d $_inst ]; then
|
|
||||||
_create_inst_shortcut
|
|
||||||
fi
|
|
||||||
run_ldconfig "level-zero"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Install on DEB-like
|
# Install on DEB-like
|
||||||
|
|
||||||
@@ -4595,18 +4458,6 @@ install_DEB() {
|
|||||||
PRINT ""
|
PRINT ""
|
||||||
compile_XR_OpenXR_SDK
|
compile_XR_OpenXR_SDK
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping Level Zero installation, as requested..."
|
|
||||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced Level Zero building, as requested..."
|
|
||||||
compile_Level_Zero
|
|
||||||
else
|
|
||||||
# No package currently!
|
|
||||||
PRINT ""
|
|
||||||
compile_Level_Zero
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -5293,18 +5144,6 @@ install_RPM() {
|
|||||||
# No package currently!
|
# No package currently!
|
||||||
compile_XR_OpenXR_SDK
|
compile_XR_OpenXR_SDK
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping Level Zero installation, as requested..."
|
|
||||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced Level Zero building, as requested..."
|
|
||||||
compile_Level_Zero
|
|
||||||
else
|
|
||||||
# No package currently!
|
|
||||||
PRINT ""
|
|
||||||
compile_Level_Zero
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -5882,18 +5721,6 @@ install_ARCH() {
|
|||||||
# No package currently!
|
# No package currently!
|
||||||
compile_XR_OpenXR_SDK
|
compile_XR_OpenXR_SDK
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping Level Zero installation, as requested..."
|
|
||||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced Level Zero building, as requested..."
|
|
||||||
compile_Level_Zero
|
|
||||||
else
|
|
||||||
# No package currently!
|
|
||||||
PRINT ""
|
|
||||||
compile_Level_Zero
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -6068,14 +5895,6 @@ install_OTHER() {
|
|||||||
INFO "Forced OpenXR-SDK building, as requested..."
|
INFO "Forced OpenXR-SDK building, as requested..."
|
||||||
compile_XR_OpenXR_SDK
|
compile_XR_OpenXR_SDK
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PRINT ""
|
|
||||||
if [ "$LEVEL_ZERO_SKIP" = true ]; then
|
|
||||||
WARNING "Skipping Level Zero installation, as requested..."
|
|
||||||
elif [ "$LEVEL_ZERO_FORCE_BUILD" = true ]; then
|
|
||||||
INFO "Forced Level Zero building, as requested..."
|
|
||||||
compile_Level_Zero
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
@@ -6318,18 +6137,6 @@ print_info() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Not yet available in Blender.
|
|
||||||
#~ if [ "$LEVEL_ZERO_SKIP" = false ]; then
|
|
||||||
#~ _1="-D WITH_LEVEL_ZERO=ON"
|
|
||||||
#~ PRINT " $_1"
|
|
||||||
#~ _buildargs="$_buildargs $_1"
|
|
||||||
#~ if [ -d $INST/level-zero ]; then
|
|
||||||
#~ _1="-D LEVEL_ZERO_ROOT_DIR=$INST/level-zero"
|
|
||||||
#~ PRINT " $_1"
|
|
||||||
#~ _buildargs="$_buildargs $_1"
|
|
||||||
#~ 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,32 +0,0 @@
|
|||||||
# SPDX-License-Identifier: BSD-3-Clause
|
|
||||||
# Copyright Contributors to the OpenColorIO Project.
|
|
||||||
|
|
||||||
project(pystring)
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.10)
|
|
||||||
|
|
||||||
set(HEADERS
|
|
||||||
pystring.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(SOURCES
|
|
||||||
pystring.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(${PROJECT_NAME} STATIC ${HEADERS} ${SOURCES})
|
|
||||||
|
|
||||||
if(UNIX)
|
|
||||||
set(pystring_CXX_FLAGS "${pystring_CXX_FLAGS} -fPIC")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
||||||
COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} ${pystring_CXX_FLAGS}"
|
|
||||||
PUBLIC_HEADER "${HEADERS}"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(TARGETS ${PROJECT_NAME}
|
|
||||||
RUNTIME DESTINATION bin
|
|
||||||
LIBRARY DESTINATION lib
|
|
||||||
ARCHIVE DESTINATION lib
|
|
||||||
PUBLIC_HEADER DESTINATION include/pystring
|
|
||||||
)
|
|
26
build_files/build_environment/patches/cuew.diff
Normal file
26
build_files/build_environment/patches/cuew.diff
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
--- CmakeLists.txt.orig 2015-12-31 03:46:41 -0700
|
||||||
|
+++ CMakeLists.txt 2016-04-01 13:28:33 -0600
|
||||||
|
@@ -22,3 +22,10 @@
|
||||||
|
|
||||||
|
add_executable(testcuew cuewTest/cuewTest.c include/cuew.h)
|
||||||
|
target_link_libraries(testcuew cuew ${CMAKE_DL_LIBS})
|
||||||
|
+
|
||||||
|
+install(TARGETS cuew
|
||||||
|
+ LIBRARY DESTINATION lib COMPONENT libraries
|
||||||
|
+ ARCHIVE DESTINATION lib/static COMPONENT libraries)
|
||||||
|
+
|
||||||
|
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/cuew.h
|
||||||
|
+ DESTINATION include/)
|
||||||
|
\ No newline at end of file
|
||||||
|
--- src/cuew.c 2016-04-01 13:41:43 -0600
|
||||||
|
+++ src/cuew.c 2016-04-01 13:41:11 -0600
|
||||||
|
@@ -15,7 +15,9 @@
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
+#if _MSC_VER < 1900
|
||||||
|
# define snprintf _snprintf
|
||||||
|
+#endif
|
||||||
|
# define popen _popen
|
||||||
|
# define pclose _pclose
|
||||||
|
# define _CRT_SECURE_NO_WARNINGS
|
@@ -12,19 +12,3 @@ diff -Naur orig/common/sys/platform.h external_embree/common/sys/platform.h
|
|||||||
#else
|
#else
|
||||||
#define dll_export __attribute__ ((visibility ("default")))
|
#define dll_export __attribute__ ((visibility ("default")))
|
||||||
#define dll_import
|
#define dll_import
|
||||||
diff --git orig/common/tasking/CMakeLists.txt external_embree/common/tasking/CMakeLists.txt
|
|
||||||
--- orig/common/tasking/CMakeLists.txt
|
|
||||||
+++ external_embree/common/tasking/CMakeLists.txt
|
|
||||||
@@ -27,7 +27,11 @@
|
|
||||||
else()
|
|
||||||
# If not found try getting older TBB via module (FindTBB.cmake)
|
|
||||||
unset(TBB_DIR CACHE)
|
|
||||||
- find_package(TBB 4.1 REQUIRED tbb)
|
|
||||||
+ if (TBB_STATIC_LIB)
|
|
||||||
+ find_package(TBB 4.1 REQUIRED tbb_static)
|
|
||||||
+ else()
|
|
||||||
+ find_package(TBB 4.1 REQUIRED tbb)
|
|
||||||
+ endif()
|
|
||||||
if (TBB_FOUND)
|
|
||||||
TARGET_LINK_LIBRARIES(tasking PUBLIC TBB)
|
|
||||||
TARGET_INCLUDE_DIRECTORIES(tasking PUBLIC "${TBB_INCLUDE_DIRS}")
|
|
||||||
|
@@ -1,6 +1,43 @@
|
|||||||
diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
|
diff -Naur external_ispc/CMakeLists.txt external_ispc_fixed/CMakeLists.txt
|
||||||
--- ispc-1.17.0.org/CMakeLists.txt 2022-01-15 01:35:15 -0700
|
--- external_ispc/CMakeLists.txt 2020-04-23 17:29:06 -0600
|
||||||
+++ ispc-1.17.0/CMakeLists.txt 2022-02-12 12:44:24 -0700
|
+++ external_ispc_fixed/CMakeLists.txt 2020-05-05 09:01:09 -0600
|
||||||
|
@@ -389,7 +389,7 @@
|
||||||
|
|
||||||
|
# Link against Clang libraries
|
||||||
|
foreach(clangLib ${CLANG_LIBRARY_LIST})
|
||||||
|
- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
|
||||||
|
+ find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
|
||||||
|
list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
|
||||||
|
endforeach()
|
||||||
|
target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
|
||||||
|
diff -Naur orig/CMakeLists.txt external_ispc/CMakeLists.txt
|
||||||
|
--- orig/CMakeLists.txt 2020-05-05 09:19:11 -0600
|
||||||
|
+++ external_ispc/CMakeLists.txt 2020-05-05 09:26:44 -0600
|
||||||
|
@@ -333,7 +333,7 @@
|
||||||
|
|
||||||
|
# Include directories
|
||||||
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||||
|
- ${LLVM_INCLUDE_DIRS}
|
||||||
|
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
|
||||||
|
${GENX_DEPS_DIR}/include
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
||||||
|
diff -Naur orig/cmake/GenerateBuiltins.cmake.txt external_ispc/cmake/GenerateBuiltins.cmake.txt
|
||||||
|
+++ orig/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
||||||
|
+++ external_ispc/cmake/GenerateBuiltins.cmake 2020-05-25 13:32:40.830803821 +0200
|
||||||
|
@@ -97,6 +97,8 @@
|
||||||
|
|
||||||
|
if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
|
||||||
|
set(target_arch "i686")
|
||||||
|
+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
|
||||||
|
+ set(SKIP ON)
|
||||||
|
elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
|
||||||
|
set(target_arch "x86_64")
|
||||||
|
elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 46a8db8..f53beef 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
@@ -36,8 +36,12 @@
|
@@ -36,8 +36,12 @@
|
||||||
cmake_minimum_required(VERSION 3.13)
|
cmake_minimum_required(VERSION 3.13)
|
||||||
|
|
||||||
@@ -16,25 +53,7 @@ diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PROJECT_NAME ispc)
|
set(PROJECT_NAME ispc)
|
||||||
@@ -443,7 +447,7 @@
|
@@ -412,6 +416,29 @@ else()
|
||||||
|
|
||||||
# Include directories
|
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
|
||||||
- ${LLVM_INCLUDE_DIRS}
|
|
||||||
+ ${LLVM_INCLUDE_DIRS} ${CLANG_INCLUDE_DIRS}
|
|
||||||
${XE_DEPS_DIR}/include
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR})
|
|
||||||
@@ -507,7 +511,7 @@
|
|
||||||
|
|
||||||
# Link against Clang libraries
|
|
||||||
foreach(clangLib ${CLANG_LIBRARY_LIST})
|
|
||||||
- find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS})
|
|
||||||
+ find_library(${clangLib}Path NAMES ${clangLib} HINTS ${LLVM_LIBRARY_DIRS} ${CLANG_LIBRARY_DIR})
|
|
||||||
list(APPEND CLANG_LIBRARY_FULL_PATH_LIST ${${clangLib}Path})
|
|
||||||
endforeach()
|
|
||||||
target_link_libraries(${PROJECT_NAME} ${CLANG_LIBRARY_FULL_PATH_LIST})
|
|
||||||
@@ -546,6 +550,29 @@
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -64,15 +83,3 @@ diff -Naur ispc-1.17.0.org/CMakeLists.txt ispc-1.17.0/CMakeLists.txt
|
|||||||
# Build target for utility checking host ISA
|
# Build target for utility checking host ISA
|
||||||
if (ISPC_INCLUDE_UTILS)
|
if (ISPC_INCLUDE_UTILS)
|
||||||
add_executable(check_isa "")
|
add_executable(check_isa "")
|
||||||
diff -Naur ispc-1.17.0.org/cmake/GenerateBuiltins.cmake ispc-1.17.0/cmake/GenerateBuiltins.cmake
|
|
||||||
--- ispc-1.17.0.org/cmake/GenerateBuiltins.cmake 2022-01-15 01:35:15 -0700
|
|
||||||
+++ ispc-1.17.0/cmake/GenerateBuiltins.cmake 2022-02-12 12:44:24 -0700
|
|
||||||
@@ -124,6 +124,8 @@
|
|
||||||
|
|
||||||
if ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "x86")
|
|
||||||
set(target_arch "i686")
|
|
||||||
+ # Blender: disable 32bit due to build issues on Linux and being unnecessary.
|
|
||||||
+ set(SKIP ON)
|
|
||||||
elseif ("${bit}" STREQUAL "64" AND ${arch} STREQUAL "x86")
|
|
||||||
set(target_arch "x86_64")
|
|
||||||
elseif ("${bit}" STREQUAL "32" AND ${arch} STREQUAL "arm")
|
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
diff -Naur external_levelzero_org/CMakeLists.txt external_levelzero/CMakeLists.txt
|
|
||||||
--- external_levelzero_org/CMakeLists.txt 2022-03-07 13:22:11 -0700
|
|
||||||
+++ external_levelzero/CMakeLists.txt 2022-03-29 13:22:15 -0600
|
|
||||||
@@ -77,9 +77,6 @@
|
|
||||||
#enabling Control Flow Guard
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /guard:cf")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /guard:cf")
|
|
||||||
- # enable Spectre Mitigation
|
|
||||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
|
|
||||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Qspectre")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#CXX compiler support
|
|
374
build_files/build_environment/patches/nanovdb.diff
Normal file
374
build_files/build_environment/patches/nanovdb.diff
Normal file
@@ -0,0 +1,374 @@
|
|||||||
|
Index: nanovdb/nanovdb/NanoVDB.h
|
||||||
|
===================================================================
|
||||||
|
--- a/nanovdb/nanovdb/NanoVDB.h (revision 62751)
|
||||||
|
+++ b/nanovdb/nanovdb/NanoVDB.h (working copy)
|
||||||
|
@@ -152,8 +152,8 @@
|
||||||
|
|
||||||
|
#endif // __CUDACC_RTC__
|
||||||
|
|
||||||
|
-#ifdef __CUDACC__
|
||||||
|
-// Only define __hostdev__ when using NVIDIA CUDA compiler
|
||||||
|
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||||
|
+// Only define __hostdev__ when using NVIDIA CUDA or HIP compiler
|
||||||
|
#define __hostdev__ __host__ __device__
|
||||||
|
#else
|
||||||
|
#define __hostdev__
|
||||||
|
@@ -461,7 +461,7 @@
|
||||||
|
/// Maximum floating-point values
|
||||||
|
template<typename T>
|
||||||
|
struct Maximum;
|
||||||
|
-#ifdef __CUDA_ARCH__
|
||||||
|
+#if defined(__CUDA_ARCH__) || defined(__HIP__)
|
||||||
|
template<>
|
||||||
|
struct Maximum<int>
|
||||||
|
{
|
||||||
|
@@ -1006,10 +1006,10 @@
|
||||||
|
using Vec3i = Vec3<int>;
|
||||||
|
|
||||||
|
/// @brief Return a single precision floating-point vector of this coordinate
|
||||||
|
-Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||||
|
+inline __hostdev__ Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
||||||
|
|
||||||
|
/// @brief Return a double precision floating-point vector of this coordinate
|
||||||
|
-Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||||
|
+inline __hostdev__ Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
||||||
|
|
||||||
|
// ----------------------------> Vec4 <--------------------------------------
|
||||||
|
|
||||||
|
@@ -1820,7 +1820,7 @@
|
||||||
|
}; // Map
|
||||||
|
|
||||||
|
template<typename Mat4T>
|
||||||
|
-void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||||
|
+__hostdev__ void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
||||||
|
{
|
||||||
|
float * mf = mMatF, *vf = mVecF;
|
||||||
|
float* mif = mInvMatF;
|
||||||
|
@@ -2170,7 +2170,7 @@
|
||||||
|
}; // Class Grid
|
||||||
|
|
||||||
|
template<typename TreeT>
|
||||||
|
-int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||||
|
+__hostdev__ int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
||||||
|
{
|
||||||
|
for (uint32_t i = 0, n = blindDataCount(); i < n; ++i)
|
||||||
|
if (blindMetaData(i).mSemantic == semantic)
|
||||||
|
@@ -2328,7 +2328,7 @@
|
||||||
|
}; // Tree class
|
||||||
|
|
||||||
|
template<typename RootT>
|
||||||
|
-void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||||
|
+__hostdev__ void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
||||||
|
{
|
||||||
|
min = this->root().valueMin();
|
||||||
|
max = this->root().valueMax();
|
||||||
|
@@ -2336,7 +2336,7 @@
|
||||||
|
|
||||||
|
template<typename RootT>
|
||||||
|
template<typename NodeT>
|
||||||
|
-const NodeT* Tree<RootT>::getNode(uint32_t i) const
|
||||||
|
+__hostdev__ const NodeT* Tree<RootT>::getNode(uint32_t i) const
|
||||||
|
{
|
||||||
|
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNode: unvalid node type");
|
||||||
|
NANOVDB_ASSERT(i < DataType::mCount[NodeT::LEVEL]);
|
||||||
|
@@ -2345,7 +2345,7 @@
|
||||||
|
|
||||||
|
template<typename RootT>
|
||||||
|
template<int LEVEL>
|
||||||
|
-const typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i) const
|
||||||
|
+__hostdev__ const typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i) const
|
||||||
|
{
|
||||||
|
NANOVDB_ASSERT(i < DataType::mCount[LEVEL]);
|
||||||
|
return reinterpret_cast<const TreeNodeT<LEVEL>*>(reinterpret_cast<const uint8_t*>(this) + DataType::mBytes[LEVEL]) + i;
|
||||||
|
@@ -2353,7 +2353,7 @@
|
||||||
|
|
||||||
|
template<typename RootT>
|
||||||
|
template<typename NodeT>
|
||||||
|
-NodeT* Tree<RootT>::getNode(uint32_t i)
|
||||||
|
+__hostdev__ NodeT* Tree<RootT>::getNode(uint32_t i)
|
||||||
|
{
|
||||||
|
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNode: invalid node type");
|
||||||
|
NANOVDB_ASSERT(i < DataType::mCount[NodeT::LEVEL]);
|
||||||
|
@@ -2362,7 +2362,7 @@
|
||||||
|
|
||||||
|
template<typename RootT>
|
||||||
|
template<int LEVEL>
|
||||||
|
-typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i)
|
||||||
|
+__hostdev__ typename TreeNode<Tree<RootT>, LEVEL>::type* Tree<RootT>::getNode(uint32_t i)
|
||||||
|
{
|
||||||
|
NANOVDB_ASSERT(i < DataType::mCount[LEVEL]);
|
||||||
|
return reinterpret_cast<TreeNodeT<LEVEL>*>(reinterpret_cast<uint8_t*>(this) + DataType::mBytes[LEVEL]) + i;
|
||||||
|
@@ -2370,7 +2370,7 @@
|
||||||
|
|
||||||
|
template<typename RootT>
|
||||||
|
template<typename NodeT>
|
||||||
|
-uint32_t Tree<RootT>::getNodeID(const NodeT& node) const
|
||||||
|
+__hostdev__ uint32_t Tree<RootT>::getNodeID(const NodeT& node) const
|
||||||
|
{
|
||||||
|
static_assert(is_same<TreeNodeT<NodeT::LEVEL>, NodeT>::value, "Tree::getNodeID: invalid node type");
|
||||||
|
const NodeT* first = reinterpret_cast<const NodeT*>(reinterpret_cast<const uint8_t*>(this) + DataType::mBytes[NodeT::LEVEL]);
|
||||||
|
@@ -2380,7 +2380,7 @@
|
||||||
|
|
||||||
|
template<typename RootT>
|
||||||
|
template<typename NodeT>
|
||||||
|
-uint32_t Tree<RootT>::getLinearOffset(const NodeT& node) const
|
||||||
|
+__hostdev__ uint32_t Tree<RootT>::getLinearOffset(const NodeT& node) const
|
||||||
|
{
|
||||||
|
return this->getNodeID(node) + DataType::mPFSum[NodeT::LEVEL];
|
||||||
|
}
|
||||||
|
@@ -3366,7 +3366,7 @@
|
||||||
|
}; // LeafNode class
|
||||||
|
|
||||||
|
template<typename ValueT, typename CoordT, template<uint32_t> class MaskT, uint32_t LOG2DIM>
|
||||||
|
-inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||||
|
+inline __hostdev__ void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
||||||
|
{
|
||||||
|
static_assert(LOG2DIM == 3, "LeafNode::updateBBox: only supports LOGDIM = 3!");
|
||||||
|
if (!this->isActive()) return;
|
||||||
|
Index: nanovdb/nanovdb/util/SampleFromVoxels.h
|
||||||
|
===================================================================
|
||||||
|
--- a/nanovdb/nanovdb/util/SampleFromVoxels.h (revision 62751)
|
||||||
|
+++ b/nanovdb/nanovdb/util/SampleFromVoxels.h (working copy)
|
||||||
|
@@ -22,7 +22,7 @@
|
||||||
|
#define NANOVDB_SAMPLE_FROM_VOXELS_H_HAS_BEEN_INCLUDED
|
||||||
|
|
||||||
|
// Only define __hostdev__ when compiling as NVIDIA CUDA
|
||||||
|
-#ifdef __CUDACC__
|
||||||
|
+#if defined(__CUDACC__) || defined(__HIP__)
|
||||||
|
#define __hostdev__ __host__ __device__
|
||||||
|
#else
|
||||||
|
#include <cmath> // for floor
|
||||||
|
@@ -136,7 +136,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
||||||
|
{
|
||||||
|
const CoordT ijk = Round<CoordT>(xyz);
|
||||||
|
if (ijk != mPos) {
|
||||||
|
@@ -147,7 +147,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
||||||
|
{
|
||||||
|
if (ijk != mPos) {
|
||||||
|
mPos = ijk;
|
||||||
|
@@ -158,7 +158,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
||||||
|
{
|
||||||
|
return mAcc.getValue(Round<CoordT>(xyz));
|
||||||
|
}
|
||||||
|
@@ -195,7 +195,7 @@
|
||||||
|
}; // TrilinearSamplerBase
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||||
|
+__hostdev__ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
||||||
|
{
|
||||||
|
v[0][0][0] = mAcc.getValue(ijk); // i, j, k
|
||||||
|
|
||||||
|
@@ -224,7 +224,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||||
|
{
|
||||||
|
#if 0
|
||||||
|
auto lerp = [](ValueT a, ValueT b, ValueT w){ return fma(w, b-a, a); };// = w*(b-a) + a
|
||||||
|
@@ -239,7 +239,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||||
|
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
||||||
|
{
|
||||||
|
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::gradient requires a floating-point type");
|
||||||
|
#if 0
|
||||||
|
@@ -270,7 +270,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||||
|
+__hostdev__ bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
||||||
|
{
|
||||||
|
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||||
|
const bool less = v[0][0][0] < ValueT(0);
|
||||||
|
@@ -363,7 +363,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
this->cache(xyz);
|
||||||
|
return BaseT::sample(xyz, mVal);
|
||||||
|
@@ -370,7 +370,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
||||||
|
{
|
||||||
|
return ijk == mPos ? mVal[0][0][0] : BaseT::mAcc.getValue(ijk);
|
||||||
|
}
|
||||||
|
@@ -377,7 +377,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
this->cache(xyz);
|
||||||
|
return BaseT::gradient(xyz, mVal);
|
||||||
|
@@ -393,7 +393,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||||
|
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
||||||
|
{
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
if (ijk != mPos) {
|
||||||
|
@@ -406,7 +406,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
ValueT val[2][2][2];
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
@@ -418,7 +418,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
auto lerp = [](ValueT a, ValueT b, RealT w) { return a + ValueT(w) * (b - a); };
|
||||||
|
|
||||||
|
@@ -463,7 +463,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||||
|
+inline __hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
ValueT val[2][2][2];
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
@@ -473,7 +473,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
ValueT val[2][2][2];
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
@@ -510,7 +510,7 @@
|
||||||
|
}; // TriquadraticSamplerBase
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||||
|
+__hostdev__ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
||||||
|
{
|
||||||
|
CoordT p(ijk[0] - 1, 0, 0);
|
||||||
|
for (int dx = 0; dx < 3; ++dx, ++p[0]) {
|
||||||
|
@@ -526,7 +526,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
||||||
|
{
|
||||||
|
auto kernel = [](const ValueT* value, double weight)->ValueT {
|
||||||
|
return weight * (weight * (0.5f * (value[0] + value[2]) - value[1]) +
|
||||||
|
@@ -545,7 +545,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||||
|
+__hostdev__ bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
||||||
|
{
|
||||||
|
static_assert(std::is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
||||||
|
const bool less = v[0][0][0] < ValueT(0);
|
||||||
|
@@ -624,7 +624,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
this->cache(xyz);
|
||||||
|
return BaseT::sample(xyz, mVal);
|
||||||
|
@@ -631,7 +631,7 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
||||||
|
{
|
||||||
|
return ijk == mPos ? mVal[1][1][1] : BaseT::mAcc.getValue(ijk);
|
||||||
|
}
|
||||||
|
@@ -646,7 +646,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||||
|
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
||||||
|
{
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
if (ijk != mPos) {
|
||||||
|
@@ -657,7 +657,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
ValueT val[3][3][3];
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
@@ -667,7 +667,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
ValueT val[3][3][3];
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
@@ -710,7 +710,7 @@
|
||||||
|
}; // TricubicSampler
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
-void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||||
|
+__hostdev__ void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
||||||
|
{
|
||||||
|
auto fetch = [&](int i, int j, int k) -> ValueT& { return C[((i + 1) << 4) + ((j + 1) << 2) + k + 1]; };
|
||||||
|
|
||||||
|
@@ -929,7 +929,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
||||||
|
{
|
||||||
|
this->cache(xyz);
|
||||||
|
return BaseT::sample(xyz, mC);
|
||||||
|
@@ -937,7 +937,7 @@
|
||||||
|
|
||||||
|
template<typename TreeOrAccT>
|
||||||
|
template<typename RealT, template<typename...> class Vec3T>
|
||||||
|
-void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||||
|
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
||||||
|
{
|
||||||
|
CoordT ijk = Floor<CoordT>(xyz);
|
||||||
|
if (ijk != mPos) {
|
@@ -1,16 +1,35 @@
|
|||||||
diff -ur openvdb-9.0.0/cmake/FindTBB.cmake openvdb/cmake/FindTBB.cmake
|
diff -Naur openvdb-8.0.0/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
||||||
--- openvdb-9.0.0/cmake/FindTBB.cmake 2021-10-30 03:55:40.000000000 +0100
|
--- openvdb-8.0.0/cmake/FindIlmBase.cmake 2020-12-24 10:13:14 -0700
|
||||||
+++ openvdb/cmake/FindTBB.cmake 2022-03-31 11:33:15.592329750 +0100
|
+++ openvdb/cmake/FindIlmBase.cmake 2021-02-05 12:07:49 -0700
|
||||||
@@ -252,7 +252,8 @@
|
@@ -217,6 +217,12 @@
|
||||||
set(_TBB_LIB_NAME "${_TBB_LIB_NAME}${TBB_DEBUG_SUFFIX}")
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
|
||||||
endif()
|
endif()
|
||||||
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES "${_IlmBase_Version_Suffix}.lib")
|
||||||
- find_library(Tbb_${COMPONENT}_LIBRARY_${BUILD_TYPE} ${_TBB_LIB_NAME}
|
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
+ find_library(Tbb_${COMPONENT}_LIBRARY_${BUILD_TYPE}
|
+ "_s.lib"
|
||||||
+ NAMES ${_TBB_LIB_NAME} ${_TBB_LIB_NAME}_static
|
+ )
|
||||||
${_FIND_TBB_ADDITIONAL_OPTIONS}
|
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
PATHS ${_TBB_LIBRARYDIR_SEARCH_DIRS}
|
+ "_s_d.lib"
|
||||||
PATH_SUFFIXES ${CMAKE_INSTALL_LIBDIR} lib64 lib
|
+ )
|
||||||
|
else()
|
||||||
|
if(ILMBASE_USE_STATIC_LIBS)
|
||||||
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||||
|
diff -Naur openvdb-8.0.0/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
||||||
|
--- openvdb-8.0.0/cmake/FindOpenEXR.cmake 2020-12-24 10:13:14 -0700
|
||||||
|
+++ openvdb/cmake/FindOpenEXR.cmake 2021-02-05 12:23:39 -0700
|
||||||
|
@@ -210,6 +210,12 @@
|
||||||
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
|
||||||
|
endif()
|
||||||
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES "${_OpenEXR_Version_Suffix}.lib")
|
||||||
|
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
|
+ "_s.lib"
|
||||||
|
+ )
|
||||||
|
+ list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
|
+ "_s_d.lib"
|
||||||
|
+ )
|
||||||
|
else()
|
||||||
|
if(OPENEXR_USE_STATIC_LIBS)
|
||||||
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||||
diff -Naur openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt openvdb/openvdb/openvdb/CMakeLists.txt
|
diff -Naur openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt openvdb/openvdb/openvdb/CMakeLists.txt
|
||||||
--- openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt 2020-12-24 10:13:14 -0700
|
--- openvdb-8.0.0/openvdb/openvdb/CMakeLists.txt 2020-12-24 10:13:14 -0700
|
||||||
+++ openvdb/openvdb/openvdb/CMakeLists.txt 2021-02-05 11:18:33 -0700
|
+++ openvdb/openvdb/openvdb/CMakeLists.txt 2021-02-05 11:18:33 -0700
|
||||||
@@ -99,321 +118,3 @@ diff -Naur openvdb-8.0.0/openvdb/openvdb/version.rc.in openvdb/openvdb/openvdb/v
|
|||||||
+
|
+
|
||||||
+ END
|
+ END
|
||||||
+END
|
+END
|
||||||
diff --git a/nanovdb/nanovdb/NanoVDB.h b/nanovdb/nanovdb/NanoVDB.h
|
|
||||||
index cc2e54b77..703d2eabc 100644
|
|
||||||
--- a/nanovdb/nanovdb/NanoVDB.h
|
|
||||||
+++ b/nanovdb/nanovdb/NanoVDB.h
|
|
||||||
@@ -161,8 +161,8 @@ typedef unsigned long long uint64_t;
|
|
||||||
|
|
||||||
#endif // __CUDACC_RTC__
|
|
||||||
|
|
||||||
-#ifdef __CUDACC__
|
|
||||||
-// Only define __hostdev__ when using NVIDIA CUDA compiler
|
|
||||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
|
||||||
+// Only define __hostdev__ when using NVIDIA CUDA or HIP compiler
|
|
||||||
#define __hostdev__ __host__ __device__
|
|
||||||
#else
|
|
||||||
#define __hostdev__
|
|
||||||
@@ -611,7 +611,7 @@ struct Delta<double>
|
|
||||||
/// Maximum floating-point values
|
|
||||||
template<typename T>
|
|
||||||
struct Maximum;
|
|
||||||
-#ifdef __CUDA_ARCH__
|
|
||||||
+#if defined(__CUDA_ARCH__) || defined(__HIP__)
|
|
||||||
template<>
|
|
||||||
struct Maximum<int>
|
|
||||||
{
|
|
||||||
@@ -1176,10 +1176,10 @@ using Vec3f = Vec3<float>;
|
|
||||||
using Vec3i = Vec3<int>;
|
|
||||||
|
|
||||||
/// @brief Return a single precision floating-point vector of this coordinate
|
|
||||||
-Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
|
||||||
+__hostdev__ inline Vec3f Coord::asVec3s() const { return Vec3f(float(mVec[0]), float(mVec[1]), float(mVec[2])); }
|
|
||||||
|
|
||||||
/// @brief Return a double precision floating-point vector of this coordinate
|
|
||||||
-Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
|
||||||
+__hostdev__ inline Vec3d Coord::asVec3d() const { return Vec3d(double(mVec[0]), double(mVec[1]), double(mVec[2])); }
|
|
||||||
|
|
||||||
// ----------------------------> Vec4 <--------------------------------------
|
|
||||||
|
|
||||||
@@ -2042,7 +2042,7 @@ struct Map
|
|
||||||
}; // Map
|
|
||||||
|
|
||||||
template<typename Mat4T>
|
|
||||||
-void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
|
||||||
+__hostdev__ void Map::set(const Mat4T& mat, const Mat4T& invMat, double taper)
|
|
||||||
{
|
|
||||||
float * mf = mMatF, *vf = mVecF;
|
|
||||||
float* mif = mInvMatF;
|
|
||||||
@@ -2486,7 +2486,7 @@ class Grid : private GridData
|
|
||||||
}; // Class Grid
|
|
||||||
|
|
||||||
template<typename TreeT>
|
|
||||||
-int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
|
||||||
+__hostdev__ int Grid<TreeT>::findBlindDataForSemantic(GridBlindDataSemantic semantic) const
|
|
||||||
{
|
|
||||||
for (uint32_t i = 0, n = this->blindDataCount(); i < n; ++i)
|
|
||||||
if (this->blindMetaData(i).mSemantic == semantic)
|
|
||||||
@@ -2671,7 +2671,7 @@ class Tree : private TreeData<RootT::LEVEL>
|
|
||||||
}; // Tree class
|
|
||||||
|
|
||||||
template<typename RootT>
|
|
||||||
-void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
|
||||||
+__hostdev__ void Tree<RootT>::extrema(ValueType& min, ValueType& max) const
|
|
||||||
{
|
|
||||||
min = this->root().minimum();
|
|
||||||
max = this->root().maximum();
|
|
||||||
@@ -3880,7 +3880,7 @@ class LeafNode : private LeafData<BuildT, CoordT, MaskT, Log2Dim>
|
|
||||||
}; // LeafNode class
|
|
||||||
|
|
||||||
template<typename ValueT, typename CoordT, template<uint32_t> class MaskT, uint32_t LOG2DIM>
|
|
||||||
-inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
|
||||||
+__hostdev__ inline void LeafNode<ValueT, CoordT, MaskT, LOG2DIM>::updateBBox()
|
|
||||||
{
|
|
||||||
static_assert(LOG2DIM == 3, "LeafNode::updateBBox: only supports LOGDIM = 3!");
|
|
||||||
if (!this->isActive()) return;
|
|
||||||
diff --git a/nanovdb/nanovdb/util/SampleFromVoxels.h b/nanovdb/nanovdb/util/SampleFromVoxels.h
|
|
||||||
index 852123dac..e779d66cf 100644
|
|
||||||
--- a/nanovdb/nanovdb/util/SampleFromVoxels.h
|
|
||||||
+++ b/nanovdb/nanovdb/util/SampleFromVoxels.h
|
|
||||||
@@ -22,7 +22,7 @@
|
|
||||||
#define NANOVDB_SAMPLE_FROM_VOXELS_H_HAS_BEEN_INCLUDED
|
|
||||||
|
|
||||||
// Only define __hostdev__ when compiling as NVIDIA CUDA
|
|
||||||
-#ifdef __CUDACC__
|
|
||||||
+#if defined(__CUDACC__) || defined(__HIP__)
|
|
||||||
#define __hostdev__ __host__ __device__
|
|
||||||
#else
|
|
||||||
#include <cmath> // for floor
|
|
||||||
@@ -136,7 +136,7 @@ class SampleFromVoxels<TreeOrAccT, 0, false>
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const Vec3T& xyz) const
|
|
||||||
{
|
|
||||||
const CoordT ijk = Round<CoordT>(xyz);
|
|
||||||
if (ijk != mPos) {
|
|
||||||
@@ -147,7 +147,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()(const CoordT& ijk) const
|
|
||||||
{
|
|
||||||
if (ijk != mPos) {
|
|
||||||
mPos = ijk;
|
|
||||||
@@ -158,7 +158,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, true>::operator()
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 0, false>::operator()(const Vec3T& xyz) const
|
|
||||||
{
|
|
||||||
return mAcc.getValue(Round<CoordT>(xyz));
|
|
||||||
}
|
|
||||||
@@ -195,7 +195,7 @@ class TrilinearSampler
|
|
||||||
}; // TrilinearSamplerBase
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
|
||||||
+__hostdev__ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) const
|
|
||||||
{
|
|
||||||
v[0][0][0] = mAcc.getValue(ijk); // i, j, k
|
|
||||||
|
|
||||||
@@ -224,7 +224,7 @@ void TrilinearSampler<TreeOrAccT>::stencil(CoordT& ijk, ValueT (&v)[2][2][2]) co
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
auto lerp = [](ValueT a, ValueT b, ValueT w){ return fma(w, b-a, a); };// = w*(b-a) + a
|
|
||||||
@@ -239,7 +239,7 @@ typename TreeOrAccT::ValueType TrilinearSampler<TreeOrAccT>::sample(const Vec3T<
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
|
||||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(const Vec3T<RealT> &uvw, const ValueT (&v)[2][2][2])
|
|
||||||
{
|
|
||||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::gradient requires a floating-point type");
|
|
||||||
#if 0
|
|
||||||
@@ -270,7 +270,7 @@ Vec3T<typename TreeOrAccT::ValueType> TrilinearSampler<TreeOrAccT>::gradient(con
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
|
||||||
+__hostdev__ bool TrilinearSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[2][2][2])
|
|
||||||
{
|
|
||||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
|
||||||
const bool less = v[0][0][0] < ValueT(0);
|
|
||||||
@@ -363,21 +363,21 @@ class SampleFromVoxels<TreeOrAccT, 1, true> : public TrilinearSampler<TreeOrAccT
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
this->cache(xyz);
|
|
||||||
return BaseT::sample(xyz, mVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, true>::operator()(const CoordT &ijk) const
|
|
||||||
{
|
|
||||||
return ijk == mPos ? mVal[0][0][0] : BaseT::mAcc.getValue(ijk);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, true>::gradient(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
this->cache(xyz);
|
|
||||||
return BaseT::gradient(xyz, mVal);
|
|
||||||
@@ -393,7 +393,7 @@ __hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, true>::zeroCrossing(Vec3T<RealT
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
{
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
if (ijk != mPos) {
|
|
||||||
@@ -406,7 +406,7 @@ void SampleFromVoxels<TreeOrAccT, 1, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
ValueT val[2][2][2];
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
@@ -418,7 +418,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator(
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
auto lerp = [](ValueT a, ValueT b, RealT w) { return a + ValueT(w) * (b - a); };
|
|
||||||
|
|
||||||
@@ -463,7 +463,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 1, false>::operator(
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, false>::gradient(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
ValueT val[2][2][2];
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
@@ -473,7 +473,7 @@ inline Vec3T<typename TreeOrAccT::ValueType> SampleFromVoxels<TreeOrAccT, 1, fal
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 1, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
ValueT val[2][2][2];
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
@@ -510,7 +510,7 @@ class TriquadraticSampler
|
|
||||||
}; // TriquadraticSamplerBase
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
|
||||||
+__hostdev__ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][3][3]) const
|
|
||||||
{
|
|
||||||
CoordT p(ijk[0] - 1, 0, 0);
|
|
||||||
for (int dx = 0; dx < 3; ++dx, ++p[0]) {
|
|
||||||
@@ -526,7 +526,7 @@ void TriquadraticSampler<TreeOrAccT>::stencil(const CoordT &ijk, ValueT (&v)[3][
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec3T<RealT> &uvw, const ValueT (&v)[3][3][3])
|
|
||||||
{
|
|
||||||
auto kernel = [](const ValueT* value, double weight)->ValueT {
|
|
||||||
return weight * (weight * (0.5f * (value[0] + value[2]) - value[1]) +
|
|
||||||
@@ -545,7 +545,7 @@ typename TreeOrAccT::ValueType TriquadraticSampler<TreeOrAccT>::sample(const Vec
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
|
||||||
+__hostdev__ bool TriquadraticSampler<TreeOrAccT>::zeroCrossing(const ValueT (&v)[3][3][3])
|
|
||||||
{
|
|
||||||
static_assert(is_floating_point<ValueT>::value, "TrilinearSampler::zeroCrossing requires a floating-point type");
|
|
||||||
const bool less = v[0][0][0] < ValueT(0);
|
|
||||||
@@ -624,14 +624,14 @@ class SampleFromVoxels<TreeOrAccT, 2, true> : public TriquadraticSampler<TreeOrA
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
this->cache(xyz);
|
|
||||||
return BaseT::sample(xyz, mVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, true>::operator()(const CoordT &ijk) const
|
|
||||||
{
|
|
||||||
return ijk == mPos ? mVal[1][1][1] : BaseT::mAcc.getValue(ijk);
|
|
||||||
}
|
|
||||||
@@ -646,7 +646,7 @@ __hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, true>::zeroCrossing(Vec3T<RealT
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
{
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
if (ijk != mPos) {
|
|
||||||
@@ -657,7 +657,7 @@ void SampleFromVoxels<TreeOrAccT, 2, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
ValueT val[3][3][3];
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
@@ -667,7 +667,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 2, false>::operator(
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ bool SampleFromVoxels<TreeOrAccT, 2, false>::zeroCrossing(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
ValueT val[3][3][3];
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
@@ -710,7 +710,7 @@ class TricubicSampler
|
|
||||||
}; // TricubicSampler
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
-void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
|
||||||
+__hostdev__ void TricubicSampler<TreeOrAccT>::stencil(const CoordT& ijk, ValueT (&C)[64]) const
|
|
||||||
{
|
|
||||||
auto fetch = [&](int i, int j, int k) -> ValueT& { return C[((i + 1) << 4) + ((j + 1) << 2) + k + 1]; };
|
|
||||||
|
|
||||||
@@ -929,7 +929,7 @@ class SampleFromVoxels<TreeOrAccT, 3, true> : public TricubicSampler<TreeOrAccT>
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
+__hostdev__ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()(Vec3T<RealT> xyz) const
|
|
||||||
{
|
|
||||||
this->cache(xyz);
|
|
||||||
return BaseT::sample(xyz, mC);
|
|
||||||
@@ -937,7 +937,7 @@ typename TreeOrAccT::ValueType SampleFromVoxels<TreeOrAccT, 3, true>::operator()
|
|
||||||
|
|
||||||
template<typename TreeOrAccT>
|
|
||||||
template<typename RealT, template<typename...> class Vec3T>
|
|
||||||
-void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
+__hostdev__ void SampleFromVoxels<TreeOrAccT, 3, true>::cache(Vec3T<RealT>& xyz) const
|
|
||||||
{
|
|
||||||
CoordT ijk = Floor<CoordT>(xyz);
|
|
||||||
if (ijk != mPos) {
|
|
||||||
|
|
||||||
|
@@ -48,6 +48,25 @@ diff -Naur org/CMakeLists.txt external_osl/CMakeLists.txt
|
|||||||
|
|
||||||
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
set (OSL_NO_DEFAULT_TEXTURESYSTEM OFF CACHE BOOL "Do not use create a raw OIIO::TextureSystem")
|
||||||
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
if (OSL_NO_DEFAULT_TEXTURESYSTEM)
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 990f50d69..46ef7351d 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -252,11 +252,9 @@ install (EXPORT OSL_EXPORTED_TARGETS
|
||||||
|
FILE ${OSL_TARGETS_EXPORT_NAME}
|
||||||
|
NAMESPACE ${PROJECT_NAME}::)
|
||||||
|
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-osl_add_all_tests()
|
||||||
|
-
|
||||||
|
+if (${PROJECT_NAME}_BUILD_TESTS AND NOT ${PROJECT_NAME}_IS_SUBPROJECT)
|
||||||
|
+ osl_add_all_tests()
|
||||||
|
+endif ()
|
||||||
|
|
||||||
|
if (NOT ${PROJECT_NAME}_IS_SUBPROJECT)
|
||||||
|
include (packaging)
|
||||||
diff -Naur external_osl_orig/src/cmake/externalpackages.cmake external_osl/src/cmake/externalpackages.cmake
|
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_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
|
+++ external_osl/src/cmake/externalpackages.cmake 2021-06-28 07:44:32 -0600
|
||||||
|
@@ -10,22 +10,217 @@ diff -x .git -ur usd.orig/cmake/defaults/Packages.cmake external_usd/cmake/defau
|
|||||||
add_definitions(${TBB_DEFINITIONS})
|
add_definitions(${TBB_DEFINITIONS})
|
||||||
|
|
||||||
# --math
|
# --math
|
||||||
|
diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
|
||||||
diff -Naur usd_orig/cmake/defaults/msvcdefaults.cmake external_usd/cmake/defaults/msvcdefaults.cmake
|
--- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
|
||||||
--- usd_orig/cmake/defaults/msvcdefaults.cmake 2022-02-18 14:49:09 -0700
|
+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
|
||||||
+++ external_usd/cmake/defaults/msvcdefaults.cmake 2022-03-14 11:41:50 -0600
|
@@ -996,6 +996,12 @@
|
||||||
@@ -120,9 +120,6 @@
|
foreach(lib ${PXR_OBJECT_LIBS})
|
||||||
# for all translation units.
|
string(TOUPPER ${lib} uppercaseName)
|
||||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /bigobj")
|
list(APPEND exports "${uppercaseName}_EXPORTS=1")
|
||||||
|
+ # When building for blender, we do NOT want to export all symbols on windows.
|
||||||
|
+ # This is a dirty hack, but USD makes it impossible to do the right thing
|
||||||
|
+ # with the default options exposed.
|
||||||
|
+ if (WIN32)
|
||||||
|
+ list(APPEND exports "PXR_STATIC=1")
|
||||||
|
+ endif()
|
||||||
|
endforeach()
|
||||||
|
foreach(lib ${PXR_OBJECT_LIBS})
|
||||||
|
set(objects "${objects};\$<TARGET_OBJECTS:${lib}>")
|
||||||
|
diff -ru USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp external_usd/pxr/base/tf/pxrLZ4/lz4.cpp
|
||||||
|
--- USD-20.11/pxr/base/tf/pxrLZ4/lz4.cpp 2020-10-14 19:25:19.000000000 +0100
|
||||||
|
+++ external_usd/pxr/base/tf/pxrLZ4/lz4.cpp 2021-02-09 09:28:51.496190085 +0000
|
||||||
|
@@ -614,6 +614,15 @@
|
||||||
|
/*-************************************
|
||||||
|
* Internal Definitions used in Tests
|
||||||
|
**************************************/
|
||||||
|
+
|
||||||
|
+/*******************************************************************
|
||||||
|
+ * Disabled in Blender. The BLOSC library also exposes these
|
||||||
|
+ * functions, and this causes 'duplicate symbol' linker errors.
|
||||||
|
+ *
|
||||||
|
+ * This problem has been reported upstream at
|
||||||
|
+ * https://github.com/PixarAnimationStudios/USD/issues/1447
|
||||||
|
+ *
|
||||||
|
+ *******************************************************************
|
||||||
|
#if defined (__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
@@ -627,6 +636,7 @@
|
||||||
|
#if defined (__cplusplus)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
+********************************************************************/
|
||||||
|
|
||||||
-# Enable PDB generation.
|
/*-******************************
|
||||||
-set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Zi")
|
* Compression functions
|
||||||
-
|
|
||||||
# Enable multiprocessor builds.
|
From 442d087962f762deeb8b6e49a0955753fcf9aeb9 Mon Sep 17 00:00:00 2001
|
||||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /MP")
|
From: Tsahi Zidenberg <tsahee@amazon.com>
|
||||||
set(_PXR_CXX_FLAGS "${_PXR_CXX_FLAGS} /Gm-")
|
Date: Sun, 15 Nov 2020 15:18:24 +0000
|
||||||
|
Subject: [PATCH 1/2] stackTrace: support aarch64/linux
|
||||||
|
|
||||||
|
stacktrace calls syscall directly via assembler. Create compatible
|
||||||
|
aarch64 code.
|
||||||
|
---
|
||||||
|
pxr/base/arch/stackTrace.cpp | 30 ++++++++++++++++++++++++------
|
||||||
|
1 file changed, 24 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/pxr/base/arch/stackTrace.cpp b/pxr/base/arch/stackTrace.cpp
|
||||||
|
index dcc1dfd46..c11aabeb1 100644
|
||||||
|
--- a/pxr/base/arch/stackTrace.cpp
|
||||||
|
+++ b/pxr/base/arch/stackTrace.cpp
|
||||||
|
@@ -583,7 +583,6 @@ nonLockingLinux__execve (const char *file,
|
||||||
|
char *const argv[],
|
||||||
|
char *const envp[])
|
||||||
|
{
|
||||||
|
-#if defined(ARCH_BITS_64)
|
||||||
|
/*
|
||||||
|
* We make a direct system call here, because we can't find an
|
||||||
|
* execve which corresponds with the non-locking fork we call
|
||||||
|
@@ -594,7 +593,27 @@ nonLockingLinux__execve (const char *file,
|
||||||
|
* hangs in a threaded app. (We use the non-locking fork to get
|
||||||
|
* around problems with forking when we have had memory
|
||||||
|
* corruption.) whew.
|
||||||
|
- *
|
||||||
|
+ */
|
||||||
|
+
|
||||||
|
+ unsigned long result;
|
||||||
|
+
|
||||||
|
+#if defined (__aarch64__)
|
||||||
|
+ {
|
||||||
|
+ register long __file_result asm ("x0") = (long)file;
|
||||||
|
+ register char* const* __argv asm ("x1") = argv;
|
||||||
|
+ register char* const* __envp asm ("x2") = envp;
|
||||||
|
+ register long __num_execve asm ("x8") = 221;
|
||||||
|
+ __asm__ __volatile__ (
|
||||||
|
+ "svc 0"
|
||||||
|
+ : "=r" (__file_result)
|
||||||
|
+ : "r"(__num_execve), "r" (__file_result), "r" (__argv), "r" (__envp)
|
||||||
|
+ : "memory"
|
||||||
|
+ );
|
||||||
|
+ result = __file_result;
|
||||||
|
+ }
|
||||||
|
+#elif defined(ARCH_CPU_INTEL) && defined(ARCH_BITS_64)
|
||||||
|
+
|
||||||
|
+ /*
|
||||||
|
* %rdi, %rsi, %rdx, %rcx, %r8, %r9 are args 0-5
|
||||||
|
* syscall clobbers %rcx and %r11
|
||||||
|
*
|
||||||
|
@@ -603,7 +622,6 @@ nonLockingLinux__execve (const char *file,
|
||||||
|
* constraints to gcc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
- unsigned long result;
|
||||||
|
__asm__ __volatile__ (
|
||||||
|
"mov %0, %%rdi \n\t"
|
||||||
|
"mov %%rcx, %%rsi \n\t"
|
||||||
|
@@ -614,6 +632,9 @@ nonLockingLinux__execve (const char *file,
|
||||||
|
: "0" (file), "c" (argv), "d" (envp)
|
||||||
|
: "memory", "cc", "r11"
|
||||||
|
);
|
||||||
|
+#else
|
||||||
|
+#error Unknown architecture
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if (result >= 0xfffffffffffff000) {
|
||||||
|
errno = -result;
|
||||||
|
@@ -621,9 +642,6 @@ nonLockingLinux__execve (const char *file,
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
-#else
|
||||||
|
-#error Unknown architecture
|
||||||
|
-#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
From a1dffe02519bb3c6ccbbe8c6c58304da5db98995 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tsahi Zidenberg <tsahee@amazon.com>
|
||||||
|
Date: Sun, 15 Nov 2020 15:22:52 +0000
|
||||||
|
Subject: [PATCH 2/2] timing: support aarch64/linux
|
||||||
|
|
||||||
|
The aarch64 arch-timer is directly accessible to userspace via two
|
||||||
|
registers:
|
||||||
|
CNTVCT_EL0 - holds the current counter value
|
||||||
|
CNTFRQ_EL0 - holds the counter frequency (in Hz)
|
||||||
|
---
|
||||||
|
pxr/base/arch/timing.cpp | 6 ++++++
|
||||||
|
pxr/base/arch/timing.h | 6 +++++-
|
||||||
|
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/pxr/base/arch/timing.cpp b/pxr/base/arch/timing.cpp
|
||||||
|
index 27ad58fed..9022950c1 100644
|
||||||
|
--- a/pxr/base/arch/timing.cpp
|
||||||
|
+++ b/pxr/base/arch/timing.cpp
|
||||||
|
@@ -59,6 +59,11 @@ ARCH_HIDDEN
|
||||||
|
void
|
||||||
|
Arch_InitTickTimer()
|
||||||
|
{
|
||||||
|
+#ifdef __aarch64__
|
||||||
|
+ uint64_t counter_hz;
|
||||||
|
+ __asm __volatile("mrs %0, CNTFRQ_EL0" : "=&r" (counter_hz));
|
||||||
|
+ Arch_NanosecondsPerTick = double(1e9) / double(counter_hz);
|
||||||
|
+#else
|
||||||
|
// NOTE: Normally ifstream would be cleaner, but it causes crashes when
|
||||||
|
// used in conjunction with DSOs and the Intel Compiler.
|
||||||
|
FILE *in;
|
||||||
|
@@ -135,6 +140,7 @@ Arch_InitTickTimer()
|
||||||
|
}
|
||||||
|
|
||||||
|
Arch_NanosecondsPerTick = double(1e9) / double(cpuHz);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
#elif defined(ARCH_OS_WINDOWS)
|
||||||
|
|
||||||
|
diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h
|
||||||
|
index 67ec0d15f..6dc3e85a0 100644
|
||||||
|
--- a/pxr/base/arch/timing.h
|
||||||
|
+++ b/pxr/base/arch/timing.h
|
||||||
|
@@ -36,7 +36,7 @@
|
||||||
|
/// \addtogroup group_arch_SystemFunctions
|
||||||
|
///@{
|
||||||
|
|
||||||
|
-#if defined(ARCH_OS_LINUX)
|
||||||
|
+#if defined(ARCH_OS_LINUX) && defined(ARCH_CPU_INTEL)
|
||||||
|
#include <x86intrin.h>
|
||||||
|
#elif defined(ARCH_OS_DARWIN)
|
||||||
|
#include <mach/mach_time.h>
|
||||||
|
@@ -69,6 +69,10 @@ ArchGetTickTime()
|
||||||
|
#elif defined(ARCH_CPU_INTEL)
|
||||||
|
// On Intel we'll use the rdtsc instruction.
|
||||||
|
return __rdtsc();
|
||||||
|
+#elif defined (__aarch64__)
|
||||||
|
+ uint64_t result;
|
||||||
|
+ __asm __volatile("mrs %0, CNTVCT_EL0" : "=&r" (result));
|
||||||
|
+ return result;
|
||||||
|
#else
|
||||||
|
#error Unknown architecture.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
diff --git a/pxr/base/arch/demangle.cpp b/pxr/base/arch/demangle.cpp
|
||||||
|
index 67ec0d15f..6dc3e85a0 100644
|
||||||
|
--- a/pxr/base/arch/demangle.cpp
|
||||||
|
+++ b/pxr/base/arch/demangle.cpp
|
||||||
|
@@ -36,6 +36,7 @@
|
||||||
|
#if (ARCH_COMPILER_GCC_MAJOR == 3 && ARCH_COMPILER_GCC_MINOR >= 1) || \
|
||||||
|
ARCH_COMPILER_GCC_MAJOR > 3 || defined(ARCH_COMPILER_CLANG)
|
||||||
|
#define _AT_LEAST_GCC_THREE_ONE_OR_CLANG
|
||||||
|
+#include <cxxabi.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
PXR_NAMESPACE_OPEN_SCOPE
|
||||||
|
@@ -138,7 +139,6 @@
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_AT_LEAST_GCC_THREE_ONE_OR_CLANG)
|
||||||
|
-#include <cxxabi.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This routine doesn't work when you get to gcc3.4.
|
||||||
|
|
||||||
diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h
|
diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h
|
||||||
|
index 67ec0d15f..6dc3e85a0 100644
|
||||||
--- a/pxr/base/work/singularTask.h
|
--- a/pxr/base/work/singularTask.h
|
||||||
+++ b/pxr/base/work/singularTask.h
|
+++ b/pxr/base/work/singularTask.h
|
||||||
@@ -120,7 +120,7 @@
|
@@ -120,7 +120,7 @@
|
||||||
@@ -37,66 +232,3 @@ diff --git a/pxr/base/work/singularTask.h b/pxr/base/work/singularTask.h
|
|||||||
do { _fn(); } while (
|
do { _fn(); } while (
|
||||||
!count.compare_exchange_strong(old, 0));
|
!count.compare_exchange_strong(old, 0));
|
||||||
});
|
});
|
||||||
|
|
||||||
diff --git a/pxr/usd/sdr/shaderMetadataHelpers.h b/pxr/usd/sdr/shaderMetadataHelpers.h
|
|
||||||
--- a/pxr/usd/sdr/shaderMetadataHelpers.h
|
|
||||||
+++ b/pxr/usd/sdr/shaderMetadataHelpers.h
|
|
||||||
@@ -32,6 +32,8 @@
|
|
||||||
#include "pxr/base/tf/token.h"
|
|
||||||
#include "pxr/usd/sdr/declare.h"
|
|
||||||
|
|
||||||
+#include <limits>
|
|
||||||
+
|
|
||||||
PXR_NAMESPACE_OPEN_SCOPE
|
|
||||||
|
|
||||||
/// \namespace ShaderMetadataHelpers
|
|
||||||
|
|
||||||
diff --git a/pxr/base/arch/timing.h b/pxr/base/arch/timing.h
|
|
||||||
index 517561f..fda5a1f 100644
|
|
||||||
--- a/pxr/base/arch/timing.h
|
|
||||||
+++ b/pxr/base/arch/timing.h
|
|
||||||
@@ -91,6 +91,10 @@ ArchGetTickTime()
|
|
||||||
inline uint64_t
|
|
||||||
ArchGetStartTickTime()
|
|
||||||
{
|
|
||||||
+ // BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
|
||||||
+ return ArchGetTickTime();
|
|
||||||
+
|
|
||||||
+#if 0
|
|
||||||
uint64_t t;
|
|
||||||
#if defined (ARCH_OS_DARWIN)
|
|
||||||
return ArchGetTickTime();
|
|
||||||
@@ -123,6 +127,7 @@ ArchGetStartTickTime()
|
|
||||||
#error "Unsupported architecture."
|
|
||||||
#endif
|
|
||||||
return t;
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Get a "stop" tick time for measuring an interval of time. See
|
|
||||||
@@ -132,6 +137,10 @@ ArchGetStartTickTime()
|
|
||||||
inline uint64_t
|
|
||||||
ArchGetStopTickTime()
|
|
||||||
{
|
|
||||||
+ // BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
|
||||||
+ return ArchGetTickTime();
|
|
||||||
+
|
|
||||||
+#if 0
|
|
||||||
uint64_t t;
|
|
||||||
#if defined (ARCH_OS_DARWIN)
|
|
||||||
return ArchGetTickTime();
|
|
||||||
@@ -162,11 +171,11 @@ ArchGetStopTickTime()
|
|
||||||
#error "Unsupported architecture."
|
|
||||||
#endif
|
|
||||||
return t;
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if defined (doxygen) || \
|
|
||||||
- (!defined(ARCH_OS_DARWIN) && defined(ARCH_CPU_INTEL) && \
|
|
||||||
- (defined(ARCH_COMPILER_CLANG) || defined(ARCH_COMPILER_GCC)))
|
|
||||||
+// BLENDER: avoid using rdtsc instruction that is not supported on older CPUs.
|
|
||||||
+#if 0
|
|
||||||
|
|
||||||
/// A simple timer class for measuring an interval of time using the
|
|
||||||
/// ArchTickTimer facilities.
|
|
||||||
|
@@ -46,18 +46,6 @@ if "%3" == "debug" set CMAKE_DEBUG_OPTIONS=-DWITH_OPTIMIZED_DEBUG=Off
|
|||||||
set dobuild=1
|
set dobuild=1
|
||||||
if "%4" == "nobuild" set dobuild=0
|
if "%4" == "nobuild" set dobuild=0
|
||||||
|
|
||||||
REM If Python is be available certain deps may try to
|
|
||||||
REM to use this over the version we build, to prevent that
|
|
||||||
REM make sure pythonw is NOT in the path. We look for pythonw.exe
|
|
||||||
REM since windows apparently ships a python.exe that just opens up
|
|
||||||
REM the windows store but does not ship any actual python files that
|
|
||||||
REM could cause issues.
|
|
||||||
for %%X in (pythonw.exe) do (set PYTHONW=%%~$PATH:X)
|
|
||||||
if EXIST "%PYTHONW%" (
|
|
||||||
echo PYTHON found at %PYTHONW% dependencies cannot be build with python available in the path
|
|
||||||
goto exit
|
|
||||||
)
|
|
||||||
|
|
||||||
set SOURCE_DIR=%~dp0\..
|
set SOURCE_DIR=%~dp0\..
|
||||||
set BUILD_DIR=%cd%\build
|
set BUILD_DIR=%cd%\build
|
||||||
set HARVEST_DIR=%BUILD_DIR%\output
|
set HARVEST_DIR=%BUILD_DIR%\output
|
||||||
@@ -110,8 +98,8 @@ echo %DATE% %TIME% : Start > %StatusFile%
|
|||||||
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DBUILD_MODE=Release -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/
|
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DBUILD_MODE=Release -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/
|
||||||
echo %DATE% %TIME% : Release Configuration done >> %StatusFile%
|
echo %DATE% %TIME% : Release Configuration done >> %StatusFile%
|
||||||
if "%dobuild%" == "1" (
|
if "%dobuild%" == "1" (
|
||||||
msbuild /m:1 "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
|
msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal
|
||||||
msbuild /m:1 "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
|
msbuild /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal
|
||||||
echo %DATE% %TIME% : Release Build done >> %StatusFile%
|
echo %DATE% %TIME% : Release Build done >> %StatusFile%
|
||||||
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
|
cmake --build . --target Harvest_Release_Results > Harvest_Release.txt
|
||||||
)
|
)
|
||||||
@@ -123,8 +111,8 @@ cd %Staging%\%BuildDir%%ARCH%D
|
|||||||
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DCMAKE_BUILD_TYPE=Debug -DBUILD_MODE=Debug -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/ %CMAKE_DEBUG_OPTIONS%
|
cmake -G "%CMAKE_BUILDER%" %CMAKE_BUILD_ARCH% -Thost=x64 %SOURCE_DIR% -DPACKAGE_DIR=%BUILD_DIR%/packages -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DCMAKE_BUILD_TYPE=Debug -DBUILD_MODE=Debug -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/ %CMAKE_DEBUG_OPTIONS%
|
||||||
echo %DATE% %TIME% : Debug Configuration done >> %StatusFile%
|
echo %DATE% %TIME% : Debug Configuration done >> %StatusFile%
|
||||||
if "%dobuild%" == "1" (
|
if "%dobuild%" == "1" (
|
||||||
msbuild /m:1 "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
|
msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal
|
||||||
msbuild /m:1 "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
|
msbuild /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal
|
||||||
echo %DATE% %TIME% : Debug Build done >> %StatusFile%
|
echo %DATE% %TIME% : Debug Build done >> %StatusFile%
|
||||||
cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt
|
cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt
|
||||||
)
|
)
|
||||||
|
@@ -85,9 +85,9 @@ STRING(REGEX REPLACE "([0-9]+)[.]([0-9]+).*" "\\1_\\2" _openexr_libs_ver ${OPENE
|
|||||||
IF(OPENEXR_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
IF(OPENEXR_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
||||||
SET(_openexr_FIND_COMPONENTS
|
SET(_openexr_FIND_COMPONENTS
|
||||||
Iex
|
Iex
|
||||||
|
IlmThread
|
||||||
OpenEXR
|
OpenEXR
|
||||||
OpenEXRCore
|
OpenEXRCore
|
||||||
IlmThread
|
|
||||||
)
|
)
|
||||||
ELSE()
|
ELSE()
|
||||||
SET(_openexr_FIND_COMPONENTS
|
SET(_openexr_FIND_COMPONENTS
|
||||||
|
@@ -175,9 +175,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PythonLibsUnix DEFAULT_MSG
|
|||||||
IF(PYTHONLIBSUNIX_FOUND)
|
IF(PYTHONLIBSUNIX_FOUND)
|
||||||
# Assign cache items
|
# Assign cache items
|
||||||
SET(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR} ${PYTHON_INCLUDE_CONFIG_DIR})
|
SET(PYTHON_INCLUDE_DIRS ${PYTHON_INCLUDE_DIR} ${PYTHON_INCLUDE_CONFIG_DIR})
|
||||||
IF(NOT WITH_PYTHON_MODULE)
|
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
||||||
SET(PYTHON_LIBRARIES ${PYTHON_LIBRARY})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
FIND_FILE(PYTHON_SITE_PACKAGES
|
FIND_FILE(PYTHON_SITE_PACKAGES
|
||||||
NAMES
|
NAMES
|
||||||
|
@@ -64,7 +64,6 @@ ENDIF()
|
|||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
USD_INCLUDE_DIR
|
USD_INCLUDE_DIR
|
||||||
USD_LIBRARY_DIR
|
USD_LIBRARY_DIR
|
||||||
USD_LIBRARY
|
|
||||||
)
|
)
|
||||||
|
|
||||||
UNSET(_usd_SEARCH_DIRS)
|
UNSET(_usd_SEARCH_DIRS)
|
||||||
|
@@ -74,9 +74,4 @@ ENDIF()
|
|||||||
MARK_AS_ADVANCED(
|
MARK_AS_ADVANCED(
|
||||||
WEBP_INCLUDE_DIR
|
WEBP_INCLUDE_DIR
|
||||||
WEBP_LIBRARY_DIR
|
WEBP_LIBRARY_DIR
|
||||||
|
|
||||||
# Generated names.
|
|
||||||
WEBP_WEBPDEMUX_LIBRARY
|
|
||||||
WEBP_WEBPMUX_LIBRARY
|
|
||||||
WEBP_WEBP_LIBRARY
|
|
||||||
)
|
)
|
||||||
|
@@ -202,9 +202,9 @@ def parm_size(node_child):
|
|||||||
|
|
||||||
# NOT PERFECT CODE, EXTRACT SIZE FROM TOKENS
|
# NOT PERFECT CODE, EXTRACT SIZE FROM TOKENS
|
||||||
if len(tokens) >= 3: # foo [ 1 ]
|
if len(tokens) >= 3: # foo [ 1 ]
|
||||||
if ((tokens[-3].kind == TokenKind.PUNCTUATION and tokens[-3].spelling == "[") and
|
if ((tokens[-3].kind == TokenKind.PUNCTUATION and tokens[-3].spelling == "[") and
|
||||||
(tokens[-2].kind == TokenKind.LITERAL and tokens[-2].spelling.isdigit()) and
|
(tokens[-2].kind == TokenKind.LITERAL and tokens[-2].spelling.isdigit()) and
|
||||||
(tokens[-1].kind == TokenKind.PUNCTUATION and tokens[-1].spelling == "]")):
|
(tokens[-1].kind == TokenKind.PUNCTUATION and tokens[-1].spelling == "]")):
|
||||||
# ---
|
# ---
|
||||||
return int(tokens[-2].spelling)
|
return int(tokens[-2].spelling)
|
||||||
return -1
|
return -1
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Example linux usage
|
Example linux usage
|
||||||
python3 ~/blender-git/blender/build_files/cmake/cmake_netbeans_project.py ~/blender-git/cmake
|
python3 ~/blender-git/blender/build_files/cmake/cmake_netbeans_project.py ~/blender-git/cmake
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
r"""
|
r"""
|
||||||
Example Linux usage:
|
Example Linux usage:
|
||||||
python ~/blender-git/blender/build_files/cmake/cmake_qtcreator_project.py --build-dir ~/blender-git/cmake
|
python ~/blender-git/blender/build_files/cmake/cmake_qtcreator_project.py --build-dir ~/blender-git/cmake
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
import project_source_info
|
import project_source_info
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
import project_source_info
|
import project_source_info
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
CHECKER_IGNORE_PREFIX = [
|
CHECKER_IGNORE_PREFIX = [
|
||||||
"extern",
|
"extern",
|
||||||
"intern/moto",
|
"intern/moto",
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
CHECKER_IGNORE_PREFIX = [
|
CHECKER_IGNORE_PREFIX = [
|
||||||
"extern",
|
"extern",
|
||||||
"intern/moto",
|
"intern/moto",
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
CHECKER_IGNORE_PREFIX = [
|
CHECKER_IGNORE_PREFIX = [
|
||||||
"extern",
|
"extern",
|
||||||
"intern/moto",
|
"intern/moto",
|
||||||
|
@@ -30,7 +30,6 @@ set(WITH_IMAGE_HDR ON CACHE BOOL "" FORCE)
|
|||||||
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_TIFF ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_TIFF ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_WEBP ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_INPUT_NDOF ON CACHE BOOL "" FORCE)
|
set(WITH_INPUT_NDOF ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_INPUT_IME ON CACHE BOOL "" FORCE)
|
set(WITH_INPUT_IME ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_INTERNATIONAL ON CACHE BOOL "" FORCE)
|
set(WITH_INTERNATIONAL ON CACHE BOOL "" FORCE)
|
||||||
|
@@ -34,12 +34,8 @@ set(WITH_IMAGE_HDR OFF CACHE BOOL "" FORCE)
|
|||||||
set(WITH_IMAGE_OPENEXR OFF CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_OPENEXR OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_OPENJPEG OFF CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_OPENJPEG OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_TIFF OFF CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_TIFF OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_WEBP OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE)
|
set(WITH_INPUT_NDOF OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE)
|
set(WITH_INTERNATIONAL OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_IO_STL OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_IO_WAVEFRONT_OBJ OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_IO_GPENCIL OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
set(WITH_JACK OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_LIBMV OFF CACHE BOOL "" FORCE)
|
set(WITH_LIBMV OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_LLVM OFF CACHE BOOL "" FORCE)
|
set(WITH_LLVM OFF CACHE BOOL "" FORCE)
|
||||||
|
@@ -31,7 +31,6 @@ set(WITH_IMAGE_HDR ON CACHE BOOL "" FORCE)
|
|||||||
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_OPENEXR ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_OPENJPEG ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_TIFF ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_TIFF ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_WEBP ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_INPUT_NDOF ON CACHE BOOL "" FORCE)
|
set(WITH_INPUT_NDOF ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_INPUT_IME ON CACHE BOOL "" FORCE)
|
set(WITH_INPUT_IME ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_INTERNATIONAL ON CACHE BOOL "" FORCE)
|
set(WITH_INTERNATIONAL ON CACHE BOOL "" FORCE)
|
||||||
|
@@ -71,7 +71,6 @@ set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
|
|||||||
# Find precompiled libraries, and avoid system or user-installed ones.
|
# Find precompiled libraries, and avoid system or user-installed ones.
|
||||||
|
|
||||||
if(EXISTS ${LIBDIR})
|
if(EXISTS ${LIBDIR})
|
||||||
include(platform_old_libs_update)
|
|
||||||
without_system_libs_begin()
|
without_system_libs_begin()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -215,12 +214,7 @@ if(WITH_SDL)
|
|||||||
find_package(SDL2)
|
find_package(SDL2)
|
||||||
set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIRS})
|
set(SDL_INCLUDE_DIR ${SDL2_INCLUDE_DIRS})
|
||||||
set(SDL_LIBRARY ${SDL2_LIBRARIES})
|
set(SDL_LIBRARY ${SDL2_LIBRARIES})
|
||||||
string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback -framework GameController")
|
string(APPEND PLATFORM_LINKFLAGS " -framework ForceFeedback")
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
|
||||||
# The minimum macOS version of the libraries makes it so this is included in SDL on arm64
|
|
||||||
# but not x86_64.
|
|
||||||
string(APPEND PLATFORM_LINKFLAGS " -framework CoreHaptics")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PNG_ROOT ${LIBDIR}/png)
|
set(PNG_ROOT ${LIBDIR}/png)
|
||||||
|
@@ -1,46 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
# Copyright 2022 Blender Foundation. All rights reserved.
|
|
||||||
|
|
||||||
# Auto update existing CMake caches for new libraries
|
|
||||||
|
|
||||||
function(unset_cache_variables pattern)
|
|
||||||
get_cmake_property(_cache_variables CACHE_VARIABLES)
|
|
||||||
foreach (_cache_variable ${_cache_variables})
|
|
||||||
if("${_cache_variable}" MATCHES "${pattern}")
|
|
||||||
unset(${_cache_variable} CACHE)
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Detect update from 3.1 to 3.2 libs.
|
|
||||||
if(UNIX AND
|
|
||||||
DEFINED OPENEXR_VERSION AND
|
|
||||||
OPENEXR_VERSION VERSION_LESS "3.0.0" AND
|
|
||||||
EXISTS ${LIBDIR}/imath)
|
|
||||||
message(STATUS "Auto updating CMake configuration for Blender 3.2 libraries")
|
|
||||||
|
|
||||||
unset_cache_variables("^OPENIMAGEIO")
|
|
||||||
unset_cache_variables("^OPENEXR")
|
|
||||||
unset_cache_variables("^IMATH")
|
|
||||||
unset_cache_variables("^PNG")
|
|
||||||
unset_cache_variables("^USD")
|
|
||||||
unset_cache_variables("^WEBP")
|
|
||||||
unset_cache_variables("^NANOVDB")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Automatically set WebP on/off depending if libraries are available.
|
|
||||||
if(EXISTS ${LIBDIR}/webp)
|
|
||||||
if(WITH_OPENIMAGEIO)
|
|
||||||
set(WITH_IMAGE_WEBP ON CACHE BOOL "" FORCE)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(WITH_IMAGE_WEBP OFF)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# NanoVDB moved into openvdb.
|
|
||||||
if(UNIX AND DEFINED NANOVDB_INCLUDE_DIR)
|
|
||||||
if(NOT EXISTS ${NANOVDB_INCLUDE_DIR} AND
|
|
||||||
EXISTS ${LIBDIR}/openvdb/include/nanovdb)
|
|
||||||
unset_cache_variables("^NANOVDB")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
@@ -45,9 +45,6 @@ if(EXISTS ${LIBDIR})
|
|||||||
# which is a part of OpenCollada. They have different ABI, and we
|
# which is a part of OpenCollada. They have different ABI, and we
|
||||||
# do need to use the official one.
|
# do need to use the official one.
|
||||||
set(CMAKE_PREFIX_PATH ${LIBDIR}/zlib ${LIB_SUBDIRS})
|
set(CMAKE_PREFIX_PATH ${LIBDIR}/zlib ${LIB_SUBDIRS})
|
||||||
|
|
||||||
include(platform_old_libs_update)
|
|
||||||
|
|
||||||
set(WITH_STATIC_LIBS ON)
|
set(WITH_STATIC_LIBS ON)
|
||||||
# OpenMP usually can't be statically linked into shared libraries,
|
# OpenMP usually can't be statically linked into shared libraries,
|
||||||
# due to not being compiled with position independent code.
|
# due to not being compiled with position independent code.
|
||||||
@@ -376,7 +373,6 @@ if(WITH_IMAGE_WEBP)
|
|||||||
find_package_wrapper(WebP)
|
find_package_wrapper(WebP)
|
||||||
if(NOT WEBP_FOUND)
|
if(NOT WEBP_FOUND)
|
||||||
set(WITH_IMAGE_WEBP OFF)
|
set(WITH_IMAGE_WEBP OFF)
|
||||||
message(WARNING "WebP not found, disabling WITH_IMAGE_WEBP")
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -398,9 +394,6 @@ if(WITH_OPENIMAGEIO)
|
|||||||
if(WITH_IMAGE_OPENEXR)
|
if(WITH_IMAGE_OPENEXR)
|
||||||
list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}")
|
list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}")
|
||||||
endif()
|
endif()
|
||||||
if(WITH_IMAGE_WEBP)
|
|
||||||
list(APPEND OPENIMAGEIO_LIBRARIES "${WEBP_LIBRARIES}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT OPENIMAGEIO_FOUND)
|
if(NOT OPENIMAGEIO_FOUND)
|
||||||
set(WITH_OPENIMAGEIO OFF)
|
set(WITH_OPENIMAGEIO OFF)
|
||||||
|
@@ -104,7 +104,7 @@ string(APPEND CMAKE_MODULE_LINKER_FLAGS " /SAFESEH:NO /ignore:4099")
|
|||||||
list(APPEND PLATFORM_LINKLIBS
|
list(APPEND PLATFORM_LINKLIBS
|
||||||
ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 Comctl32 version
|
ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32 Comctl32 version
|
||||||
advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp Shlwapi
|
advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp Shlwapi
|
||||||
pathcch Shcore Dwmapi
|
pathcch Shcore
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WITH_INPUT_IME)
|
if(WITH_INPUT_IME)
|
||||||
@@ -262,8 +262,6 @@ if(NOT EXISTS "${LIBDIR}/")
|
|||||||
message(FATAL_ERROR "\n\nWindows requires pre-compiled libs at: '${LIBDIR}'. Please run `make update` in the blender source folder to obtain them.")
|
message(FATAL_ERROR "\n\nWindows requires pre-compiled libs at: '${LIBDIR}'. Please run `make update` in the blender source folder to obtain them.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(platform_old_libs_update)
|
|
||||||
|
|
||||||
if(CMAKE_GENERATOR MATCHES "^Visual Studio.+" AND # Only supported in the VS IDE
|
if(CMAKE_GENERATOR MATCHES "^Visual Studio.+" AND # Only supported in the VS IDE
|
||||||
MSVC_VERSION GREATER_EQUAL 1924 AND # Supported for 16.4+
|
MSVC_VERSION GREATER_EQUAL 1924 AND # Supported for 16.4+
|
||||||
WITH_CLANG_TIDY # And Clang Tidy needs to be on
|
WITH_CLANG_TIDY # And Clang Tidy needs to be on
|
||||||
@@ -345,18 +343,13 @@ if(WITH_FFTW3)
|
|||||||
set(FFTW3_LIBPATH ${FFTW3}/lib)
|
set(FFTW3_LIBPATH ${FFTW3}/lib)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_WEBP)
|
windows_find_package(WebP)
|
||||||
windows_find_package(WebP)
|
if(NOT WEBP_FOUND)
|
||||||
if(NOT WEBP_FOUND)
|
if(EXISTS ${LIBDIR}/webp)
|
||||||
if(EXISTS ${LIBDIR}/webp)
|
set(WEBP_INCLUDE_DIRS ${LIBDIR}/webp/include)
|
||||||
set(WEBP_INCLUDE_DIRS ${LIBDIR}/webp/include)
|
set(WEBP_ROOT_DIR ${LIBDIR}/webp)
|
||||||
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_LIBRARIES ${LIBDIR}/webp/lib/webp.lib ${LIBDIR}/webp/lib/webpdemux.lib ${LIBDIR}/webp/lib/webpmux.lib)
|
set(WEBP_FOUND ON)
|
||||||
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()
|
endif()
|
||||||
|
|
||||||
@@ -421,60 +414,27 @@ if(WITH_CODEC_FFMPEG)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_IMAGE_OPENEXR)
|
if(WITH_IMAGE_OPENEXR)
|
||||||
# Imath and OpenEXR have a single combined build option and include and library variables
|
windows_find_package(OpenEXR REQUIRED)
|
||||||
# used by the rest of the build system.
|
|
||||||
set(IMATH_ROOT_DIR ${LIBDIR}/imath)
|
|
||||||
set(IMATH_VERSION "3.14")
|
|
||||||
windows_find_package(IMATH REQUIRED)
|
|
||||||
if(NOT IMATH_FOUND)
|
|
||||||
set(IMATH ${LIBDIR}/imath)
|
|
||||||
set(IMATH_INCLUDE_DIR ${IMATH}/include)
|
|
||||||
set(IMATH_INCLUDE_DIRS ${IMATH_INCLUDE_DIR} ${IMATH}/include/Imath)
|
|
||||||
set(IMATH_LIBPATH ${IMATH}/lib)
|
|
||||||
set(IMATH_LIBRARIES
|
|
||||||
optimized ${IMATH_LIBPATH}/Imath_s.lib
|
|
||||||
debug ${IMATH_LIBPATH}/Imath_s_d.lib
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr)
|
|
||||||
set(OPENEXR_VERSION "3.14")
|
|
||||||
windows_find_package(OPENEXR REQUIRED)
|
|
||||||
if(NOT OpenEXR_FOUND)
|
if(NOT OpenEXR_FOUND)
|
||||||
|
set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr)
|
||||||
|
set(OPENEXR_VERSION "2.1")
|
||||||
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/OpenEXR)
|
set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
|
||||||
set(OPENEXR_LIBPATH ${OPENEXR}/lib)
|
set(OPENEXR_LIBPATH ${OPENEXR}/lib)
|
||||||
# Check if the 3.x library name exists
|
set(OPENEXR_LIBRARIES
|
||||||
# if not assume this is a 2.x library folder
|
optimized ${OPENEXR_LIBPATH}/Iex_s.lib
|
||||||
if(EXISTS "${OPENEXR_LIBPATH}/OpenEXR_s.lib")
|
optimized ${OPENEXR_LIBPATH}/Half_s.lib
|
||||||
set(OPENEXR_LIBRARIES
|
optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib
|
||||||
optimized ${OPENEXR_LIBPATH}/Iex_s.lib
|
optimized ${OPENEXR_LIBPATH}/Imath_s.lib
|
||||||
optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
|
optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
|
||||||
optimized ${OPENEXR_LIBPATH}/OpenEXR_s.lib
|
debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
|
||||||
optimized ${OPENEXR_LIBPATH}/OpenEXRCore_s.lib
|
debug ${OPENEXR_LIBPATH}/Half_s_d.lib
|
||||||
optimized ${OPENEXR_LIBPATH}/OpenEXRUtil_s.lib
|
debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib
|
||||||
debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
|
debug ${OPENEXR_LIBPATH}/Imath_s_d.lib
|
||||||
debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
|
debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
|
||||||
debug ${OPENEXR_LIBPATH}/OpenEXR_s_d.lib
|
)
|
||||||
debug ${OPENEXR_LIBPATH}/OpenEXRCore_s_d.lib
|
|
||||||
debug ${OPENEXR_LIBPATH}/OpenEXRUtil_s_d.lib
|
|
||||||
${IMATH_LIBRARIES}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set(OPENEXR_LIBRARIES
|
|
||||||
optimized ${OPENEXR_LIBPATH}/Iex_s.lib
|
|
||||||
optimized ${OPENEXR_LIBPATH}/Half_s.lib
|
|
||||||
optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib
|
|
||||||
optimized ${OPENEXR_LIBPATH}/Imath_s.lib
|
|
||||||
optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
|
|
||||||
debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
|
|
||||||
debug ${OPENEXR_LIBPATH}/Half_s_d.lib
|
|
||||||
debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib
|
|
||||||
debug ${OPENEXR_LIBPATH}/Imath_s_d.lib
|
|
||||||
debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -540,14 +500,8 @@ if(WITH_BOOST)
|
|||||||
if(NOT BOOST_VERSION)
|
if(NOT BOOST_VERSION)
|
||||||
message(FATAL_ERROR "Unable to determine Boost version")
|
message(FATAL_ERROR "Unable to determine Boost version")
|
||||||
endif()
|
endif()
|
||||||
set(BOOST_POSTFIX "vc142-mt-x64-${BOOST_VERSION}.lib")
|
set(BOOST_POSTFIX "vc141-mt-x64-${BOOST_VERSION}.lib")
|
||||||
set(BOOST_DEBUG_POSTFIX "vc142-mt-gd-x64-${BOOST_VERSION}.lib")
|
set(BOOST_DEBUG_POSTFIX "vc141-mt-gd-x64-${BOOST_VERSION}.lib")
|
||||||
if(NOT EXISTS ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX})
|
|
||||||
# If the new library names do not exist fall back to the old ones
|
|
||||||
# to ease the transition period between the libs.
|
|
||||||
set(BOOST_POSTFIX "vc141-mt-x64-${BOOST_VERSION}.lib")
|
|
||||||
set(BOOST_DEBUG_POSTFIX "vc141-mt-gd-x64-${BOOST_VERSION}.lib")
|
|
||||||
endif()
|
|
||||||
set(BOOST_LIBRARIES
|
set(BOOST_LIBRARIES
|
||||||
optimized ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX}
|
optimized ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX}
|
||||||
optimized ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_POSTFIX}
|
optimized ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_POSTFIX}
|
||||||
@@ -591,6 +545,7 @@ if(WITH_OPENIMAGEIO)
|
|||||||
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})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
|
set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
|
||||||
set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
|
set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
|
||||||
add_definitions(-DOIIO_STATIC_DEFINE)
|
add_definitions(-DOIIO_STATIC_DEFINE)
|
||||||
@@ -620,7 +575,6 @@ if(WITH_LLVM)
|
|||||||
message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.")
|
message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.")
|
||||||
set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED})
|
set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENCOLORIO)
|
if(WITH_OPENCOLORIO)
|
||||||
@@ -640,6 +594,7 @@ if(WITH_OPENCOLORIO)
|
|||||||
debug ${OPENCOLORIO_LIBPATH}/pystring_d.lib
|
debug ${OPENCOLORIO_LIBPATH}/pystring_d.lib
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENCOLORIO_DEFINITIONS "-DOpenColorIO_SKIP_IMPORTS")
|
set(OPENCOLORIO_DEFINITIONS "-DOpenColorIO_SKIP_IMPORTS")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -649,24 +604,17 @@ if(WITH_OPENVDB)
|
|||||||
set(OPENVDB ${LIBDIR}/openVDB)
|
set(OPENVDB ${LIBDIR}/openVDB)
|
||||||
set(OPENVDB_LIBPATH ${OPENVDB}/lib)
|
set(OPENVDB_LIBPATH ${OPENVDB}/lib)
|
||||||
set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
|
set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
|
||||||
set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib )
|
set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES)
|
set(OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_NANOVDB)
|
if(WITH_NANOVDB)
|
||||||
set(NANOVDB ${LIBDIR}/openvdb)
|
set(NANOVDB ${LIBDIR}/nanoVDB)
|
||||||
set(NANOVDB_INCLUDE_DIR ${NANOVDB}/include)
|
set(NANOVDB_INCLUDE_DIR ${NANOVDB}/include)
|
||||||
if(NOT EXISTS "${NANOVDB_INCLUDE_DIR}/nanovdb")
|
|
||||||
# When not found, could be an older lib folder with where nanovdb
|
|
||||||
# had its own lib folder, to ease the transition period, fall back
|
|
||||||
# to that copy if the copy in openvdb is not found.
|
|
||||||
set(NANOVDB ${LIBDIR}/nanoVDB)
|
|
||||||
set(NANOVDB_INCLUDE_DIR ${NANOVDB}/include)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(WITH_OPENIMAGEDENOISE)
|
if(WITH_OPENIMAGEDENOISE)
|
||||||
set(OPENIMAGEDENOISE ${LIBDIR}/OpenImageDenoise)
|
set(OPENIMAGEDENOISE ${LIBDIR}/OpenImageDenoise)
|
||||||
set(OPENIMAGEDENOISE_LIBPATH ${LIBDIR}/OpenImageDenoise/lib)
|
set(OPENIMAGEDENOISE_LIBPATH ${LIBDIR}/OpenImageDenoise/lib)
|
||||||
@@ -692,12 +640,7 @@ 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.4)
|
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
|
||||||
if(NOT EXISTS "${OPENJPEG_INCLUDE_DIRS}")
|
|
||||||
# when not found, could be an older lib folder with openjpeg 2.3
|
|
||||||
# to ease the transition period, fall back if 2.4 is not found.
|
|
||||||
set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
|
|
||||||
endif()
|
|
||||||
set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
|
set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -840,16 +783,9 @@ if(WITH_USD)
|
|||||||
windows_find_package(USD)
|
windows_find_package(USD)
|
||||||
if(NOT USD_FOUND)
|
if(NOT USD_FOUND)
|
||||||
set(USD_INCLUDE_DIRS ${LIBDIR}/usd/include)
|
set(USD_INCLUDE_DIRS ${LIBDIR}/usd/include)
|
||||||
set(USD_RELEASE_LIB ${LIBDIR}/usd/lib/usd_usd_m.lib)
|
set(USD_RELEASE_LIB ${LIBDIR}/usd/lib/libusd_m.lib)
|
||||||
set(USD_DEBUG_LIB ${LIBDIR}/usd/lib/usd_usd_m_d.lib)
|
set(USD_DEBUG_LIB ${LIBDIR}/usd/lib/libusd_m_d.lib)
|
||||||
set(USD_LIBRARY_DIR ${LIBDIR}/usd/lib)
|
set(USD_LIBRARY_DIR ${LIBDIR}/usd/lib)
|
||||||
# Older USD had different filenames, if the new ones are
|
|
||||||
# not found see if the older ones exist, to ease the
|
|
||||||
# transition period while landing libs.
|
|
||||||
if(NOT EXISTS "${USD_RELEASE_LIB}")
|
|
||||||
set(USD_RELEASE_LIB ${LIBDIR}/usd/lib/libusd_m.lib)
|
|
||||||
set(USD_DEBUG_LIB ${LIBDIR}/usd/lib/libusd_m_d.lib)
|
|
||||||
endif()
|
|
||||||
set(USD_LIBRARIES
|
set(USD_LIBRARIES
|
||||||
debug ${USD_DEBUG_LIB}
|
debug ${USD_DEBUG_LIB}
|
||||||
optimized ${USD_RELEASE_LIB}
|
optimized ${USD_RELEASE_LIB}
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Module for accessing project file data for Blender.
|
Module for accessing project file data for Blender.
|
||||||
|
|
||||||
@@ -168,7 +170,7 @@ def cmake_advanced_info() -> Union[Tuple[List[str], List[Tuple[str, str]]], Tupl
|
|||||||
project_path = create_eclipse_project()
|
project_path = create_eclipse_project()
|
||||||
|
|
||||||
if not exists(project_path):
|
if not exists(project_path):
|
||||||
print("Generating Eclipse Project File Failed: %r not found" % project_path)
|
print("Generating Eclipse Prokect File Failed: %r not found" % project_path)
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
from xml.dom.minidom import parse
|
from xml.dom.minidom import parse
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
__all__ = (
|
__all__ = (
|
||||||
"build_info",
|
"build_info",
|
||||||
"SOURCE_DIR",
|
"SOURCE_DIR",
|
||||||
@@ -112,11 +114,12 @@ def makefile_log() -> List[str]:
|
|||||||
print("Can't execute process")
|
print("Can't execute process")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
while process.poll():
|
while process.poll():
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
# We know this is always true based on the input arguments to `Popen`.
|
# We know this is always true based on the input arguments to `Popen`.
|
||||||
stdout: IO[bytes] = process.stdout # type: ignore
|
stdout: IO[bytes] = process.stdout # type: ignore
|
||||||
|
|
||||||
out = stdout.read()
|
out = stdout.read()
|
||||||
stdout.close()
|
stdout.close()
|
||||||
@@ -207,7 +210,7 @@ def build_defines_as_source() -> str:
|
|||||||
)
|
)
|
||||||
|
|
||||||
# We know this is always true based on the input arguments to `Popen`.
|
# We know this is always true based on the input arguments to `Popen`.
|
||||||
stdout: IO[bytes] = process.stdout # type: ignore
|
stdout: IO[bytes] = process.stdout # type: ignore
|
||||||
|
|
||||||
return cast(str, stdout.read().strip().decode('ascii'))
|
return cast(str, stdout.read().strip().decode('ascii'))
|
||||||
|
|
||||||
@@ -225,7 +228,7 @@ def build_defines_as_args() -> List[str]:
|
|||||||
def queue_processes(
|
def queue_processes(
|
||||||
process_funcs: Sequence[Tuple[Callable[..., subprocess.Popen[Any]], Tuple[Any, ...]]],
|
process_funcs: Sequence[Tuple[Callable[..., subprocess.Popen[Any]], Tuple[Any, ...]]],
|
||||||
*,
|
*,
|
||||||
job_total: int = -1,
|
job_total: int =-1,
|
||||||
sleep: float = 0.1,
|
sleep: float = 0.1,
|
||||||
) -> None:
|
) -> None:
|
||||||
""" Takes a list of function arg pairs, each function must return a process
|
""" Takes a list of function arg pairs, each function must return a process
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
|
@@ -143,8 +143,8 @@ def packages_path(current_directory: Path, cli_args: Any) -> Optional[Path]:
|
|||||||
|
|
||||||
return Path(relpath)
|
return Path(relpath)
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# Manifest creation
|
### Manifest creation
|
||||||
|
|
||||||
|
|
||||||
def create_manifest(
|
def create_manifest(
|
||||||
@@ -195,8 +195,7 @@ def packages_to_manifest(outfile: TextIO, packages_dir: Path) -> None:
|
|||||||
print(path, file=outfile)
|
print(path, file=outfile)
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
### Higher-level functions
|
||||||
# Higher-level functions
|
|
||||||
|
|
||||||
|
|
||||||
def create_tarball(
|
def create_tarball(
|
||||||
@@ -250,8 +249,7 @@ def cleanup(manifest: Path) -> None:
|
|||||||
print("OK")
|
print("OK")
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
## Low-level commands
|
||||||
# Low-level commands
|
|
||||||
|
|
||||||
|
|
||||||
def git_ls_files(directory: Path = Path(".")) -> Iterable[Path]:
|
def git_ls_files(directory: Path = Path(".")) -> Iterable[Path]:
|
||||||
@@ -267,7 +265,7 @@ def git_ls_files(directory: Path = Path(".")) -> Iterable[Path]:
|
|||||||
yield path
|
yield path
|
||||||
|
|
||||||
|
|
||||||
def git_command(*cli_args: Union[bytes, str, Path]) -> Iterable[str]:
|
def git_command(*cli_args: Union[bytes, str, Path] ) -> Iterable[str]:
|
||||||
"""Generator, yields lines of output from a Git command."""
|
"""Generator, yields lines of output from a Git command."""
|
||||||
command = ("git", *cli_args)
|
command = ("git", *cli_args)
|
||||||
|
|
||||||
|
@@ -129,7 +129,6 @@ def svn_update(args, release_version):
|
|||||||
call(svn_non_interactive + ["switch", svn_url + dirname, 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, check_remote_exists=True):
|
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):
|
||||||
|
@@ -47,10 +47,8 @@ def check_output(cmd, exit_on_error=True):
|
|||||||
|
|
||||||
|
|
||||||
def git_branch_exists(git_command, branch):
|
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):
|
def git_branch(git_command):
|
||||||
|
@@ -3,10 +3,13 @@ for %%X in (svn.exe) do (set SVN=%%~$PATH:X)
|
|||||||
for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X)
|
for %%X in (cmake.exe) do (set CMAKE=%%~$PATH:X)
|
||||||
for %%X in (ctest.exe) do (set CTEST=%%~$PATH:X)
|
for %%X in (ctest.exe) do (set CTEST=%%~$PATH:X)
|
||||||
for %%X in (git.exe) do (set GIT=%%~$PATH:X)
|
for %%X in (git.exe) do (set GIT=%%~$PATH:X)
|
||||||
REM For python, default on 310 but if that does not exist also check
|
REM For python, default on 39 but if that does not exist also check
|
||||||
REM the 311, 312 and finally 39 folders to see if those are there, it checks
|
REM the 310,311 and 312 folders to see if those are there, it checks
|
||||||
REM this far ahead to ensure good lib folder compatibility in the future
|
REM this far ahead to ensure good lib folder compatibility in the future.
|
||||||
REM it falls back to 3.9 just incase it is a very old lib folder.
|
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
|
||||||
|
if EXIST %PYTHON% (
|
||||||
|
goto detect_python_done
|
||||||
|
)
|
||||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\310\bin\python.exe
|
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\310\bin\python.exe
|
||||||
if EXIST %PYTHON% (
|
if EXIST %PYTHON% (
|
||||||
goto detect_python_done
|
goto detect_python_done
|
||||||
@@ -19,10 +22,6 @@ set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\312\bin\python.exe
|
|||||||
if EXIST %PYTHON% (
|
if EXIST %PYTHON% (
|
||||||
goto detect_python_done
|
goto detect_python_done
|
||||||
)
|
)
|
||||||
set PYTHON=%BLENDER_DIR%\..\lib\win64_vc15\python\39\bin\python.exe
|
|
||||||
if EXIST %PYTHON% (
|
|
||||||
goto detect_python_done
|
|
||||||
)
|
|
||||||
|
|
||||||
if NOT EXIST %PYTHON% (
|
if NOT EXIST %PYTHON% (
|
||||||
echo Warning: Python not found, there is likely an issue with the library folder
|
echo Warning: Python not found, there is likely an issue with the library folder
|
||||||
|
@@ -378,8 +378,7 @@ def usage():
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
||||||
import os
|
import os, os.path
|
||||||
import os.path
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
bpy = __import__('bpy')
|
bpy = __import__('bpy')
|
||||||
@@ -411,7 +410,7 @@ def main():
|
|||||||
# read blend header from blend file
|
# read blend header from blend file
|
||||||
log.info("2: read file:")
|
log.info("2: read file:")
|
||||||
|
|
||||||
if dir not in sys.path:
|
if not dir in sys.path:
|
||||||
sys.path.append(dir)
|
sys.path.append(dir)
|
||||||
import BlendFileReader
|
import BlendFileReader
|
||||||
|
|
||||||
|
@@ -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.3
|
PROJECT_NUMBER = V3.2
|
||||||
|
|
||||||
# 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
|
||||||
|
@@ -11,6 +11,8 @@ where <path-to-blender> is the path to the Blender executable,
|
|||||||
and <output-filename> is where to write the generated man page.
|
and <output-filename> is where to write the generated man page.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
# <pep8 compliant>
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
@@ -101,10 +103,10 @@ blender \- a full-featured 3D application''')
|
|||||||
.PP
|
.PP
|
||||||
.B blender
|
.B blender
|
||||||
is a full-featured 3D application. It supports the entirety of the 3D pipeline - '''
|
is a full-featured 3D application. It supports the entirety of the 3D pipeline - '''
|
||||||
'''modeling, rigging, animation, simulation, rendering, compositing, motion tracking, and video editing.
|
'''modeling, rigging, animation, simulation, rendering, compositing, motion tracking, and video editing.
|
||||||
|
|
||||||
Use Blender to create 3D images and animations, films and commercials, content for games, '''
|
Use Blender to create 3D images and animations, films and commercials, content for games, '''
|
||||||
r'''architectural and industrial visualizations, and scientific visualizations.
|
r'''architectural and industrial visualizations, and scientific visualizations.
|
||||||
|
|
||||||
https://www.blender.org''')
|
https://www.blender.org''')
|
||||||
|
|
||||||
|
@@ -11,7 +11,6 @@ import queue
|
|||||||
|
|
||||||
execution_queue = queue.Queue()
|
execution_queue = queue.Queue()
|
||||||
|
|
||||||
|
|
||||||
# This function can safely be called in another thread.
|
# This function can safely be called in another thread.
|
||||||
# The function will be executed when the timer runs the next time.
|
# The function will be executed when the timer runs the next time.
|
||||||
def run_in_main_thread(function):
|
def run_in_main_thread(function):
|
||||||
|
@@ -9,7 +9,7 @@ operator in the different part of the user interface.
|
|||||||
The context overrides are passed as a dictionary, with keys matching the context
|
The context overrides are passed as a dictionary, with keys matching the context
|
||||||
member names in bpy.context.
|
member names in bpy.context.
|
||||||
For example to override ``bpy.context.active_object``,
|
For example to override ``bpy.context.active_object``,
|
||||||
you would pass ``{'active_object': object}`` to :class:`bpy.types.Context.temp_override`.
|
you would pass ``{'active_object': object}``.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@@ -17,10 +17,8 @@ you would pass ``{'active_object': object}`` to :class:`bpy.types.Context.temp_o
|
|||||||
(otherwise, you'll have to find and gather all needed data yourself).
|
(otherwise, you'll have to find and gather all needed data yourself).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Remove all objects in scene rather than the selected ones.
|
# remove all objects in scene rather than the selected ones
|
||||||
import bpy
|
import bpy
|
||||||
from bpy import context
|
override = bpy.context.copy()
|
||||||
override = context.copy()
|
override['selected_objects'] = list(bpy.context.scene.objects)
|
||||||
override["selected_objects"] = list(context.scene.objects)
|
bpy.ops.object.delete(override)
|
||||||
with context.temp_override(**override):
|
|
||||||
bpy.ops.object.delete()
|
|
||||||
|
@@ -1,16 +1,17 @@
|
|||||||
"""
|
"""
|
||||||
It is also possible to run an operator in a particular part of the user
|
It is also possible to run an operator in a particular part of the user
|
||||||
interface. For this we need to pass the window, area and sometimes a region.
|
interface. For this we need to pass the window, screen, area and sometimes
|
||||||
|
a region.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# Maximize 3d view in all windows.
|
# maximize 3d view in all windows
|
||||||
import bpy
|
import bpy
|
||||||
from bpy import context
|
|
||||||
|
|
||||||
for window in context.window_manager.windows:
|
for window in bpy.context.window_manager.windows:
|
||||||
screen = window.screen
|
screen = window.screen
|
||||||
|
|
||||||
for area in screen.areas:
|
for area in screen.areas:
|
||||||
if area.type == 'VIEW_3D':
|
if area.type == 'VIEW_3D':
|
||||||
with context.temp_override(window=window, area=area):
|
override = {'window': window, 'screen': screen, 'area': area}
|
||||||
bpy.ops.screen.screen_full_area()
|
bpy.ops.screen.screen_full_area(override)
|
||||||
break
|
break
|
||||||
|
@@ -33,11 +33,6 @@ There are 3 optional positional arguments (documented in detail below).
|
|||||||
bpy.ops.test.operator(override_context, execution_context, undo)
|
bpy.ops.test.operator(override_context, execution_context, undo)
|
||||||
|
|
||||||
- override_context - ``dict`` type.
|
- override_context - ``dict`` type.
|
||||||
|
|
||||||
.. deprecated:: 3.2
|
|
||||||
|
|
||||||
:class:`bpy.types.Context.temp_override` should be used instead of this argument.
|
|
||||||
|
|
||||||
- execution_context - ``str`` (enum).
|
- execution_context - ``str`` (enum).
|
||||||
- undo - ``bool`` type.
|
- undo - ``bool`` type.
|
||||||
|
|
||||||
|
@@ -4,7 +4,6 @@ the middle of updating the armature without having to update dependencies
|
|||||||
after each change, by manually carrying updated matrices in a recursive walk.
|
after each change, by manually carrying updated matrices in a recursive walk.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def set_pose_matrices(obj, matrix_map):
|
def set_pose_matrices(obj, matrix_map):
|
||||||
"Assign pose space matrices of all bones at once, ignoring constraints."
|
"Assign pose space matrices of all bones at once, ignoring constraints."
|
||||||
|
|
||||||
@@ -12,7 +11,7 @@ def set_pose_matrices(obj, matrix_map):
|
|||||||
if pbone.name in matrix_map:
|
if pbone.name in matrix_map:
|
||||||
matrix = matrix_map[pbone.name]
|
matrix = matrix_map[pbone.name]
|
||||||
|
|
||||||
# # Instead of:
|
## Instead of:
|
||||||
# pbone.matrix = matrix
|
# pbone.matrix = matrix
|
||||||
# bpy.context.view_layer.update()
|
# bpy.context.view_layer.update()
|
||||||
|
|
||||||
|
@@ -1,19 +0,0 @@
|
|||||||
"""
|
|
||||||
Overriding the context can be used to temporarily activate another ``window`` / ``area`` & ``region``,
|
|
||||||
as well as other members such as the ``active_object`` or ``bone``.
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
|
|
||||||
- When overriding window, area and regions: the arguments must be consistent,
|
|
||||||
so any region argument that's passed in must be contained by the current area or the area passed in.
|
|
||||||
The same goes for the area needing to be contained in the current window.
|
|
||||||
|
|
||||||
- Temporary context overrides may be nested, when this is done, members will be added to the existing overrides.
|
|
||||||
|
|
||||||
- Context members are restored outside the scope of the context-manager.
|
|
||||||
The only exception to this is when the data is no longer available.
|
|
||||||
|
|
||||||
In the event windowing data was removed (for example), the state of the context is left as-is.
|
|
||||||
While this isn't likely to happen, explicit window operation such as closing windows or loading a new file
|
|
||||||
remove the windowing data that was set before the temporary context was created.
|
|
||||||
"""
|
|
@@ -1,15 +0,0 @@
|
|||||||
"""
|
|
||||||
Overriding the context can be useful to set the context after loading files
|
|
||||||
(which would otherwise by None). For example:
|
|
||||||
"""
|
|
||||||
|
|
||||||
import bpy
|
|
||||||
from bpy import context
|
|
||||||
|
|
||||||
# Reload the current file and select all.
|
|
||||||
bpy.ops.wm.open_mainfile(filepath=bpy.data.filepath)
|
|
||||||
window = context.window_manager.windows[0]
|
|
||||||
with context.temp_override(window=window):
|
|
||||||
bpy.ops.mesh.primitive_uv_sphere_add()
|
|
||||||
# The context override is needed so it's possible to set edit-mode.
|
|
||||||
bpy.ops.object.mode_set(mode='EDIT')
|
|
@@ -1,16 +0,0 @@
|
|||||||
"""
|
|
||||||
This example shows how it's possible to add an object to the scene in another window.
|
|
||||||
"""
|
|
||||||
import bpy
|
|
||||||
from bpy import context
|
|
||||||
|
|
||||||
win_active = context.window
|
|
||||||
win_other = None
|
|
||||||
for win_iter in context.window_manager.windows:
|
|
||||||
if win_iter != win_active:
|
|
||||||
win_other = win_iter
|
|
||||||
break
|
|
||||||
|
|
||||||
# Add cube in the other window.
|
|
||||||
with context.temp_override(window=win_other):
|
|
||||||
bpy.ops.mesh.primitive_cube_add()
|
|
@@ -1,46 +0,0 @@
|
|||||||
"""
|
|
||||||
Image Data
|
|
||||||
++++++++++
|
|
||||||
|
|
||||||
The Image data-block is a shallow wrapper around image or video file(s)
|
|
||||||
(on disk, as packed data, or generated).
|
|
||||||
|
|
||||||
All actual data like the pixel buffer, size, resolution etc. is
|
|
||||||
cached in an :class:`imbuf.types.ImBuf` image buffer (or several buffers
|
|
||||||
in some cases, like UDIM textures, multi-views, animations...).
|
|
||||||
|
|
||||||
Several properties and functions of the Image data-block are then actually
|
|
||||||
using/modifying its image buffer, and not the Image data-block itself.
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
One key limitation is that image buffers are not shared between different
|
|
||||||
Image data-blocks, and they are not duplicated when copying an image.
|
|
||||||
|
|
||||||
So until a modified image buffer is saved on disk, duplicating its Image
|
|
||||||
data-block will not propagate the underlying buffer changes to the new Image.
|
|
||||||
|
|
||||||
|
|
||||||
This example script generates an Image data-block with a given size,
|
|
||||||
change its first pixel, rescale it, and duplicates the image.
|
|
||||||
|
|
||||||
The duplicated image still has the same size and colors as the original image
|
|
||||||
at its creation, all editing in the original image's buffer is 'lost' in its copy.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import bpy
|
|
||||||
|
|
||||||
image_src = bpy.data.images.new('src', 1024, 102)
|
|
||||||
print(image_src.size)
|
|
||||||
print(image_src.pixels[0:4])
|
|
||||||
|
|
||||||
image_src.scale(1024, 720)
|
|
||||||
image_src.pixels[0:4] = (0.5, 0.5, 0.5, 0.5)
|
|
||||||
image_src.update()
|
|
||||||
print(image_src.size)
|
|
||||||
print(image_src.pixels[0:4])
|
|
||||||
|
|
||||||
image_dest = image_src.copy()
|
|
||||||
image_dest.update()
|
|
||||||
print(image_dest.size)
|
|
||||||
print(image_dest.pixels[0:4])
|
|
@@ -42,12 +42,10 @@ class SimpleMouseOperator(bpy.types.Operator):
|
|||||||
self.y = event.mouse_y
|
self.y = event.mouse_y
|
||||||
return self.execute(context)
|
return self.execute(context)
|
||||||
|
|
||||||
|
# Only needed if you want to add into a dynamic menu
|
||||||
# Only needed if you want to add into a dynamic menu.
|
|
||||||
def menu_func(self, context):
|
def menu_func(self, context):
|
||||||
self.layout.operator(SimpleMouseOperator.bl_idname, text="Simple Mouse Operator")
|
self.layout.operator(SimpleMouseOperator.bl_idname, text="Simple Mouse Operator")
|
||||||
|
|
||||||
|
|
||||||
# Register and add to the view menu (required to also use F3 search "Simple Mouse Operator" for quick access)
|
# Register and add to the view menu (required to also use F3 search "Simple Mouse Operator" for quick access)
|
||||||
bpy.utils.register_class(SimpleMouseOperator)
|
bpy.utils.register_class(SimpleMouseOperator)
|
||||||
bpy.types.VIEW3D_MT_view.append(menu_func)
|
bpy.types.VIEW3D_MT_view.append(menu_func)
|
||||||
|
@@ -37,7 +37,7 @@ class ExportSomeData(bpy.types.Operator):
|
|||||||
return {'RUNNING_MODAL'}
|
return {'RUNNING_MODAL'}
|
||||||
|
|
||||||
|
|
||||||
# Only needed if you want to add into a dynamic menu.
|
# Only needed if you want to add into a dynamic menu
|
||||||
def menu_func(self, context):
|
def menu_func(self, context):
|
||||||
self.layout.operator_context = 'INVOKE_DEFAULT'
|
self.layout.operator_context = 'INVOKE_DEFAULT'
|
||||||
self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator")
|
self.layout.operator(ExportSomeData.bl_idname, text="Text Export Operator")
|
||||||
|
@@ -27,8 +27,7 @@ class DialogOperator(bpy.types.Operator):
|
|||||||
wm = context.window_manager
|
wm = context.window_manager
|
||||||
return wm.invoke_props_dialog(self)
|
return wm.invoke_props_dialog(self)
|
||||||
|
|
||||||
|
# Only needed if you want to add into a dynamic menu
|
||||||
# Only needed if you want to add into a dynamic menu.
|
|
||||||
def menu_func(self, context):
|
def menu_func(self, context):
|
||||||
self.layout.operator(DialogOperator.bl_idname, text="Dialog Operator")
|
self.layout.operator(DialogOperator.bl_idname, text="Dialog Operator")
|
||||||
|
|
||||||
|
@@ -41,13 +41,11 @@ class CustomDrawOperator(bpy.types.Operator):
|
|||||||
|
|
||||||
col.prop(self, "my_string")
|
col.prop(self, "my_string")
|
||||||
|
|
||||||
|
# Only needed if you want to add into a dynamic menu
|
||||||
# Only needed if you want to add into a dynamic menu.
|
|
||||||
def menu_func(self, context):
|
def menu_func(self, context):
|
||||||
self.layout.operator(CustomDrawOperator.bl_idname, text="Custom Draw Operator")
|
self.layout.operator(CustomDrawOperator.bl_idname, text="Custom Draw Operator")
|
||||||
|
|
||||||
|
# Register and add to the object menu (required to also use F3 search "Custom Draw Operator" for quick access)
|
||||||
# Register and add to the object menu (required to also use F3 search "Custom Draw Operator" for quick access).
|
|
||||||
bpy.utils.register_class(CustomDrawOperator)
|
bpy.utils.register_class(CustomDrawOperator)
|
||||||
bpy.types.VIEW3D_MT_object.append(menu_func)
|
bpy.types.VIEW3D_MT_object.append(menu_func)
|
||||||
|
|
||||||
|
@@ -55,13 +55,11 @@ class ModalOperator(bpy.types.Operator):
|
|||||||
context.window_manager.modal_handler_add(self)
|
context.window_manager.modal_handler_add(self)
|
||||||
return {'RUNNING_MODAL'}
|
return {'RUNNING_MODAL'}
|
||||||
|
|
||||||
|
# Only needed if you want to add into a dynamic menu
|
||||||
# Only needed if you want to add into a dynamic menu.
|
|
||||||
def menu_func(self, context):
|
def menu_func(self, context):
|
||||||
self.layout.operator(ModalOperator.bl_idname, text="Modal Operator")
|
self.layout.operator(ModalOperator.bl_idname, text="Modal Operator")
|
||||||
|
|
||||||
|
# Register and add to the object menu (required to also use F3 search "Modal Operator" for quick access)
|
||||||
# Register and add to the object menu (required to also use F3 search "Modal Operator" for quick access).
|
|
||||||
bpy.utils.register_class(ModalOperator)
|
bpy.utils.register_class(ModalOperator)
|
||||||
bpy.types.VIEW3D_MT_object.append(menu_func)
|
bpy.types.VIEW3D_MT_object.append(menu_func)
|
||||||
|
|
||||||
|
@@ -31,12 +31,10 @@ class SearchEnumOperator(bpy.types.Operator):
|
|||||||
context.window_manager.invoke_search_popup(self)
|
context.window_manager.invoke_search_popup(self)
|
||||||
return {'RUNNING_MODAL'}
|
return {'RUNNING_MODAL'}
|
||||||
|
|
||||||
|
# Only needed if you want to add into a dynamic menu
|
||||||
# Only needed if you want to add into a dynamic menu.
|
|
||||||
def menu_func(self, context):
|
def menu_func(self, context):
|
||||||
self.layout.operator(SearchEnumOperator.bl_idname, text="Search Enum Operator")
|
self.layout.operator(SearchEnumOperator.bl_idname, text="Search Enum Operator")
|
||||||
|
|
||||||
|
|
||||||
# Register and add to the object menu (required to also use F3 search "Search Enum Operator" for quick access)
|
# Register and add to the object menu (required to also use F3 search "Search Enum Operator" for quick access)
|
||||||
bpy.utils.register_class(SearchEnumOperator)
|
bpy.utils.register_class(SearchEnumOperator)
|
||||||
bpy.types.VIEW3D_MT_object.append(menu_func)
|
bpy.types.VIEW3D_MT_object.append(menu_func)
|
||||||
|
@@ -22,15 +22,13 @@ class HelloWorldOperator(bpy.types.Operator):
|
|||||||
print("Hello World")
|
print("Hello World")
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|
||||||
|
# Only needed if you want to add into a dynamic menu
|
||||||
# Only needed if you want to add into a dynamic menu.
|
|
||||||
def menu_func(self, context):
|
def menu_func(self, context):
|
||||||
self.layout.operator(HelloWorldOperator.bl_idname, text="Hello World Operator")
|
self.layout.operator(HelloWorldOperator.bl_idname, text="Hello World Operator")
|
||||||
|
|
||||||
|
# Register and add to the view menu (required to also use F3 search "Hello World Operator" for quick access)
|
||||||
# Register and add to the view menu (required to also use F3 search "Hello World Operator" for quick access).
|
|
||||||
bpy.utils.register_class(HelloWorldOperator)
|
bpy.utils.register_class(HelloWorldOperator)
|
||||||
bpy.types.VIEW3D_MT_view.append(menu_func)
|
bpy.types.VIEW3D_MT_view.append(menu_func)
|
||||||
|
|
||||||
# Test call to the newly defined operator.
|
# test call to the newly defined operator
|
||||||
bpy.ops.wm.hello_world()
|
bpy.ops.wm.hello_world()
|
||||||
|
@@ -29,36 +29,3 @@ def draw():
|
|||||||
|
|
||||||
|
|
||||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
|
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')
|
||||||
|
|
||||||
"""
|
|
||||||
3D Image
|
|
||||||
--------
|
|
||||||
|
|
||||||
Similar to the 2D Image shader, but works with 3D positions for the image vertices.
|
|
||||||
To use this example you have to provide an image that should be displayed.
|
|
||||||
"""
|
|
||||||
import bpy
|
|
||||||
import gpu
|
|
||||||
from gpu_extras.batch import batch_for_shader
|
|
||||||
|
|
||||||
IMAGE_NAME = "Untitled"
|
|
||||||
image = bpy.data.images[IMAGE_NAME]
|
|
||||||
texture = gpu.texture.from_image(image)
|
|
||||||
|
|
||||||
shader = gpu.shader.from_builtin('3D_IMAGE')
|
|
||||||
batch = batch_for_shader(
|
|
||||||
shader, 'TRIS',
|
|
||||||
{
|
|
||||||
"pos": ((0, 0, 0), (0, 1, 1), (1, 1, 1), (1, 1, 1), (1, 0, 0), (0, 0, 0)),
|
|
||||||
"texCoord": ((0, 0), (0, 1), (1, 1), (1, 1), (1, 0), (0, 0)),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def draw():
|
|
||||||
shader.bind()
|
|
||||||
shader.uniform_sampler("image", texture)
|
|
||||||
batch.draw(shader)
|
|
||||||
|
|
||||||
|
|
||||||
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')
|
|
||||||
|
@@ -43,7 +43,7 @@ with offscreen.bind():
|
|||||||
offscreen.free()
|
offscreen.free()
|
||||||
|
|
||||||
|
|
||||||
if IMAGE_NAME not in bpy.data.images:
|
if not IMAGE_NAME in bpy.data.images:
|
||||||
bpy.data.images.new(IMAGE_NAME, WIDTH, HEIGHT)
|
bpy.data.images.new(IMAGE_NAME, WIDTH, HEIGHT)
|
||||||
image = bpy.data.images[IMAGE_NAME]
|
image = bpy.data.images[IMAGE_NAME]
|
||||||
image.scale(WIDTH, HEIGHT)
|
image.scale(WIDTH, HEIGHT)
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
sphinx==5.0.1
|
sphinx==4.1.1
|
||||||
|
|
||||||
# Sphinx dependencies that are important
|
# Sphinx dependencies that are important
|
||||||
Jinja2==3.1.2
|
Jinja2==3.0.1
|
||||||
Pygments==2.12.0
|
Pygments==2.10.0
|
||||||
docutils==0.17.1
|
docutils==0.17.1
|
||||||
snowballstemmer==2.2.0
|
snowballstemmer==2.1.0
|
||||||
babel==2.10.1
|
babel==2.9.1
|
||||||
requests==2.27.1
|
requests==2.26.0
|
||||||
|
|
||||||
# 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.
|
||||||
|
@@ -4,12 +4,6 @@ OpenGL Wrapper (bgl)
|
|||||||
|
|
||||||
.. module:: bgl
|
.. module:: bgl
|
||||||
|
|
||||||
.. warning::
|
|
||||||
|
|
||||||
This module is deprecated and will be removed in a future release,
|
|
||||||
when OpenGL is replaced by Metal and Vulkan.
|
|
||||||
Use the graphics API independent :mod:`gpu` module instead.
|
|
||||||
|
|
||||||
This module wraps OpenGL constants and functions, making them available from
|
This module wraps OpenGL constants and functions, making them available from
|
||||||
within Blender Python.
|
within Blender Python.
|
||||||
|
|
||||||
|
@@ -40,6 +40,15 @@ As well as pep8 we have additional conventions used for Blender Python scripts:
|
|||||||
- pep8 also defines that lines should not exceed 79 characters,
|
- pep8 also defines that lines should not exceed 79 characters,
|
||||||
we have decided that this is too restrictive so it is optional per script.
|
we have decided that this is too restrictive so it is optional per script.
|
||||||
|
|
||||||
|
Periodically we run checks for pep8 compliance on Blender scripts,
|
||||||
|
for scripts to be included in this check add this line as a comment at the top of the script:
|
||||||
|
|
||||||
|
``# <pep8 compliant>``
|
||||||
|
|
||||||
|
To enable line length checks use this instead:
|
||||||
|
|
||||||
|
``# <pep8-80 compliant>``
|
||||||
|
|
||||||
|
|
||||||
User Interface Layout
|
User Interface Layout
|
||||||
=====================
|
=====================
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user