Compare commits
4 Commits
active-fcu
...
tmp-gpu-co
Author | SHA1 | Date | |
---|---|---|---|
41406fcacf | |||
510d009f53 | |||
1c4203ae72 | |||
ba6ddf9e9e |
@@ -238,7 +238,6 @@ ForEachMacros:
|
|||||||
- LISTBASE_FOREACH_BACKWARD
|
- LISTBASE_FOREACH_BACKWARD
|
||||||
- LISTBASE_FOREACH_MUTABLE
|
- LISTBASE_FOREACH_MUTABLE
|
||||||
- LISTBASE_FOREACH_BACKWARD_MUTABLE
|
- LISTBASE_FOREACH_BACKWARD_MUTABLE
|
||||||
- LISTBASE_FOREACH_INDEX
|
|
||||||
- MAN_ITER_AXES_BEGIN
|
- MAN_ITER_AXES_BEGIN
|
||||||
- NODE_INSTANCE_HASH_ITER
|
- NODE_INSTANCE_HASH_ITER
|
||||||
- NODE_SOCKET_TYPES_BEGIN
|
- NODE_SOCKET_TYPES_BEGIN
|
||||||
@@ -253,8 +252,8 @@ ForEachMacros:
|
|||||||
- RNA_STRUCT_BEGIN_SKIP_RNA_TYPE
|
- RNA_STRUCT_BEGIN_SKIP_RNA_TYPE
|
||||||
- SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN
|
- SCULPT_VERTEX_DUPLICATES_AND_NEIGHBORS_ITER_BEGIN
|
||||||
- SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN
|
- SCULPT_VERTEX_NEIGHBORS_ITER_BEGIN
|
||||||
- SEQ_ALL_BEGIN
|
- SEQP_BEGIN
|
||||||
- SEQ_CURRENT_BEGIN
|
- SEQ_BEGIN
|
||||||
- SURFACE_QUAD_ITER_BEGIN
|
- SURFACE_QUAD_ITER_BEGIN
|
||||||
- foreach
|
- foreach
|
||||||
- ED_screen_areas_iter
|
- ED_screen_areas_iter
|
||||||
|
@@ -12,8 +12,12 @@ Checks: >
|
|||||||
|
|
||||||
-readability-misleading-indentation,
|
-readability-misleading-indentation,
|
||||||
|
|
||||||
|
-readability-else-after-return,
|
||||||
-readability-inconsistent-declaration-parameter-name,
|
-readability-inconsistent-declaration-parameter-name,
|
||||||
-readability-redundant-preprocessor,
|
-readability-redundant-preprocessor,
|
||||||
|
-readability-function-size,
|
||||||
|
-readability-function-size,
|
||||||
|
-readability-redundant-string-init,
|
||||||
-readability-redundant-member-init,
|
-readability-redundant-member-init,
|
||||||
-readability-const-return-type,
|
-readability-const-return-type,
|
||||||
-readability-static-accessed-through-instance,
|
-readability-static-accessed-through-instance,
|
||||||
@@ -31,6 +35,11 @@ Checks: >
|
|||||||
-bugprone-sizeof-expression,
|
-bugprone-sizeof-expression,
|
||||||
-bugprone-integer-division,
|
-bugprone-integer-division,
|
||||||
-bugprone-incorrect-roundings,
|
-bugprone-incorrect-roundings,
|
||||||
|
-bugprone-suspicious-string-compare,
|
||||||
|
-bugprone-not-null-terminated-result,
|
||||||
|
-bugprone-suspicious-missing-comma,
|
||||||
|
-bugprone-parent-virtual-call,
|
||||||
|
-bugprone-infinite-loop,
|
||||||
-bugprone-copy-constructor-init,
|
-bugprone-copy-constructor-init,
|
||||||
|
|
||||||
WarningsAsErrors: '*'
|
WarningsAsErrors: '*'
|
||||||
|
@@ -102,11 +102,6 @@ if(POLICY CMP0068)
|
|||||||
cmake_policy(SET CMP0068 NEW)
|
cmake_policy(SET CMP0068 NEW)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# find_package() uses <PackageName>_ROOT variables.
|
|
||||||
if(POLICY CMP0074)
|
|
||||||
cmake_policy(SET CMP0074 NEW)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# Load some macros.
|
# Load some macros.
|
||||||
include(build_files/cmake/macros.cmake)
|
include(build_files/cmake/macros.cmake)
|
||||||
@@ -188,7 +183,6 @@ if(APPLE)
|
|||||||
else()
|
else()
|
||||||
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" ON)
|
option(WITH_XR_OPENXR "Enable VR features through the OpenXR specification" ON)
|
||||||
endif()
|
endif()
|
||||||
option(WITH_GMP "Enable features depending on GMP (Exact Boolean)" ON)
|
|
||||||
|
|
||||||
# Compositor
|
# Compositor
|
||||||
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
|
option(WITH_COMPOSITOR "Enable the tile based nodal compositor" ON)
|
||||||
@@ -220,8 +214,6 @@ if(WITH_GHOST_X11)
|
|||||||
option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON)
|
option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(WITH_GMP "Use the gmp library for more accurate booleans" OFF)
|
|
||||||
|
|
||||||
# Misc...
|
# Misc...
|
||||||
option(WITH_HEADLESS "Build without graphical support (renderfarm, server mode only)" OFF)
|
option(WITH_HEADLESS "Build without graphical support (renderfarm, server mode only)" OFF)
|
||||||
mark_as_advanced(WITH_HEADLESS)
|
mark_as_advanced(WITH_HEADLESS)
|
||||||
@@ -436,10 +428,6 @@ if(WIN32)
|
|||||||
option(WITH_TBB_MALLOC_PROXY "Enable the TBB malloc replacement" ON)
|
option(WITH_TBB_MALLOC_PROXY "Enable the TBB malloc replacement" ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# This should be turned off when Blender enter beta/rc/release
|
|
||||||
option(WITH_EXPERIMENTAL_FEATURES "Enable experimental features (still need to enable them in the user preferences)" ON)
|
|
||||||
mark_as_advanced(WITH_EXPERIMENTAL_FEATURES)
|
|
||||||
|
|
||||||
# Unit testsing
|
# Unit testsing
|
||||||
option(WITH_GTESTS "Enable GTest unit testing" OFF)
|
option(WITH_GTESTS "Enable GTest unit testing" OFF)
|
||||||
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
|
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
|
||||||
@@ -1572,12 +1560,6 @@ endif()
|
|||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
|
||||||
# Make MSVC properly report the value of the __cplusplus preprocessor macro
|
|
||||||
# Available MSVC 15.7 (1914) and up, without this it reports 199711L regardless
|
|
||||||
# of the C++ standard chosen above
|
|
||||||
if(MSVC_VERSION GREATER 1913)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:__cplusplus")
|
|
||||||
endif()
|
|
||||||
elseif(
|
elseif(
|
||||||
CMAKE_COMPILER_IS_GNUCC OR
|
CMAKE_COMPILER_IS_GNUCC OR
|
||||||
CMAKE_C_COMPILER_ID MATCHES "Clang" OR
|
CMAKE_C_COMPILER_ID MATCHES "Clang" OR
|
||||||
@@ -1740,7 +1722,6 @@ if(FIRST_RUN)
|
|||||||
info_cfg_option(WITH_QUADRIFLOW)
|
info_cfg_option(WITH_QUADRIFLOW)
|
||||||
info_cfg_option(WITH_USD)
|
info_cfg_option(WITH_USD)
|
||||||
info_cfg_option(WITH_TBB)
|
info_cfg_option(WITH_TBB)
|
||||||
info_cfg_option(WITH_GMP)
|
|
||||||
|
|
||||||
info_cfg_text("Compiler Options:")
|
info_cfg_text("Compiler Options:")
|
||||||
info_cfg_option(WITH_BUILDINFO)
|
info_cfg_option(WITH_BUILDINFO)
|
||||||
|
@@ -57,6 +57,7 @@ include(cmake/zlib.cmake)
|
|||||||
include(cmake/openal.cmake)
|
include(cmake/openal.cmake)
|
||||||
include(cmake/png.cmake)
|
include(cmake/png.cmake)
|
||||||
include(cmake/jpeg.cmake)
|
include(cmake/jpeg.cmake)
|
||||||
|
include(cmake/boost.cmake)
|
||||||
include(cmake/blosc.cmake)
|
include(cmake/blosc.cmake)
|
||||||
include(cmake/pthreads.cmake)
|
include(cmake/pthreads.cmake)
|
||||||
include(cmake/openexr.cmake)
|
include(cmake/openexr.cmake)
|
||||||
@@ -88,8 +89,6 @@ include(cmake/python_site_packages.cmake)
|
|||||||
include(cmake/package_python.cmake)
|
include(cmake/package_python.cmake)
|
||||||
include(cmake/numpy.cmake)
|
include(cmake/numpy.cmake)
|
||||||
include(cmake/usd.cmake)
|
include(cmake/usd.cmake)
|
||||||
# Boost needs to be included after python.cmake due to the PYTHON_BINARY variable being needed.
|
|
||||||
include(cmake/boost.cmake)
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
# Rely on PugiXML compiled with OpenImageIO
|
# Rely on PugiXML compiled with OpenImageIO
|
||||||
else()
|
else()
|
||||||
@@ -118,7 +117,6 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT WIN32 OR ENABLE_MINGW64)
|
if(NOT WIN32 OR ENABLE_MINGW64)
|
||||||
include(cmake/gmp.cmake)
|
|
||||||
include(cmake/openjpeg.cmake)
|
include(cmake/openjpeg.cmake)
|
||||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -19,6 +19,17 @@
|
|||||||
set(BOOST_ADDRESS_MODEL 64)
|
set(BOOST_ADDRESS_MODEL 64)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
|
set(PYTHON_ARCH x64)
|
||||||
|
set(PYTHON_ARCH2 win-AMD64)
|
||||||
|
set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/amd64/)
|
||||||
|
else()
|
||||||
|
set(PYTHON_ARCH x86)
|
||||||
|
set(PYTHON_ARCH2 win32)
|
||||||
|
set(PYTHON_OUTPUTDIR ${BUILD_DIR}/python/src/external_python/pcbuild/win32/)
|
||||||
|
set(BOOST_ADDRESS_MODEL 32)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(BOOST_TOOLSET toolset=msvc-14.1)
|
set(BOOST_TOOLSET toolset=msvc-14.1)
|
||||||
set(BOOST_COMPILER_STRING -vc141)
|
set(BOOST_COMPILER_STRING -vc141)
|
||||||
|
|
||||||
@@ -49,21 +60,6 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_BOOST_PYTHON)
|
|
||||||
set(JAM_FILE ${BUILD_DIR}/boost.user-config.jam)
|
|
||||||
configure_file(${PATCH_DIR}/boost.user.jam.in ${JAM_FILE})
|
|
||||||
set(BOOST_PYTHON_OPTIONS
|
|
||||||
--with-python
|
|
||||||
--user-config=${JAM_FILE}
|
|
||||||
)
|
|
||||||
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
|
||||||
set(BOOST_PYTHON_OPTIONS
|
|
||||||
${BOOST_PYTHON_OPTIONS}
|
|
||||||
define=BOOST_DEBUG_PYTHON
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(BOOST_OPTIONS
|
set(BOOST_OPTIONS
|
||||||
--with-filesystem
|
--with-filesystem
|
||||||
--with-locale
|
--with-locale
|
||||||
@@ -80,7 +76,6 @@ set(BOOST_OPTIONS
|
|||||||
-sNO_LZMA=1
|
-sNO_LZMA=1
|
||||||
-sNO_ZSTD=1
|
-sNO_ZSTD=1
|
||||||
${BOOST_TOOLSET}
|
${BOOST_TOOLSET}
|
||||||
${BOOST_PYTHON_OPTIONS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
string(TOLOWER ${BUILD_MODE} BOOST_BUILD_TYPE)
|
string(TOLOWER ${BUILD_MODE} BOOST_BUILD_TYPE)
|
||||||
@@ -97,11 +92,3 @@ ExternalProject_Add(external_boost
|
|||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
|
INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WITH_BOOST_PYTHON)
|
|
||||||
add_dependencies(
|
|
||||||
external_boost
|
|
||||||
external_python
|
|
||||||
external_numpy
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
@@ -95,6 +95,8 @@ ExternalProject_Add(external_ffmpeg
|
|||||||
--disable-version3
|
--disable-version3
|
||||||
--disable-debug
|
--disable-debug
|
||||||
--enable-optimizations
|
--enable-optimizations
|
||||||
|
--disable-sse
|
||||||
|
--disable-ssse3
|
||||||
--enable-ffplay
|
--enable-ffplay
|
||||||
--disable-openssl
|
--disable-openssl
|
||||||
--disable-securetransport
|
--disable-securetransport
|
||||||
|
@@ -1,88 +0,0 @@
|
|||||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU General Public License
|
|
||||||
# as published by the Free Software Foundation; either version 2
|
|
||||||
# of the License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program; if not, write to the Free Software Foundation,
|
|
||||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ***** END GPL LICENSE BLOCK *****
|
|
||||||
|
|
||||||
set(GMP_EXTRA_ARGS -enable-cxx)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
# Shared for windows because static libs will drag in a libgcc dependency.
|
|
||||||
set(GMP_OPTIONS --disable-static --enable-shared --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32)
|
|
||||||
else()
|
|
||||||
set(GMP_OPTIONS --enable-static --disable-shared )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_gmp
|
|
||||||
URL ${GMP_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH MD5=${GMP_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/gmp
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/gmp ${GMP_OPTIONS} ${GMP_EXTRA_ARGS}
|
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make -j${MAKE_THREADS}
|
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make install
|
|
||||||
INSTALL_DIR ${LIBDIR}/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
if(MSVC)
|
|
||||||
set_target_properties(external_gmp PROPERTIES FOLDER Mingw)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_gmp after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
|
||||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/gmp/bin/libgmp-10.dll ${HARVEST_TARGET}/gmp/lib/libgmp-10.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib ${HARVEST_TARGET}/gmp/lib/libgmp-10.lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmp/include ${HARVEST_TARGET}/gmp/include
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Debug AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_gmp after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
|
||||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
# gmpxx is somewhat special, it builds on top of the C style gmp library but exposes C++ bindings
|
|
||||||
# given the C++ ABI between MSVC and mingw is not compatible, we need to build the bindings
|
|
||||||
# with MSVC, while GMP can only be build with mingw.
|
|
||||||
ExternalProject_Add(external_gmpxx
|
|
||||||
URL ${GMP_URI}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH MD5=${GMP_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/gmpxx
|
|
||||||
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_gmpxx.txt ${BUILD_DIR}/gmpxx/src/external_gmpxx/CMakeLists.txt &&
|
|
||||||
${CMAKE_COMMAND} -E copy ${PATCH_DIR}/config_gmpxx.h ${BUILD_DIR}/gmpxx/src/external_gmpxx/config.h
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/gmpxx ${DEFAULT_CMAKE_FLAGS} -DGMP_LIBRARY=${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib -DGMP_INCLUDE_DIR=${BUILD_DIR}/gmp/src/external_gmp -DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
INSTALL_DIR ${LIBDIR}/gmpxx
|
|
||||||
)
|
|
||||||
set_target_properties(external_gmpxx PROPERTIES FOLDER Mingw)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_gmpxx
|
|
||||||
external_gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add_Step(external_gmpxx after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmpxx/ ${HARVEST_TARGET}/gmp
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
|
|
||||||
endif()
|
|
@@ -89,8 +89,6 @@ harvest(freetype/include freetype/include "*.h")
|
|||||||
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
||||||
harvest(glew/include glew/include "*.h")
|
harvest(glew/include glew/include "*.h")
|
||||||
harvest(glew/lib glew/lib "*.a")
|
harvest(glew/lib glew/lib "*.a")
|
||||||
harvest(gmp/include gmp/include "*.h")
|
|
||||||
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(jpg/include jpeg/include "*.h")
|
harvest(jpg/include jpeg/include "*.h")
|
||||||
|
@@ -73,3 +73,4 @@ if(WIN32)
|
|||||||
external_flexbison
|
external_flexbison
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@@ -20,14 +20,6 @@ if(BUILD_MODE STREQUAL Debug)
|
|||||||
set(BLOSC_POST _d)
|
set(BLOSC_POST _d)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(OPENVDB_SHARED ON)
|
|
||||||
set(OPENVDB_STATIC OFF)
|
|
||||||
else()
|
|
||||||
set(OPENVDB_SHARED OFF)
|
|
||||||
set(OPENVDB_STATIC ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(OPENVDB_EXTRA_ARGS
|
set(OPENVDB_EXTRA_ARGS
|
||||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
-DBoost_USE_MULTITHREADED=ON
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
@@ -50,10 +42,8 @@ set(OPENVDB_EXTRA_ARGS
|
|||||||
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
|
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
# All libs live in openexr, even the ilmbase ones
|
# All libs live in openexr, even the ilmbase ones
|
||||||
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
|
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
-DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
|
-DOPENVDB_CORE_SHARED=Off
|
||||||
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
|
|
||||||
-DOPENVDB_BUILD_BINARIES=Off
|
-DOPENVDB_BUILD_BINARIES=Off
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -97,15 +87,13 @@ 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 ${HARVEST_TARGET}/openvdb/include
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(openvdb after_install
|
ExternalProject_Add_Step(openvdb after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb_d.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/libopenvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb_d.dll ${HARVEST_TARGET}/openvdb/bin/openvdb_d.dll
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -20,7 +20,6 @@ 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_WEBP "Enable building of oiio with webp support" OFF)
|
||||||
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
|
|
||||||
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
|
set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with")
|
||||||
|
|
||||||
if(NOT BUILD_MODE)
|
if(NOT BUILD_MODE)
|
||||||
@@ -195,6 +194,18 @@ set(DEFAULT_CMAKE_FLAGS
|
|||||||
${PLATFORM_CMAKE_FLAGS}
|
${PLATFORM_CMAKE_FLAGS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# We need both flavors to build the thumbnail dlls
|
||||||
|
if(MSVC12)
|
||||||
|
set(GENERATOR_32 "Visual Studio 12 2013")
|
||||||
|
set(GENERATOR_64 "Visual Studio 12 2013 Win64")
|
||||||
|
elseif(MSVC14)
|
||||||
|
set(GENERATOR_32 "Visual Studio 14 2015")
|
||||||
|
set(GENERATOR_64 "Visual Studio 14 2015 Win64")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
set(ZLIB_LIBRARY zlibstaticd${LIBEXT})
|
set(ZLIB_LIBRARY zlibstaticd${LIBEXT})
|
||||||
|
@@ -42,7 +42,7 @@ if(WIN32)
|
|||||||
URL_HASH MD5=${PYTHON_HASH}
|
URL_HASH MD5=${PYTHON_HASH}
|
||||||
PREFIX ${BUILD_DIR}/python
|
PREFIX ${BUILD_DIR}/python
|
||||||
CONFIGURE_COMMAND ""
|
CONFIGURE_COMMAND ""
|
||||||
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p x64 -c ${BUILD_MODE}
|
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p ${PYTHON_ARCH} -c ${BUILD_MODE}
|
||||||
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-underpth --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-underpth --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -312,11 +312,6 @@ set(NASM_HASH f4fd1329b1713e1ccd34b2fc121c4bcd278c9f91cc4cb205ae8fcd2e4728dd14)
|
|||||||
set(XR_OPENXR_SDK_VERSION 1.0.8)
|
set(XR_OPENXR_SDK_VERSION 1.0.8)
|
||||||
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
set(XR_OPENXR_SDK_URI https://github.com/KhronosGroup/OpenXR-SDK/archive/release-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
||||||
set(XR_OPENXR_SDK_HASH c6de63d2e0f9029aa58dfa97cad8ce07)
|
set(XR_OPENXR_SDK_HASH c6de63d2e0f9029aa58dfa97cad8ce07)
|
||||||
|
|
||||||
set(ISPC_VERSION v1.13.0)
|
set(ISPC_VERSION v1.13.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 4bf5e8d0020c4b9980faa702c1a6f25f)
|
set(ISPC_HASH 4bf5e8d0020c4b9980faa702c1a6f25f)
|
||||||
|
|
||||||
set(GMP_VERSION 6.2.0)
|
|
||||||
set(GMP_URI https://gmplib.org/download/gmp/gmp-${GMP_VERSION}.tar.xz)
|
|
||||||
set(GMP_HASH a325e3f09e6d91e62101e59f9bda3ec1)
|
|
||||||
|
@@ -374,96 +374,71 @@ NO_BUILD=false
|
|||||||
NO_CONFIRM=false
|
NO_CONFIRM=false
|
||||||
USE_CXX11=true
|
USE_CXX11=true
|
||||||
|
|
||||||
# Note about versions: Min is inclusive, Max is exclusive (i.e. XXX_VERSION_MIN <= ACTUAL_VERSION < XXX_VERSION_MAX)
|
|
||||||
# XXX_VERSION is officially supported/used version in official builds.
|
|
||||||
# XXX_VERSION_SHORT is used for various things, like preferred version (when distribution provides several of them),
|
|
||||||
# and to name shortcuts to built libraries' installation directories...
|
|
||||||
|
|
||||||
CLANG_FORMAT_VERSION_MIN="6.0"
|
CLANG_FORMAT_VERSION_MIN="6.0"
|
||||||
CLANG_FORMAT_VERSION_MAX="10.0"
|
|
||||||
|
|
||||||
PYTHON_VERSION="3.7.7"
|
PYTHON_VERSION="3.7.7"
|
||||||
PYTHON_VERSION_SHORT="3.7"
|
|
||||||
PYTHON_VERSION_MIN="3.7"
|
PYTHON_VERSION_MIN="3.7"
|
||||||
PYTHON_VERSION_MAX="3.9"
|
|
||||||
PYTHON_VERSION_INSTALLED=$PYTHON_VERSION_MIN
|
PYTHON_VERSION_INSTALLED=$PYTHON_VERSION_MIN
|
||||||
PYTHON_FORCE_BUILD=false
|
PYTHON_FORCE_BUILD=false
|
||||||
PYTHON_FORCE_REBUILD=false
|
PYTHON_FORCE_REBUILD=false
|
||||||
PYTHON_SKIP=false
|
PYTHON_SKIP=false
|
||||||
|
|
||||||
NUMPY_VERSION="1.17.5"
|
NUMPY_VERSION="1.17.0"
|
||||||
NUMPY_VERSION_SHORT="1.17"
|
|
||||||
NUMPY_VERSION_MIN="1.8"
|
NUMPY_VERSION_MIN="1.8"
|
||||||
NUMPY_VERSION_MAX="2.0"
|
|
||||||
NUMPY_FORCE_BUILD=false
|
NUMPY_FORCE_BUILD=false
|
||||||
NUMPY_FORCE_REBUILD=false
|
NUMPY_FORCE_REBUILD=false
|
||||||
NUMPY_SKIP=false
|
NUMPY_SKIP=false
|
||||||
|
|
||||||
BOOST_VERSION="1.70.0"
|
BOOST_VERSION="1.70.0"
|
||||||
BOOST_VERSION_SHORT="1.70"
|
|
||||||
BOOST_VERSION_MIN="1.49"
|
BOOST_VERSION_MIN="1.49"
|
||||||
BOOST_VERSION_MAX="2.0"
|
|
||||||
BOOST_FORCE_BUILD=false
|
BOOST_FORCE_BUILD=false
|
||||||
BOOST_FORCE_REBUILD=false
|
BOOST_FORCE_REBUILD=false
|
||||||
BOOST_SKIP=false
|
BOOST_SKIP=false
|
||||||
|
|
||||||
TBB_VERSION="2019"
|
TBB_VERSION="2019"
|
||||||
TBB_VERSION_SHORT="2019"
|
|
||||||
TBB_VERSION_UPDATE="_U9" # Used for source packages...
|
TBB_VERSION_UPDATE="_U9" # Used for source packages...
|
||||||
TBB_VERSION_MIN="2018"
|
TBB_VERSION_MIN="2018"
|
||||||
TBB_VERSION_MAX="2021"
|
|
||||||
TBB_FORCE_BUILD=false
|
TBB_FORCE_BUILD=false
|
||||||
TBB_FORCE_REBUILD=false
|
TBB_FORCE_REBUILD=false
|
||||||
TBB_SKIP=false
|
TBB_SKIP=false
|
||||||
|
|
||||||
OCIO_VERSION="1.1.1"
|
OCIO_VERSION="1.1.0"
|
||||||
OCIO_VERSION_SHORT="1.1"
|
|
||||||
OCIO_VERSION_MIN="1.0"
|
OCIO_VERSION_MIN="1.0"
|
||||||
OCIO_VERSION_MAX="1.2"
|
|
||||||
OCIO_FORCE_BUILD=false
|
OCIO_FORCE_BUILD=false
|
||||||
OCIO_FORCE_REBUILD=false
|
OCIO_FORCE_REBUILD=false
|
||||||
OCIO_SKIP=false
|
OCIO_SKIP=false
|
||||||
|
|
||||||
OPENEXR_VERSION="2.4.0"
|
OPENEXR_VERSION="2.4.0"
|
||||||
OPENEXR_VERSION_SHORT="2.4"
|
|
||||||
OPENEXR_VERSION_MIN="2.3"
|
OPENEXR_VERSION_MIN="2.3"
|
||||||
OPENEXR_VERSION_MAX="3.0"
|
|
||||||
OPENEXR_FORCE_BUILD=false
|
OPENEXR_FORCE_BUILD=false
|
||||||
OPENEXR_FORCE_REBUILD=false
|
OPENEXR_FORCE_REBUILD=false
|
||||||
OPENEXR_SKIP=false
|
OPENEXR_SKIP=false
|
||||||
_with_built_openexr=false
|
_with_built_openexr=false
|
||||||
|
|
||||||
OIIO_VERSION="2.1.15.0"
|
OIIO_VERSION="1.8.13"
|
||||||
OIIO_VERSION_SHORT="2.1"
|
OIIO_VERSION_MIN="1.8.13"
|
||||||
OIIO_VERSION_MIN="1.8"
|
OIIO_VERSION_MAX="99.99.0" # UNKNOWN currently # Not supported by current OSL...
|
||||||
OIIO_VERSION_MAX="3.0"
|
|
||||||
OIIO_FORCE_BUILD=false
|
OIIO_FORCE_BUILD=false
|
||||||
OIIO_FORCE_REBUILD=false
|
OIIO_FORCE_REBUILD=false
|
||||||
OIIO_SKIP=false
|
OIIO_SKIP=false
|
||||||
|
|
||||||
LLVM_VERSION="9.0.1"
|
LLVM_VERSION="9.0.1"
|
||||||
LLVM_VERSION_SHORT="9.0"
|
|
||||||
LLVM_VERSION_MIN="6.0"
|
LLVM_VERSION_MIN="6.0"
|
||||||
LLVM_VERSION_MAX="11.0"
|
|
||||||
LLVM_VERSION_FOUND=""
|
LLVM_VERSION_FOUND=""
|
||||||
LLVM_FORCE_BUILD=false
|
LLVM_FORCE_BUILD=false
|
||||||
LLVM_FORCE_REBUILD=false
|
LLVM_FORCE_REBUILD=false
|
||||||
LLVM_SKIP=false
|
LLVM_SKIP=false
|
||||||
|
|
||||||
# OSL needs to be compiled for now!
|
# OSL needs to be compiled for now!
|
||||||
OSL_VERSION="1.10.10"
|
OSL_VERSION="1.10.9"
|
||||||
OSL_VERSION_SHORT="1.10"
|
OSL_VERSION_MIN=$OSL_VERSION
|
||||||
OSL_VERSION_MIN="1.10"
|
|
||||||
OSL_VERSION_MAX="2.0"
|
|
||||||
OSL_FORCE_BUILD=false
|
OSL_FORCE_BUILD=false
|
||||||
OSL_FORCE_REBUILD=false
|
OSL_FORCE_REBUILD=false
|
||||||
OSL_SKIP=false
|
OSL_SKIP=false
|
||||||
|
|
||||||
# OpenSubdiv needs to be compiled for now
|
# OpenSubdiv needs to be compiled for now
|
||||||
OSD_VERSION="3.4.3"
|
OSD_VERSION="3.4.3"
|
||||||
OSD_VERSION_SHORT="3.4"
|
OSD_VERSION_MIN=$OSD_VERSION
|
||||||
OSD_VERSION_MIN="3.4"
|
|
||||||
OSD_VERSION_MAX="4.0"
|
|
||||||
OSD_FORCE_BUILD=false
|
OSD_FORCE_BUILD=false
|
||||||
OSD_FORCE_REBUILD=false
|
OSD_FORCE_REBUILD=false
|
||||||
OSD_SKIP=false
|
OSD_SKIP=false
|
||||||
@@ -472,69 +447,46 @@ OSD_SKIP=false
|
|||||||
OPENVDB_BLOSC_VERSION="1.5.0"
|
OPENVDB_BLOSC_VERSION="1.5.0"
|
||||||
|
|
||||||
OPENVDB_VERSION="7.0.0"
|
OPENVDB_VERSION="7.0.0"
|
||||||
OPENVDB_VERSION_SHORT="7.0"
|
OPENVDB_VERSION_MIN=$OPENVDB_VERSION
|
||||||
OPENVDB_VERSION_MIN="7.0"
|
|
||||||
OPENVDB_VERSION_MAX="8.0"
|
|
||||||
OPENVDB_FORCE_BUILD=false
|
OPENVDB_FORCE_BUILD=false
|
||||||
OPENVDB_FORCE_REBUILD=false
|
OPENVDB_FORCE_REBUILD=false
|
||||||
OPENVDB_SKIP=false
|
OPENVDB_SKIP=false
|
||||||
|
|
||||||
# Alembic needs to be compiled for now
|
# Alembic needs to be compiled for now
|
||||||
ALEMBIC_VERSION="1.7.12"
|
ALEMBIC_VERSION="1.7.12"
|
||||||
ALEMBIC_VERSION_SHORT="1.7"
|
ALEMBIC_VERSION_MIN=$ALEMBIC_VERSION
|
||||||
ALEMBIC_VERSION_MIN="1.7"
|
|
||||||
ALEMBIC_VERSION_MAX="2.0"
|
|
||||||
ALEMBIC_FORCE_BUILD=false
|
ALEMBIC_FORCE_BUILD=false
|
||||||
ALEMBIC_FORCE_REBUILD=false
|
ALEMBIC_FORCE_REBUILD=false
|
||||||
ALEMBIC_SKIP=false
|
ALEMBIC_SKIP=false
|
||||||
|
|
||||||
USD_VERSION="20.05"
|
USD_VERSION="20.05"
|
||||||
USD_VERSION_SHORT="20.05"
|
|
||||||
USD_VERSION_MIN="20.05"
|
|
||||||
USD_VERSION_MAX="20.06"
|
|
||||||
USD_FORCE_BUILD=false
|
USD_FORCE_BUILD=false
|
||||||
USD_FORCE_REBUILD=false
|
USD_FORCE_REBUILD=false
|
||||||
USD_SKIP=false
|
USD_SKIP=false
|
||||||
|
|
||||||
OPENCOLLADA_VERSION="1.6.68"
|
OPENCOLLADA_VERSION="1.6.68"
|
||||||
OPENCOLLADA_VERSION_SHORT="1.6"
|
|
||||||
OPENCOLLADA_VERSION_MIN="1.6.68"
|
|
||||||
OPENCOLLADA_VERSION_MAX="1.7"
|
|
||||||
OPENCOLLADA_FORCE_BUILD=false
|
OPENCOLLADA_FORCE_BUILD=false
|
||||||
OPENCOLLADA_FORCE_REBUILD=false
|
OPENCOLLADA_FORCE_REBUILD=false
|
||||||
OPENCOLLADA_SKIP=false
|
OPENCOLLADA_SKIP=false
|
||||||
|
|
||||||
EMBREE_VERSION="3.10.0"
|
EMBREE_VERSION="3.10.0"
|
||||||
EMBREE_VERSION_SHORT="3.10"
|
|
||||||
EMBREE_VERSION_MIN="3.10"
|
|
||||||
EMBREE_VERSION_MAX="4.0"
|
|
||||||
EMBREE_FORCE_BUILD=false
|
EMBREE_FORCE_BUILD=false
|
||||||
EMBREE_FORCE_REBUILD=false
|
EMBREE_FORCE_REBUILD=false
|
||||||
EMBREE_SKIP=false
|
EMBREE_SKIP=false
|
||||||
|
|
||||||
OIDN_VERSION="1.2.1"
|
OIDN_VERSION="1.0.0"
|
||||||
OIDN_VERSION_SHORT="1.2"
|
|
||||||
OIDN_VERSION_MIN="1.2.0"
|
|
||||||
OIDN_VERSION_MAX="1.3"
|
|
||||||
OIDN_FORCE_BUILD=false
|
OIDN_FORCE_BUILD=false
|
||||||
OIDN_FORCE_REBUILD=false
|
OIDN_FORCE_REBUILD=false
|
||||||
OIDN_SKIP=false
|
OIDN_SKIP=false
|
||||||
|
|
||||||
ISPC_VERSION="1.14.0"
|
|
||||||
|
|
||||||
FFMPEG_VERSION="4.2.3"
|
FFMPEG_VERSION="4.2.3"
|
||||||
FFMPEG_VERSION_SHORT="4.2"
|
FFMPEG_VERSION_MIN="2.8.4"
|
||||||
FFMPEG_VERSION_MIN="3.0"
|
|
||||||
FFMPEG_VERSION_MAX="5.0"
|
|
||||||
FFMPEG_FORCE_BUILD=false
|
FFMPEG_FORCE_BUILD=false
|
||||||
FFMPEG_FORCE_REBUILD=false
|
FFMPEG_FORCE_REBUILD=false
|
||||||
FFMPEG_SKIP=false
|
FFMPEG_SKIP=false
|
||||||
_ffmpeg_list_sep=";"
|
_ffmpeg_list_sep=";"
|
||||||
|
|
||||||
XR_OPENXR_VERSION="1.0.8"
|
XR_OPENXR_VERSION="1.0.8"
|
||||||
XR_OPENXR_VERSION_SHORT="1.0"
|
|
||||||
XR_OPENXR_VERSION_MIN="1.0.8"
|
|
||||||
XR_OPENXR_VERSION_MAX="2.0"
|
|
||||||
XR_OPENXR_FORCE_BUILD=false
|
XR_OPENXR_FORCE_BUILD=false
|
||||||
XR_OPENXR_FORCE_REBUILD=false
|
XR_OPENXR_FORCE_REBUILD=false
|
||||||
XR_OPENXR_SKIP=false
|
XR_OPENXR_SKIP=false
|
||||||
@@ -682,43 +634,36 @@ while true; do
|
|||||||
--ver-ocio)
|
--ver-ocio)
|
||||||
OCIO_VERSION="$2"
|
OCIO_VERSION="$2"
|
||||||
OCIO_VERSION_MIN=$OCIO_VERSION
|
OCIO_VERSION_MIN=$OCIO_VERSION
|
||||||
OCIO_VERSION_SHORT=$OCIO_VERSION
|
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--ver-oiio)
|
--ver-oiio)
|
||||||
OIIO_VERSION="$2"
|
OIIO_VERSION="$2"
|
||||||
OIIO_VERSION_MIN=$OIIO_VERSION
|
OIIO_VERSION_MIN=$OIIO_VERSION
|
||||||
OIIO_VERSION_SHORT=$OIIO_VERSION
|
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--ver-llvm)
|
--ver-llvm)
|
||||||
LLVM_VERSION="$2"
|
LLVM_VERSION="$2"
|
||||||
LLVM_VERSION_MIN=$LLVM_VERSION
|
LLVM_VERSION_MIN=$LLVM_VERSION
|
||||||
LLVM_VERSION_SHORT=$LLVM_VERSION
|
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--ver-osl)
|
--ver-osl)
|
||||||
OSL_VERSION="$2"
|
OSL_VERSION="$2"
|
||||||
OSL_VERSION_MIN=$OSL_VERSION
|
OSL_VERSION_MIN=$OSL_VERSION
|
||||||
OSL_VERSION_SHORT=$OSL_VERSION
|
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--ver-osd)
|
--ver-osd)
|
||||||
OSD_VERSION="$2"
|
OSD_VERSION="$2"
|
||||||
OSD_VERSION_MIN=$OSD_VERSION
|
OSD_VERSION_MIN=$OSD_VERSION
|
||||||
OSD_VERSION_SHORT=$OSD_VERSION
|
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--ver-openvdb)
|
--ver-openvdb)
|
||||||
OPENVDB_VERSION="$2"
|
OPENVDB_VERSION="$2"
|
||||||
OPENVDB_VERSION_MIN=$OPENVDB_VERSION
|
OPENVDB_VERSION_MIN=$OPENVDB_VERSION
|
||||||
OPENVDB_VERSION_SHORT=$OPENVDB_VERSION
|
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--ver-xr-openxr)
|
--ver-xr-openxr)
|
||||||
XR_OPENXR_VERSION="$2"
|
XR_OPENXR_VERSION="$2"
|
||||||
XR_OPENXR_VERSION_MIN=$XR_OPENXR_VERSION
|
XR_OPENXR_VERSION_MIN=$XR_OPENXR_VERSION
|
||||||
XR_OPENXR_VERSION_SHORT=$XR_OPENXR_VERSION
|
|
||||||
shift; shift; continue
|
shift; shift; continue
|
||||||
;;
|
;;
|
||||||
--build-all)
|
--build-all)
|
||||||
@@ -1060,8 +1005,6 @@ OIDN_SOURCE=( "https://github.com/OpenImageDenoise/oidn/releases/download/v${OID
|
|||||||
#~ OIDN_REPO_UID="dabfd9c80101edae9d25a710160d12d6d963c591"
|
#~ OIDN_REPO_UID="dabfd9c80101edae9d25a710160d12d6d963c591"
|
||||||
#~ OIDN_REPO_BRANCH="master"
|
#~ OIDN_REPO_BRANCH="master"
|
||||||
|
|
||||||
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" )
|
FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" )
|
||||||
|
|
||||||
XR_OPENXR_USE_REPO=false
|
XR_OPENXR_USE_REPO=false
|
||||||
@@ -1087,7 +1030,7 @@ Those libraries should be available as packages in all recent distributions (opt
|
|||||||
* libjpeg, libpng, libtiff, [openjpeg2], [libopenal].
|
* libjpeg, libpng, libtiff, [openjpeg2], [libopenal].
|
||||||
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
|
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
|
||||||
* libsqlite3, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp.
|
* libsqlite3, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp.
|
||||||
* libsdl2, libglew, [libgmp], [libglewmx], fontconfig.\""
|
* libsdl2, libglew, [libglewmx].\""
|
||||||
|
|
||||||
DEPS_SPECIFIC_INFO="\"BUILDABLE DEPENDENCIES:
|
DEPS_SPECIFIC_INFO="\"BUILDABLE DEPENDENCIES:
|
||||||
|
|
||||||
@@ -1327,7 +1270,7 @@ _init_python() {
|
|||||||
_src=$SRC/Python-$PYTHON_VERSION
|
_src=$SRC/Python-$PYTHON_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/python-$PYTHON_VERSION
|
_inst=$INST/python-$PYTHON_VERSION
|
||||||
_inst_shortcut=$INST/python-$PYTHON_VERSION_SHORT
|
_inst_shortcut=$INST/python-$PYTHON_VERSION_MIN
|
||||||
}
|
}
|
||||||
|
|
||||||
_update_deps_python() {
|
_update_deps_python() {
|
||||||
@@ -1402,7 +1345,7 @@ compile_Python() {
|
|||||||
INFO "If you want to force rebuild of this lib, use the --force-python option."
|
INFO "If you want to force rebuild of this lib, use the --force-python option."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
run_ldconfig "python-$PYTHON_VERSION_SHORT"
|
run_ldconfig "python-$PYTHON_VERSION_MIN"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
@@ -1412,8 +1355,8 @@ _init_numpy() {
|
|||||||
_src=$SRC/numpy-$NUMPY_VERSION
|
_src=$SRC/numpy-$NUMPY_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/numpy-$NUMPY_VERSION
|
_inst=$INST/numpy-$NUMPY_VERSION
|
||||||
_python=$INST/python-$PYTHON_VERSION_SHORT
|
_python=$INST/python-$PYTHON_VERSION
|
||||||
_site=lib/python$PYTHON_VERSION_SHORT/site-packages
|
_site=lib/python$PYTHON_VERSION_MIN/site-packages
|
||||||
_inst_shortcut=$_python/$_site/numpy
|
_inst_shortcut=$_python/$_site/numpy
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1492,7 +1435,7 @@ compile_Numpy() {
|
|||||||
_init_boost() {
|
_init_boost() {
|
||||||
_src=$SRC/boost-$BOOST_VERSION
|
_src=$SRC/boost-$BOOST_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/boost-$BOOST_VERSION_SHORT
|
_inst=$INST/boost-$BOOST_VERSION
|
||||||
_inst_shortcut=$INST/boost
|
_inst_shortcut=$INST/boost
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1585,7 +1528,7 @@ compile_Boost() {
|
|||||||
_init_tbb() {
|
_init_tbb() {
|
||||||
_src=$SRC/TBB-$TBB_VERSION
|
_src=$SRC/TBB-$TBB_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/tbb-$TBB_VERSION_SHORT
|
_inst=$INST/tbb-$TBB_VERSION
|
||||||
_inst_shortcut=$INST/tbb
|
_inst_shortcut=$INST/tbb
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1713,7 +1656,7 @@ _init_ocio() {
|
|||||||
else
|
else
|
||||||
_git=false
|
_git=false
|
||||||
fi
|
fi
|
||||||
_inst=$INST/ocio-$OCIO_VERSION_SHORT
|
_inst=$INST/ocio-$OCIO_VERSION
|
||||||
_inst_shortcut=$INST/ocio
|
_inst_shortcut=$INST/ocio
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1838,7 +1781,7 @@ compile_OCIO() {
|
|||||||
_init_openexr() {
|
_init_openexr() {
|
||||||
_src=$SRC/OpenEXR-$OPENEXR_VERSION
|
_src=$SRC/OpenEXR-$OPENEXR_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/openexr-$OPENEXR_VERSION_SHORT
|
_inst=$INST/openexr-$OPENEXR_VERSION
|
||||||
_inst_shortcut=$INST/openexr
|
_inst_shortcut=$INST/openexr
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1968,7 +1911,7 @@ compile_OPENEXR() {
|
|||||||
_init_oiio() {
|
_init_oiio() {
|
||||||
_src=$SRC/OpenImageIO-$OIIO_VERSION
|
_src=$SRC/OpenImageIO-$OIIO_VERSION
|
||||||
_git=true
|
_git=true
|
||||||
_inst=$INST/oiio-$OIIO_VERSION_SHORT
|
_inst=$INST/oiio-$OIIO_VERSION
|
||||||
_inst_shortcut=$INST/oiio
|
_inst_shortcut=$INST/oiio
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2123,7 +2066,7 @@ _init_llvm() {
|
|||||||
_src=$SRC/LLVM-$LLVM_VERSION
|
_src=$SRC/LLVM-$LLVM_VERSION
|
||||||
_src_clang=$SRC/CLANG-$LLVM_VERSION
|
_src_clang=$SRC/CLANG-$LLVM_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/llvm-$LLVM_VERSION_SHORT
|
_inst=$INST/llvm-$LLVM_VERSION
|
||||||
_inst_shortcut=$INST/llvm
|
_inst_shortcut=$INST/llvm
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2235,7 +2178,7 @@ compile_LLVM() {
|
|||||||
_init_osl() {
|
_init_osl() {
|
||||||
_src=$SRC/OpenShadingLanguage-$OSL_VERSION
|
_src=$SRC/OpenShadingLanguage-$OSL_VERSION
|
||||||
_git=true
|
_git=true
|
||||||
_inst=$INST/osl-$OSL_VERSION_SHORT
|
_inst=$INST/osl-$OSL_VERSION
|
||||||
_inst_shortcut=$INST/osl
|
_inst_shortcut=$INST/osl
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2380,7 +2323,7 @@ compile_OSL() {
|
|||||||
_init_osd() {
|
_init_osd() {
|
||||||
_src=$SRC/OpenSubdiv-$OSD_VERSION
|
_src=$SRC/OpenSubdiv-$OSD_VERSION
|
||||||
_git=true
|
_git=true
|
||||||
_inst=$INST/osd-$OSD_VERSION_SHORT
|
_inst=$INST/osd-$OSD_VERSION
|
||||||
_inst_shortcut=$INST/osd
|
_inst_shortcut=$INST/osd
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2594,7 +2537,7 @@ compile_BLOSC() {
|
|||||||
_init_openvdb() {
|
_init_openvdb() {
|
||||||
_src=$SRC/openvdb-$OPENVDB_VERSION
|
_src=$SRC/openvdb-$OPENVDB_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/openvdb-$OPENVDB_VERSION_SHORT
|
_inst=$INST/openvdb-$OPENVDB_VERSION
|
||||||
_inst_shortcut=$INST/openvdb
|
_inst_shortcut=$INST/openvdb
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2712,7 +2655,7 @@ compile_OPENVDB() {
|
|||||||
_init_alembic() {
|
_init_alembic() {
|
||||||
_src=$SRC/alembic-$ALEMBIC_VERSION
|
_src=$SRC/alembic-$ALEMBIC_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/alembic-$ALEMBIC_VERSION_SHORT
|
_inst=$INST/alembic-$ALEMBIC_VERSION
|
||||||
_inst_shortcut=$INST/alembic
|
_inst_shortcut=$INST/alembic
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2817,7 +2760,7 @@ compile_ALEMBIC() {
|
|||||||
_init_usd() {
|
_init_usd() {
|
||||||
_src=$SRC/USD-$USD_VERSION
|
_src=$SRC/USD-$USD_VERSION
|
||||||
_git=false
|
_git=false
|
||||||
_inst=$INST/usd-$USD_VERSION_SHORT
|
_inst=$INST/usd-$USD_VERSION
|
||||||
_inst_shortcut=$INST/usd
|
_inst_shortcut=$INST/usd
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2916,7 +2859,7 @@ compile_USD() {
|
|||||||
_init_opencollada() {
|
_init_opencollada() {
|
||||||
_src=$SRC/OpenCOLLADA-$OPENCOLLADA_VERSION
|
_src=$SRC/OpenCOLLADA-$OPENCOLLADA_VERSION
|
||||||
_git=true
|
_git=true
|
||||||
_inst=$INST/opencollada-$OPENCOLLADA_VERSION_SHORT
|
_inst=$INST/opencollada-$OPENCOLLADA_VERSION
|
||||||
_inst_shortcut=$INST/opencollada
|
_inst_shortcut=$INST/opencollada
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3022,7 +2965,7 @@ compile_OpenCOLLADA() {
|
|||||||
_init_embree() {
|
_init_embree() {
|
||||||
_src=$SRC/embree-$EMBREE_VERSION
|
_src=$SRC/embree-$EMBREE_VERSION
|
||||||
_git=true
|
_git=true
|
||||||
_inst=$INST/embree-$EMBREE_VERSION_SHORT
|
_inst=$INST/embree-$EMBREE_VERSION
|
||||||
_inst_shortcut=$INST/embree
|
_inst_shortcut=$INST/embree
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3132,83 +3075,10 @@ compile_Embree() {
|
|||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Build OpenImageDenoise
|
# Build OpenImageDenoise
|
||||||
|
|
||||||
_init_ispc() {
|
|
||||||
_src=$SRC/ispc-v$ISPC_VERSION
|
|
||||||
_inst=$INST/ispc-v$ISPC_VERSION
|
|
||||||
_inst_shortcut=$INST/ispc
|
|
||||||
}
|
|
||||||
|
|
||||||
_update_deps_ispc() {
|
|
||||||
OIDN_FORCE_REBUILD=true
|
|
||||||
if [ "$_is_building" = true ]; then
|
|
||||||
OIDN_FORCE_BUILD=true
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
clean_ispc() {
|
|
||||||
_init_ispc
|
|
||||||
if [ -d $_inst ]; then
|
|
||||||
_update_deps_ispc
|
|
||||||
fi
|
|
||||||
_clean
|
|
||||||
}
|
|
||||||
|
|
||||||
install_ISPC() {
|
|
||||||
# To be changed each time we make edits that would modify the compiled results!
|
|
||||||
ispc_magic=0
|
|
||||||
_init_ispc
|
|
||||||
|
|
||||||
# Clean install if needed!
|
|
||||||
magic_compile_check ispc-$ISPC_VERSION $ispc_magic
|
|
||||||
if [ $? -eq 1 ]; then
|
|
||||||
clean_ispc
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d $_inst ]; then
|
|
||||||
INFO "Installing Implicit SPMD Program Compiler v$ISPC_VERSION"
|
|
||||||
_is_building=true
|
|
||||||
|
|
||||||
# Rebuild dependencies as well!
|
|
||||||
_update_deps_ispc
|
|
||||||
|
|
||||||
prepare_opt
|
|
||||||
|
|
||||||
if [ ! -d $_src ]; then
|
|
||||||
mkdir -p $SRC
|
|
||||||
download ISPC_BINARY[@] "$_src.tar.gz"
|
|
||||||
INFO "Unpacking ISPC-v$ISPC_VERSION"
|
|
||||||
tar -C $SRC --transform "s,(.*/?)ispc-v$ISPC_VERSION-linux[^/]*(.*),\1ispc-v$ISPC_VERSION\2,x" \
|
|
||||||
-xf $_src.tar.gz
|
|
||||||
fi
|
|
||||||
|
|
||||||
mkdir -p $_inst
|
|
||||||
cp -r $_src/bin $_inst/bin
|
|
||||||
|
|
||||||
if [ -d $_inst ]; then
|
|
||||||
_create_inst_shortcut
|
|
||||||
else
|
|
||||||
ERROR "ISPC-v$ISPC_VERSION failed to install, exiting"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
magic_compile_set ispc-$ISPC_VERSION $ispc_magic
|
|
||||||
|
|
||||||
cd $CWD
|
|
||||||
INFO "Done compiling ISPC-v$ISPC_VERSION!"
|
|
||||||
_is_building=false
|
|
||||||
else
|
|
||||||
INFO "Own ISPC-v$ISPC_VERSION is up to date, nothing to do!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
_ispc_path_bin=$_inst/bin
|
|
||||||
run_ldconfig "ispc"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
_init_oidn() {
|
_init_oidn() {
|
||||||
_src=$SRC/oidn-$OIDN_VERSION
|
_src=$SRC/oidn-$OIDN_VERSION
|
||||||
_git=true
|
_git=true
|
||||||
_inst=$INST/oidn-$OIDN_VERSION_SHORT
|
_inst=$INST/oidn-$OIDN_VERSION
|
||||||
_inst_shortcut=$INST/oidn
|
_inst_shortcut=$INST/oidn
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3230,9 +3100,6 @@ compile_OIDN() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Latest OIDN requires ISPC compiler tool...
|
|
||||||
install_ISPC
|
|
||||||
|
|
||||||
# To be changed each time we make edits that would modify the compiled results!
|
# To be changed each time we make edits that would modify the compiled results!
|
||||||
oidn_magic=9
|
oidn_magic=9
|
||||||
_init_oidn
|
_init_oidn
|
||||||
@@ -3285,7 +3152,6 @@ compile_OIDN() {
|
|||||||
cmake_d="$cmake_d -D WITH_EXAMPLE=OFF"
|
cmake_d="$cmake_d -D WITH_EXAMPLE=OFF"
|
||||||
cmake_d="$cmake_d -D WITH_TEST=OFF"
|
cmake_d="$cmake_d -D WITH_TEST=OFF"
|
||||||
cmake_d="$cmake_d -D OIDN_STATIC_LIB=ON"
|
cmake_d="$cmake_d -D OIDN_STATIC_LIB=ON"
|
||||||
cmake_d="$cmake_d -D ISPC_DIR_HINT=$_ispc_path_bin"
|
|
||||||
|
|
||||||
if [ -d $INST/tbb ]; then
|
if [ -d $INST/tbb ]; then
|
||||||
make_d="$make_d TBB_ROOT=$INST/tbb"
|
make_d="$make_d TBB_ROOT=$INST/tbb"
|
||||||
@@ -3321,7 +3187,7 @@ compile_OIDN() {
|
|||||||
|
|
||||||
_init_ffmpeg() {
|
_init_ffmpeg() {
|
||||||
_src=$SRC/ffmpeg-$FFMPEG_VERSION
|
_src=$SRC/ffmpeg-$FFMPEG_VERSION
|
||||||
_inst=$INST/ffmpeg-$FFMPEG_VERSION_SHORT
|
_inst=$INST/ffmpeg-$FFMPEG_VERSION
|
||||||
_inst_shortcut=$INST/ffmpeg
|
_inst_shortcut=$INST/ffmpeg
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3450,7 +3316,7 @@ compile_FFmpeg() {
|
|||||||
_init_xr_openxr_sdk() {
|
_init_xr_openxr_sdk() {
|
||||||
_src=$SRC/XR-OpenXR-SDK-$XR_OPENXR_VERSION
|
_src=$SRC/XR-OpenXR-SDK-$XR_OPENXR_VERSION
|
||||||
_git=true
|
_git=true
|
||||||
_inst=$INST/xr-openxr-sdk-$XR_OPENXR_VERSION_SHORT
|
_inst=$INST/xr-openxr-sdk-$XR_OPENXR_VERSION
|
||||||
_inst_shortcut=$INST/xr-openxr-sdk
|
_inst_shortcut=$INST/xr-openxr-sdk
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3654,12 +3520,11 @@ install_DEB() {
|
|||||||
THEORA_DEV="libtheora-dev"
|
THEORA_DEV="libtheora-dev"
|
||||||
|
|
||||||
_packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev libtiff-dev \
|
_packages="gawk cmake cmake-curses-gui build-essential libjpeg-dev libpng-dev libtiff-dev \
|
||||||
git libfreetype6-dev libfontconfig-dev libx11-dev flex bison libxxf86vm-dev \
|
git libfreetype6-dev libx11-dev flex bison libxxf86vm-dev \
|
||||||
libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \
|
libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \
|
||||||
libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev \
|
libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev \
|
||||||
libopenal-dev libglew-dev yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV \
|
libopenal-dev libglew-dev yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV \
|
||||||
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev \
|
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev"
|
||||||
libgmp-dev"
|
|
||||||
# libglewmx-dev (broken in deb testing currently...)
|
# libglewmx-dev (broken in deb testing currently...)
|
||||||
|
|
||||||
VORBIS_USE=true
|
VORBIS_USE=true
|
||||||
@@ -3689,10 +3554,6 @@ install_DEB() {
|
|||||||
|
|
||||||
PRINT ""
|
PRINT ""
|
||||||
CLANG_FORMAT="clang-format"
|
CLANG_FORMAT="clang-format"
|
||||||
check_package_version_ge_DEB $CLANG_FORMAT $CLANG_FORMAT_VERSION
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
_packages="$_packages $CLANG_FORMAT"
|
|
||||||
else
|
|
||||||
check_package_version_ge_DEB $CLANG_FORMAT $CLANG_FORMAT_VERSION_MIN
|
check_package_version_ge_DEB $CLANG_FORMAT $CLANG_FORMAT_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
_packages="$_packages $CLANG_FORMAT"
|
_packages="$_packages $CLANG_FORMAT"
|
||||||
@@ -3701,7 +3562,6 @@ install_DEB() {
|
|||||||
WARNING "clang-format $CLANG_FORMAT_VERSION_MIN or higher not found, this is NOT needed to get Blender compiling..."
|
WARNING "clang-format $CLANG_FORMAT_VERSION_MIN or higher not found, this is NOT needed to get Blender compiling..."
|
||||||
PRINT ""
|
PRINT ""
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$WITH_JACK" = true ]; then
|
if [ "$WITH_JACK" = true ]; then
|
||||||
_packages="$_packages libspnav-dev"
|
_packages="$_packages libspnav-dev"
|
||||||
@@ -3815,7 +3675,7 @@ install_DEB() {
|
|||||||
INFO "Forced Python/NumPy building, as requested..."
|
INFO "Forced Python/NumPy building, as requested..."
|
||||||
_do_compile_python=true
|
_do_compile_python=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB python3-dev $PYTHON_VERSION_MIN $PYTHON_VERSION_MAX
|
check_package_version_ge_DEB python3-dev $PYTHON_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_DEB python3-dev` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_DEB python3-dev` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
||||||
|
|
||||||
@@ -3857,7 +3717,7 @@ install_DEB() {
|
|||||||
INFO "Forced Boost building, as requested..."
|
INFO "Forced Boost building, as requested..."
|
||||||
compile_Boost
|
compile_Boost
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB libboost-dev $BOOST_VERSION_MIN $BOOST_VERSION_MAX
|
check_package_version_ge_DEB libboost-dev $BOOST_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_DEB libboost-dev
|
install_packages_DEB libboost-dev
|
||||||
|
|
||||||
@@ -3878,7 +3738,7 @@ install_DEB() {
|
|||||||
INFO "Forced TBB building, as requested..."
|
INFO "Forced TBB building, as requested..."
|
||||||
compile_TBB
|
compile_TBB
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB libtbb-dev $TBB_VERSION_MIN $TBB_VERSION_MAX
|
check_package_version_ge_DEB libtbb-dev $TBB_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_DEB libtbb-dev
|
install_packages_DEB libtbb-dev
|
||||||
clean_TBB
|
clean_TBB
|
||||||
@@ -3895,13 +3755,14 @@ install_DEB() {
|
|||||||
INFO "Forced OpenColorIO building, as requested..."
|
INFO "Forced OpenColorIO building, as requested..."
|
||||||
compile_OCIO
|
compile_OCIO
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB libopencolorio-dev $OCIO_VERSION_MIN $OCIO_VERSION_MAX
|
# XXX Always force build of own OCIO, until linux distro guys update their package to default libyaml-cpp ver (0.5)!
|
||||||
if [ $? -eq 0 ]; then
|
#check_package_version_ge_DEB libopencolorio-dev $OCIO_VERSION_MIN
|
||||||
install_packages_DEB libopencolorio-dev
|
#if [ $? -eq 0 ]; then
|
||||||
clean_OCIO
|
#install_packages_DEB libopencolorio-dev
|
||||||
else
|
#clean_OCIO
|
||||||
|
#else
|
||||||
compile_OCIO
|
compile_OCIO
|
||||||
fi
|
#fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@@ -3912,7 +3773,7 @@ install_DEB() {
|
|||||||
INFO "Forced ILMBase/OpenEXR building, as requested..."
|
INFO "Forced ILMBase/OpenEXR building, as requested..."
|
||||||
compile_OPENEXR
|
compile_OPENEXR
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB libopenexr-dev $OPENEXR_VERSION_MIN $OPENEXR_VERSION_MAX
|
check_package_version_ge_DEB libopenexr-dev $OPENEXR_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_DEB libopenexr-dev
|
install_packages_DEB libopenexr-dev
|
||||||
OPENEXR_VERSION=`get_package_version_DEB libopenexr-dev`
|
OPENEXR_VERSION=`get_package_version_DEB libopenexr-dev`
|
||||||
@@ -3931,13 +3792,14 @@ install_DEB() {
|
|||||||
INFO "Forced OpenImageIO building, as requested..."
|
INFO "Forced OpenImageIO building, as requested..."
|
||||||
compile_OIIO
|
compile_OIIO
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB libopenimageio-dev $OIIO_VERSION_MIN $OIIO_VERSION_MAX
|
# XXX Debian Testing / Ubuntu 16.04 pulls in WAY too many deps (gtk2/opencv ?!) incl. OCIO build against libyaml-cpp0.3 so build for now...
|
||||||
if [ $? -eq 0 -a "$_with_built_openexr" = false ]; then
|
#check_package_version_ge_lt_DEB libopenimageio-dev $OIIO_VERSION_MIN $OIIO_VERSION_MAX
|
||||||
install_packages_DEB libopenimageio-dev
|
#if [ $? -eq 0 -a "$_with_built_openexr" = false ]; then
|
||||||
clean_OIIO
|
# install_packages_DEB libopenimageio-dev
|
||||||
else
|
# clean_OIIO
|
||||||
|
#else
|
||||||
compile_OIIO
|
compile_OIIO
|
||||||
fi
|
#fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@@ -3951,12 +3813,11 @@ install_DEB() {
|
|||||||
INFO "Forced LLVM building, as requested..."
|
INFO "Forced LLVM building, as requested..."
|
||||||
_do_compile_llvm=true
|
_do_compile_llvm=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB llvm-dev $LLVM_VERSION_MIN $LLVM_VERSION_MAX
|
check_package_DEB clang-$LLVM_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_DEB llvm-dev clang
|
install_packages_DEB llvm-$LLVM_VERSION_MIN-dev clang-$LLVM_VERSION_MIN
|
||||||
have_llvm=true
|
have_llvm=true
|
||||||
LLVM_VERSION=`get_package_version_DEB llvm-dev`
|
LLVM_VERSION_FOUND=$LLVM_VERSION_MIN
|
||||||
LLVM_VERSION_FOUND=$LLVM_VERSION
|
|
||||||
clean_LLVM
|
clean_LLVM
|
||||||
else
|
else
|
||||||
_do_compile_llvm=true
|
_do_compile_llvm=true
|
||||||
@@ -3982,14 +3843,9 @@ install_DEB() {
|
|||||||
INFO "Forced OpenShadingLanguage building, as requested..."
|
INFO "Forced OpenShadingLanguage building, as requested..."
|
||||||
_do_compile_osl=true
|
_do_compile_osl=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB libopenshadinglanguage-dev $OSL_VERSION_MIN $OSL_VERSION_MAX
|
# No package currently!
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
install_packages_DEB libopenshadinglanguage-dev
|
|
||||||
clean_OSL
|
|
||||||
else
|
|
||||||
_do_compile_osl=true
|
_do_compile_osl=true
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$_do_compile_osl" = true ]; then
|
if [ "$_do_compile_osl" = true ]; then
|
||||||
if [ "$have_llvm" = true ]; then
|
if [ "$have_llvm" = true ]; then
|
||||||
@@ -4020,7 +3876,7 @@ install_DEB() {
|
|||||||
INFO "Forced OpenVDB building, as requested..."
|
INFO "Forced OpenVDB building, as requested..."
|
||||||
compile_OPENVDB
|
compile_OPENVDB
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_DEB libopenvdb-dev $OPENVDB_VERSION_MIN $OPENVDB_VERSION_MAX
|
check_package_version_ge_DEB libopenvdb-dev $OPENVDB_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_DEB libopenvdb-dev libblosc-dev
|
install_packages_DEB libopenvdb-dev libblosc-dev
|
||||||
clean_OPENVDB
|
clean_OPENVDB
|
||||||
@@ -4081,14 +3937,8 @@ install_DEB() {
|
|||||||
INFO "Forced Embree building, as requested..."
|
INFO "Forced Embree building, as requested..."
|
||||||
_do_compile_embree=true
|
_do_compile_embree=true
|
||||||
else
|
else
|
||||||
# There is a package, but it does not provide everything that Blender needs...
|
# No package currently!
|
||||||
#~ check_package_version_ge_lt_DEB libembree-dev $EMBREE_VERSION_MIN $EMBREE_VERSION_MAX
|
|
||||||
#~ if [ $? -eq 0 ]; then
|
|
||||||
#~ install_packages_DEB libembree-dev
|
|
||||||
#~ clean_Embree
|
|
||||||
#~ else
|
|
||||||
_do_compile_embree=true
|
_do_compile_embree=true
|
||||||
#~ fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$_do_compile_embree" = true ]; then
|
if [ "$_do_compile_embree" = true ]; then
|
||||||
@@ -4124,7 +3974,7 @@ install_DEB() {
|
|||||||
# XXX Debian Testing / Ubuntu 16.04 finally includes FFmpeg, so check as usual
|
# XXX Debian Testing / Ubuntu 16.04 finally includes FFmpeg, so check as usual
|
||||||
check_package_DEB ffmpeg
|
check_package_DEB ffmpeg
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
check_package_version_ge_lt_DEB ffmpeg $FFMPEG_VERSION_MIN $FFMPEG_VERSION_MAX
|
check_package_version_ge_DEB ffmpeg $FFMPEG_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_DEB libavdevice-dev
|
install_packages_DEB libavdevice-dev
|
||||||
clean_FFmpeg
|
clean_FFmpeg
|
||||||
@@ -4320,12 +4170,12 @@ install_RPM() {
|
|||||||
OGG_DEV="libogg-devel"
|
OGG_DEV="libogg-devel"
|
||||||
THEORA_DEV="libtheora-devel"
|
THEORA_DEV="libtheora-devel"
|
||||||
|
|
||||||
_packages="gcc gcc-c++ git make cmake tar bzip2 xz findutils flex bison fontconfig-devel \
|
_packages="gcc gcc-c++ git make cmake tar bzip2 xz findutils flex bison \
|
||||||
libtiff-devel libjpeg-devel libpng-devel sqlite-devel fftw-devel SDL2-devel \
|
libtiff-devel libjpeg-devel libpng-devel sqlite-devel fftw-devel SDL2-devel \
|
||||||
libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \
|
libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \
|
||||||
wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \
|
wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \
|
||||||
glew-devel yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV patch \
|
glew-devel yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV patch \
|
||||||
libxml2-devel yaml-cpp-devel tinyxml-devel jemalloc-devel gmp-devel"
|
libxml2-devel yaml-cpp-devel tinyxml-devel jemalloc-devel"
|
||||||
|
|
||||||
OPENJPEG_USE=true
|
OPENJPEG_USE=true
|
||||||
VORBIS_USE=true
|
VORBIS_USE=true
|
||||||
@@ -4448,7 +4298,7 @@ install_RPM() {
|
|||||||
INFO "Forced Python/NumPy building, as requested..."
|
INFO "Forced Python/NumPy building, as requested..."
|
||||||
_do_compile_python=true
|
_do_compile_python=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_RPM python3-devel $PYTHON_VERSION_MIN $PYTHON_VERSION_MAX
|
check_package_version_ge_RPM python3-devel $PYTHON_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_RPM python3-devel` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_RPM python3-devel` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
||||||
|
|
||||||
@@ -4458,7 +4308,7 @@ install_RPM() {
|
|||||||
if [ "$NUMPY_SKIP" = true ]; then
|
if [ "$NUMPY_SKIP" = true ]; then
|
||||||
WARNING "Skipping NumPy installation, as requested..."
|
WARNING "Skipping NumPy installation, as requested..."
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_RPM python3-numpy $NUMPY_VERSION_MIN $NUMPY_VERSION_MAX
|
check_package_version_ge_RPM python3-numpy $NUMPY_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_RPM python3-numpy
|
install_packages_RPM python3-numpy
|
||||||
else
|
else
|
||||||
@@ -4491,7 +4341,7 @@ install_RPM() {
|
|||||||
INFO "Forced Boost building, as requested..."
|
INFO "Forced Boost building, as requested..."
|
||||||
_do_compile_boost=true
|
_do_compile_boost=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_RPM boost-devel $BOOST_VERSION_MIN $BOOST_VERSION_MAX
|
check_package_version_ge_RPM boost-devel $BOOST_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_RPM boost-devel
|
install_packages_RPM boost-devel
|
||||||
clean_Boost
|
clean_Boost
|
||||||
@@ -4518,7 +4368,7 @@ install_RPM() {
|
|||||||
INFO "Forced TBB building, as requested..."
|
INFO "Forced TBB building, as requested..."
|
||||||
compile_TBB
|
compile_TBB
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_RPM tbb-devel $TBB_VERSION_MIN $TBB_VERSION_MAX
|
check_package_version_ge_RPM tbb-devel $TBB_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_RPM tbb-devel
|
install_packages_RPM tbb-devel
|
||||||
clean_TBB
|
clean_TBB
|
||||||
@@ -4536,7 +4386,7 @@ install_RPM() {
|
|||||||
compile_OCIO
|
compile_OCIO
|
||||||
else
|
else
|
||||||
if [ "$RPM" = "SUSE" ]; then
|
if [ "$RPM" = "SUSE" ]; then
|
||||||
check_package_version_ge_lt_RPM OpenColorIO-devel $OCIO_VERSION_MIN $OCIO_VERSION_MAX
|
check_package_version_ge_RPM OpenColorIO-devel $OCIO_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_RPM OpenColorIO-devel
|
install_packages_RPM OpenColorIO-devel
|
||||||
clean_OCIO
|
clean_OCIO
|
||||||
@@ -4556,7 +4406,7 @@ install_RPM() {
|
|||||||
INFO "Forced ILMBase/OpenEXR building, as requested..."
|
INFO "Forced ILMBase/OpenEXR building, as requested..."
|
||||||
compile_OPENEXR
|
compile_OPENEXR
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_RPM openexr-devel $OPENEXR_VERSION_MIN $OPENEXR_VERSION_MAX
|
check_package_version_ge_RPM openexr-devel $OPENEXR_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_RPM openexr-devel
|
install_packages_RPM openexr-devel
|
||||||
OPENEXR_VERSION=`get_package_version_RPM openexr-devel`
|
OPENEXR_VERSION=`get_package_version_RPM openexr-devel`
|
||||||
@@ -4574,6 +4424,7 @@ install_RPM() {
|
|||||||
INFO "Forced OpenImageIO building, as requested..."
|
INFO "Forced OpenImageIO building, as requested..."
|
||||||
compile_OIIO
|
compile_OIIO
|
||||||
else
|
else
|
||||||
|
# XXX RPM distros pulls in too much and depends on old libs, so better to build for now...
|
||||||
#check_package_version_ge_lt_RPM OpenImageIO-devel $OIIO_VERSION_MIN $OIIO_VERSION_MAX
|
#check_package_version_ge_lt_RPM OpenImageIO-devel $OIIO_VERSION_MIN $OIIO_VERSION_MAX
|
||||||
#if [ $? -eq 0 -a $_with_built_openexr == false ]; then
|
#if [ $? -eq 0 -a $_with_built_openexr == false ]; then
|
||||||
# install_packages_RPM OpenImageIO-devel
|
# install_packages_RPM OpenImageIO-devel
|
||||||
@@ -4599,11 +4450,10 @@ install_RPM() {
|
|||||||
else
|
else
|
||||||
CLANG_DEV="clang-devel"
|
CLANG_DEV="clang-devel"
|
||||||
fi
|
fi
|
||||||
check_package_version_ge_lt_RPM llvm-devel $LLVM_VERSION_MIN $LLVM_VERSION_MAX
|
check_package_version_match_RPM $CLANG_DEV $LLVM_VERSION
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_RPM llvm-devel $CLANG_DEV
|
install_packages_RPM llvm-devel $CLANG_DEV
|
||||||
have_llvm=true
|
have_llvm=true
|
||||||
LLVM_VERSION=`get_package_version_RPM llvm-devel`
|
|
||||||
LLVM_VERSION_FOUND=$LLVM_VERSION
|
LLVM_VERSION_FOUND=$LLVM_VERSION
|
||||||
clean_LLVM
|
clean_LLVM
|
||||||
else
|
else
|
||||||
@@ -4630,19 +4480,9 @@ install_RPM() {
|
|||||||
INFO "Forced OpenShadingLanguage building, as requested..."
|
INFO "Forced OpenShadingLanguage building, as requested..."
|
||||||
_do_compile_osl=true
|
_do_compile_osl=true
|
||||||
else
|
else
|
||||||
if [ "$RPM" = "SUSE" ]; then
|
# No package currently!
|
||||||
OSL_DEV="OpenShadingLanguage-devel"
|
|
||||||
else
|
|
||||||
OSL_DEV="openshadinglanguage-devel"
|
|
||||||
fi
|
|
||||||
check_package_version_ge_lt_RPM $OSL_DEV $OSL_VERSION_MIN $OSL_VERSION_MAX
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
install_packages_RPM $OSL_DEV
|
|
||||||
clean_OSL
|
|
||||||
else
|
|
||||||
_do_compile_osl=true
|
_do_compile_osl=true
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$_do_compile_osl" = true ]; then
|
if [ "$_do_compile_osl" = true ]; then
|
||||||
if [ "$have_llvm" = true ]; then
|
if [ "$have_llvm" = true ]; then
|
||||||
@@ -4729,14 +4569,8 @@ install_RPM() {
|
|||||||
INFO "Forced Embree building, as requested..."
|
INFO "Forced Embree building, as requested..."
|
||||||
_do_compile_embree=true
|
_do_compile_embree=true
|
||||||
else
|
else
|
||||||
# There is a package, but it does not provide everything that Blender needs...
|
# No package...
|
||||||
#~ check_package_version_ge_lt_RPM embree-devel $EMBREE_VERSION_MIN $EMBREE_VERSION_MAX
|
|
||||||
#~ if [ $? -eq 0 ]; then
|
|
||||||
#~ install_packages_RPM embree-devel
|
|
||||||
#~ clean_Embree
|
|
||||||
#~ else
|
|
||||||
_do_compile_embree=true
|
_do_compile_embree=true
|
||||||
#~ fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$_do_compile_embree" = true ]; then
|
if [ "$_do_compile_embree" = true ]; then
|
||||||
@@ -4769,7 +4603,7 @@ install_RPM() {
|
|||||||
INFO "Forced FFMpeg building, as requested..."
|
INFO "Forced FFMpeg building, as requested..."
|
||||||
compile_FFmpeg
|
compile_FFmpeg
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_RPM ffmpeg-devel $FFMPEG_VERSION_MIN $FFMPEG_VERSION_MAX
|
check_package_version_ge_RPM ffmpeg-devel $FFMPEG_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_RPM ffmpeg ffmpeg-devel
|
install_packages_RPM ffmpeg ffmpeg-devel
|
||||||
clean_FFmpeg
|
clean_FFmpeg
|
||||||
@@ -4898,10 +4732,10 @@ install_ARCH() {
|
|||||||
BASE_DEVEL=`pacman -Sgq base-devel | sed -e 's/^gcc$/gcc-multilib/g' | paste -s -d' '`
|
BASE_DEVEL=`pacman -Sgq base-devel | sed -e 's/^gcc$/gcc-multilib/g' | paste -s -d' '`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_packages="$BASE_DEVEL git cmake fontconfig \
|
_packages="$BASE_DEVEL git cmake \
|
||||||
libxi libxcursor libxrandr libxinerama glew libpng libtiff wget openal \
|
libxi libxcursor libxrandr libxinerama glew libpng libtiff wget openal \
|
||||||
$OPENJPEG_DEV $VORBIS_DEV $OGG_DEV $THEORA_DEV yasm sdl2 fftw \
|
$OPENJPEG_DEV $VORBIS_DEV $OGG_DEV $THEORA_DEV yasm sdl2 fftw \
|
||||||
libxml2 yaml-cpp tinyxml python-requests jemalloc gmp"
|
libxml2 yaml-cpp tinyxml python-requests jemalloc"
|
||||||
|
|
||||||
OPENJPEG_USE=true
|
OPENJPEG_USE=true
|
||||||
VORBIS_USE=true
|
VORBIS_USE=true
|
||||||
@@ -4989,7 +4823,7 @@ install_ARCH() {
|
|||||||
INFO "Forced Python/NumPy building, as requested..."
|
INFO "Forced Python/NumPy building, as requested..."
|
||||||
_do_compile_python=true
|
_do_compile_python=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH python $PYTHON_VERSION_MIN $PYTHON_VERSION_MAX
|
check_package_version_ge_ARCH python $PYTHON_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_ARCH python` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
PYTHON_VERSION_INSTALLED=$(echo `get_package_version_ARCH python` | sed -r 's/^([0-9]+\.[0-9]+).*/\1/')
|
||||||
|
|
||||||
@@ -4999,7 +4833,7 @@ install_ARCH() {
|
|||||||
if [ "$NUMPY_SKIP" = true ]; then
|
if [ "$NUMPY_SKIP" = true ]; then
|
||||||
WARNING "Skipping NumPy installation, as requested..."
|
WARNING "Skipping NumPy installation, as requested..."
|
||||||
else
|
else
|
||||||
check_package_version_ge_ARCH python-numpy $NUMPY_VERSION_MIN $NUMPY_VERSION_MAX
|
check_package_version_ge_ARCH python-numpy $NUMPY_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH python-numpy
|
install_packages_ARCH python-numpy
|
||||||
else
|
else
|
||||||
@@ -5031,7 +4865,7 @@ install_ARCH() {
|
|||||||
INFO "Forced Boost building, as requested..."
|
INFO "Forced Boost building, as requested..."
|
||||||
compile_Boost
|
compile_Boost
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH boost $BOOST_VERSION_MIN $BOOST_VERSION_MAX
|
check_package_version_ge_ARCH boost $BOOST_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH boost
|
install_packages_ARCH boost
|
||||||
clean_Boost
|
clean_Boost
|
||||||
@@ -5048,7 +4882,7 @@ install_ARCH() {
|
|||||||
INFO "Forced TBB building, as requested..."
|
INFO "Forced TBB building, as requested..."
|
||||||
compile_TBB
|
compile_TBB
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH intel-tbb $TBB_VERSION_MIN $TBB_VERSION_MAX
|
check_package_version_ge_ARCH intel-tbb $TBB_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH intel-tbb
|
install_packages_ARCH intel-tbb
|
||||||
clean_TBB
|
clean_TBB
|
||||||
@@ -5065,7 +4899,7 @@ install_ARCH() {
|
|||||||
INFO "Forced OpenColorIO building, as requested..."
|
INFO "Forced OpenColorIO building, as requested..."
|
||||||
compile_OCIO
|
compile_OCIO
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH opencolorio $OCIO_VERSION_MIN $OCIO_VERSION_MAX
|
check_package_version_ge_ARCH opencolorio $OCIO_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH opencolorio
|
install_packages_ARCH opencolorio
|
||||||
clean_OCIO
|
clean_OCIO
|
||||||
@@ -5082,7 +4916,7 @@ install_ARCH() {
|
|||||||
INFO "Forced ILMBase/OpenEXR building, as requested..."
|
INFO "Forced ILMBase/OpenEXR building, as requested..."
|
||||||
compile_OPENEXR
|
compile_OPENEXR
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH openexr $OPENEXR_VERSION_MIN $OPENEXR_VERSION_MAX
|
check_package_version_ge_ARCH openexr $OPENEXR_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH openexr
|
install_packages_ARCH openexr
|
||||||
OPENEXR_VERSION=`get_package_version_ARCH openexr`
|
OPENEXR_VERSION=`get_package_version_ARCH openexr`
|
||||||
@@ -5121,7 +4955,7 @@ install_ARCH() {
|
|||||||
INFO "Forced LLVM building, as requested..."
|
INFO "Forced LLVM building, as requested..."
|
||||||
_do_compile_llvm=true
|
_do_compile_llvm=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH llvm $LLVM_VERSION_MIN $LLVM_VERSION_MAX
|
check_package_version_match_ARCH llvm $LLVM_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH llvm clang
|
install_packages_ARCH llvm clang
|
||||||
have_llvm=true
|
have_llvm=true
|
||||||
@@ -5152,13 +4986,14 @@ install_ARCH() {
|
|||||||
INFO "Forced OpenShadingLanguage building, as requested..."
|
INFO "Forced OpenShadingLanguage building, as requested..."
|
||||||
_do_compile_osl=true
|
_do_compile_osl=true
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH openshadinglanguage $OSL_VERSION_MIN $OSL_VERSION_MAX
|
# XXX Compile for now due to requirement of LLVM 3.4 ...
|
||||||
if [ $? -eq 0 ]; then
|
#check_package_version_ge_ARCH openshadinglanguage $OSL_VERSION_MIN
|
||||||
install_packages_ARCH openshadinglanguage
|
#if [ $? -eq 0 ]; then
|
||||||
clean_OSL
|
# install_packages_ARCH openshadinglanguage
|
||||||
else
|
# clean_OSL
|
||||||
|
#else
|
||||||
_do_compile_osl=true
|
_do_compile_osl=true
|
||||||
fi
|
#fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$_do_compile_osl" = true ]; then
|
if [ "$_do_compile_osl" = true ]; then
|
||||||
@@ -5178,7 +5013,7 @@ install_ARCH() {
|
|||||||
INFO "Forced OpenSubdiv building, as requested..."
|
INFO "Forced OpenSubdiv building, as requested..."
|
||||||
compile_OSD
|
compile_OSD
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH opensubdiv $OSD_VERSION_MIN $OSD_VERSION_MAX
|
check_package_version_ge_ARCH opensubdiv $OSD_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH opensubdiv
|
install_packages_ARCH opensubdiv
|
||||||
clean_OSD
|
clean_OSD
|
||||||
@@ -5195,7 +5030,7 @@ install_ARCH() {
|
|||||||
INFO "Forced OpenVDB building, as requested..."
|
INFO "Forced OpenVDB building, as requested..."
|
||||||
compile_OPENVDB
|
compile_OPENVDB
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH openvdb $OPENVDB_VERSION_MIN $OPENVDB_VERSION_MAX
|
check_package_version_ge_ARCH openvdb $OPENVDB_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH openvdb
|
install_packages_ARCH openvdb
|
||||||
clean_OPENVDB
|
clean_OPENVDB
|
||||||
@@ -5260,14 +5095,13 @@ install_ARCH() {
|
|||||||
INFO "Forced Embree building, as requested..."
|
INFO "Forced Embree building, as requested..."
|
||||||
_do_compile_embree=true
|
_do_compile_embree=true
|
||||||
else
|
else
|
||||||
# There is a package, but it does not provide everything that Blender needs...
|
check_package_ARCH embree
|
||||||
#~ check_package_version_ge_lt_ARCH embree $EMBREE_VERSION_MIN $EMBREE_VERSION_MAX
|
if [ $? -eq 0 ]; then
|
||||||
#~ if [ $? -eq 0 ]; then
|
install_packages_ARCH embree
|
||||||
#~ install_packages_ARCH embree
|
clean_Embree
|
||||||
#~ clean_Embree
|
else
|
||||||
#~ else
|
|
||||||
_do_compile_embree=true
|
_do_compile_embree=true
|
||||||
#~ fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$_do_compile_embree" = true ]; then
|
if [ "$_do_compile_embree" = true ]; then
|
||||||
@@ -5300,7 +5134,7 @@ install_ARCH() {
|
|||||||
INFO "Forced FFMpeg building, as requested..."
|
INFO "Forced FFMpeg building, as requested..."
|
||||||
compile_FFmpeg
|
compile_FFmpeg
|
||||||
else
|
else
|
||||||
check_package_version_ge_lt_ARCH ffmpeg $FFMPEG_VERSION_MIN $FFMPEG_VERSION_MAX
|
check_package_version_ge_ARCH ffmpeg $FFMPEG_VERSION_MIN
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
install_packages_ARCH ffmpeg
|
install_packages_ARCH ffmpeg
|
||||||
clean_FFmpeg
|
clean_FFmpeg
|
||||||
@@ -5577,8 +5411,7 @@ print_info() {
|
|||||||
|
|
||||||
_buildargs="-U *SNDFILE* -U PYTHON* -U *BOOST* -U *Boost* -U *TBB*"
|
_buildargs="-U *SNDFILE* -U PYTHON* -U *BOOST* -U *Boost* -U *TBB*"
|
||||||
_buildargs="$_buildargs -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CYCLES*"
|
_buildargs="$_buildargs -U *OPENCOLORIO* -U *OPENEXR* -U *OPENIMAGEIO* -U *LLVM* -U *CYCLES*"
|
||||||
_buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *BLOSC* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC* -U *USD*"
|
_buildargs="$_buildargs -U *OPENSUBDIV* -U *OPENVDB* -U *COLLADA* -U *FFMPEG* -U *ALEMBIC* -U *USD*"
|
||||||
_buildargs="$_buildargs -U *EMBREE* -U *OPENIMAGEDENOISE* -U *OPENXR*"
|
|
||||||
|
|
||||||
_1="-D WITH_CODEC_SNDFILE=ON"
|
_1="-D WITH_CODEC_SNDFILE=ON"
|
||||||
PRINT " $_1"
|
PRINT " $_1"
|
||||||
|
@@ -1,4 +0,0 @@
|
|||||||
using python : @PYTHON_SHORT_VERSION@ : @PYTHON_BINARY@
|
|
||||||
: @LIBDIR@/python/include @LIBDIR@/python/include/python@PYTHON_SHORT_VERSION@m/
|
|
||||||
: @LIBDIR@/python/libs
|
|
||||||
;
|
|
@@ -1,22 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.1)
|
|
||||||
project(libgmpxx)
|
|
||||||
|
|
||||||
include_directories(. cxx ${GMP_INCLUDE_DIR})
|
|
||||||
add_definitions(-D__GMP_WITHIN_GMPXX)
|
|
||||||
add_library(libgmpxx SHARED
|
|
||||||
cxx/dummy.cc
|
|
||||||
cxx/isfuns.cc
|
|
||||||
cxx/ismpf.cc
|
|
||||||
cxx/ismpq.cc
|
|
||||||
cxx/ismpz.cc
|
|
||||||
cxx/ismpznw.cc
|
|
||||||
cxx/limits.cc
|
|
||||||
cxx/osdoprnti.cc
|
|
||||||
cxx/osfuns.cc
|
|
||||||
cxx/osmpf.cc
|
|
||||||
cxx/osmpq.cc
|
|
||||||
cxx/osmpz.cc
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(libgmpxx ${GMP_LIBRARY})
|
|
||||||
install(TARGETS libgmpxx DESTINATION lib)
|
|
@@ -1,668 +0,0 @@
|
|||||||
/* config.h. Generated from config.in by configure. */
|
|
||||||
/* config.in. Generated from configure.ac by autoheader. */
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
Copyright 1996-2020 Free Software Foundation, Inc.
|
|
||||||
|
|
||||||
This file is part of the GNU MP Library.
|
|
||||||
|
|
||||||
The GNU MP Library is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of either:
|
|
||||||
|
|
||||||
* the GNU Lesser General Public License as published by the Free
|
|
||||||
Software Foundation; either version 3 of the License, or (at your
|
|
||||||
option) any later version.
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
* the GNU General Public License as published by the Free Software
|
|
||||||
Foundation; either version 2 of the License, or (at your option) any
|
|
||||||
later version.
|
|
||||||
|
|
||||||
or both in parallel, as here.
|
|
||||||
|
|
||||||
The GNU MP Library is distributed in the hope that it will be useful, but
|
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
||||||
for more details.
|
|
||||||
|
|
||||||
You should have received copies of the GNU General Public License and the
|
|
||||||
GNU Lesser General Public License along with the GNU MP Library. If not,
|
|
||||||
see https://www.gnu.org/licenses/.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Define if building universal (internal helper macro) */
|
|
||||||
/* #undef AC_APPLE_UNIVERSAL_BUILD */
|
|
||||||
|
|
||||||
/* The gmp-mparam.h file (a string) the tune program should suggest updating.
|
|
||||||
*/
|
|
||||||
#define GMP_MPARAM_H_SUGGEST "./mpn/x86_64/coreisbr/gmp-mparam.h"
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `alarm' function. */
|
|
||||||
#define HAVE_ALARM 1
|
|
||||||
|
|
||||||
/* Define to 1 if alloca() works (via gmp-impl.h). */
|
|
||||||
#define HAVE_ALLOCA 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
|
||||||
*/
|
|
||||||
/* #undef HAVE_ALLOCA_H */
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */
|
|
||||||
//#define HAVE_ATTRIBUTE_CONST 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */
|
|
||||||
//#define HAVE_ATTRIBUTE_MALLOC 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX)))
|
|
||||||
*/
|
|
||||||
//#define HAVE_ATTRIBUTE_MODE 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */
|
|
||||||
//#define HAVE_ATTRIBUTE_NORETURN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `attr_get' function. */
|
|
||||||
/* #undef HAVE_ATTR_GET */
|
|
||||||
|
|
||||||
/* Define to 1 if tests/libtests has calling conventions checking for the CPU
|
|
||||||
*/
|
|
||||||
/* #undef HAVE_CALLING_CONVENTIONS */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `clock' function. */
|
|
||||||
#define HAVE_CLOCK 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `clock_gettime' function */
|
|
||||||
/* #undef HAVE_CLOCK_GETTIME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `cputime' function. */
|
|
||||||
/* #undef HAVE_CPUTIME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_FGETC 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_FSCANF 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_OPTARG 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#define HAVE_DECL_SYS_ERRLIST 0
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#define HAVE_DECL_SYS_NERR 0
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#define HAVE_DECL_UNGETC 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#define HAVE_DECL_VFPRINTF 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
||||||
/* #undef HAVE_DLFCN_H */
|
|
||||||
|
|
||||||
/* Define one of the following to 1 for the format of a `double'.
|
|
||||||
If your format is not among these choices, or you don't know what it is,
|
|
||||||
then leave all undefined.
|
|
||||||
IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves
|
|
||||||
swapped, as used by ARM CPUs in little endian mode. */
|
|
||||||
/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */
|
|
||||||
#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1
|
|
||||||
/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */
|
|
||||||
/* #undef HAVE_DOUBLE_VAX_D */
|
|
||||||
/* #undef HAVE_DOUBLE_VAX_G */
|
|
||||||
/* #undef HAVE_DOUBLE_CRAY_CFP */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
|
||||||
#define HAVE_FCNTL_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <float.h> header file. */
|
|
||||||
#define HAVE_FLOAT_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `getpagesize' function. */
|
|
||||||
#define HAVE_GETPAGESIZE 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `getrusage' function. */
|
|
||||||
/* #undef HAVE_GETRUSAGE */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `getsysinfo' function. */
|
|
||||||
/* #undef HAVE_GETSYSINFO */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `gettimeofday' function. */
|
|
||||||
#define HAVE_GETTIMEOFDAY 1
|
|
||||||
|
|
||||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility))
|
|
||||||
and __attribute__ ((alias)) */
|
|
||||||
#define HAVE_HIDDEN_ALIAS 1
|
|
||||||
|
|
||||||
/* Define one of these to 1 for the host CPU family.
|
|
||||||
If your CPU is not in any of these families, leave all undefined.
|
|
||||||
For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_alpha */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_m68k */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_power */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_powerpc */
|
|
||||||
/* #undef HAVE_HOST_CPU_FAMILY_x86 */
|
|
||||||
#define HAVE_HOST_CPU_FAMILY_x86_64 1
|
|
||||||
|
|
||||||
/* Define one of the following to 1 for the host CPU, as per the output of
|
|
||||||
./config.guess. If your CPU is not listed here, leave all undefined. */
|
|
||||||
/* #undef HAVE_HOST_CPU_alphaev67 */
|
|
||||||
/* #undef HAVE_HOST_CPU_alphaev68 */
|
|
||||||
/* #undef HAVE_HOST_CPU_alphaev7 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68020 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68030 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68040 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68060 */
|
|
||||||
/* #undef HAVE_HOST_CPU_m68360 */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc604 */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc604e */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc750 */
|
|
||||||
/* #undef HAVE_HOST_CPU_powerpc7400 */
|
|
||||||
/* #undef HAVE_HOST_CPU_supersparc */
|
|
||||||
/* #undef HAVE_HOST_CPU_i386 */
|
|
||||||
/* #undef HAVE_HOST_CPU_i586 */
|
|
||||||
/* #undef HAVE_HOST_CPU_i686 */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentiummmx */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentiumpro */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium2 */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium3 */
|
|
||||||
/* #undef HAVE_HOST_CPU_pentium4 */
|
|
||||||
/* #undef HAVE_HOST_CPU_core2 */
|
|
||||||
/* #undef HAVE_HOST_CPU_nehalem */
|
|
||||||
/* #undef HAVE_HOST_CPU_westmere */
|
|
||||||
/* #undef HAVE_HOST_CPU_sandybridge */
|
|
||||||
#define HAVE_HOST_CPU_ivybridge 1
|
|
||||||
/* #undef HAVE_HOST_CPU_haswell */
|
|
||||||
/* #undef HAVE_HOST_CPU_broadwell */
|
|
||||||
/* #undef HAVE_HOST_CPU_skylake */
|
|
||||||
/* #undef HAVE_HOST_CPU_silvermont */
|
|
||||||
/* #undef HAVE_HOST_CPU_goldmont */
|
|
||||||
/* #undef HAVE_HOST_CPU_k8 */
|
|
||||||
/* #undef HAVE_HOST_CPU_k10 */
|
|
||||||
/* #undef HAVE_HOST_CPU_bulldozer */
|
|
||||||
/* #undef HAVE_HOST_CPU_piledriver */
|
|
||||||
/* #undef HAVE_HOST_CPU_steamroller */
|
|
||||||
/* #undef HAVE_HOST_CPU_excavator */
|
|
||||||
/* #undef HAVE_HOST_CPU_zen */
|
|
||||||
/* #undef HAVE_HOST_CPU_bobcat */
|
|
||||||
/* #undef HAVE_HOST_CPU_jaguar */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z900 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z990 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z9 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z10 */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_z196 */
|
|
||||||
|
|
||||||
/* Define to 1 iff we have a s390 with 64-bit registers. */
|
|
||||||
/* #undef HAVE_HOST_CPU_s390_zarch */
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `intmax_t'. */
|
|
||||||
#define HAVE_INTMAX_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `intptr_t'. */
|
|
||||||
#define HAVE_INTPTR_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#define HAVE_INTTYPES_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <invent.h> header file. */
|
|
||||||
/* #undef HAVE_INVENT_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
|
||||||
/* #undef HAVE_LANGINFO_H */
|
|
||||||
|
|
||||||
/* Define one of these to 1 for the endianness of `mp_limb_t'.
|
|
||||||
If the endianness is not a simple big or little, or you don't know what
|
|
||||||
it is, then leave both undefined. */
|
|
||||||
/* #undef HAVE_LIMB_BIG_ENDIAN */
|
|
||||||
#define HAVE_LIMB_LITTLE_ENDIAN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `localeconv' function. */
|
|
||||||
#define HAVE_LOCALECONV 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <locale.h> header file. */
|
|
||||||
#define HAVE_LOCALE_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `long double'. */
|
|
||||||
#define HAVE_LONG_DOUBLE 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `long long'. */
|
|
||||||
#define HAVE_LONG_LONG 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
|
|
||||||
/* #undef HAVE_MACHINE_HAL_SYSINFO_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <memory.h> header file. */
|
|
||||||
#define HAVE_MEMORY_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `memset' function. */
|
|
||||||
#define HAVE_MEMSET 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `mmap' function. */
|
|
||||||
/* #undef HAVE_MMAP */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `mprotect' function. */
|
|
||||||
#define HAVE_MPROTECT 1
|
|
||||||
|
|
||||||
/* Define to 1 each of the following for which a native (ie. CPU specific)
|
|
||||||
implementation of the corresponding routine exists. */
|
|
||||||
#define HAVE_NATIVE_mpn_add_n 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_add_n_sub_n */
|
|
||||||
#define HAVE_NATIVE_mpn_add_nc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addaddmul_1msb0 */
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh1_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh2_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh1_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh2_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_addlsh_nc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_n_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip2 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_1c */
|
|
||||||
#define HAVE_NATIVE_mpn_addmul_2 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_3 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_4 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_5 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_6 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_7 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_8 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_addmul_2s */
|
|
||||||
#define HAVE_NATIVE_mpn_and_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_andn_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_bdiv_dbm1c 1
|
|
||||||
#define HAVE_NATIVE_mpn_bdiv_q_1 1
|
|
||||||
#define HAVE_NATIVE_mpn_pi1_bdiv_q_1 1
|
|
||||||
#define HAVE_NATIVE_mpn_cnd_add_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_cnd_sub_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_com 1
|
|
||||||
#define HAVE_NATIVE_mpn_copyd 1
|
|
||||||
#define HAVE_NATIVE_mpn_copyi 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_div_qr_1n_pi1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_div_qr_2 */
|
|
||||||
#define HAVE_NATIVE_mpn_divexact_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_divexact_by3c */
|
|
||||||
#define HAVE_NATIVE_mpn_divrem_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_divrem_1c */
|
|
||||||
#define HAVE_NATIVE_mpn_divrem_2 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_gcd_1 */
|
|
||||||
#define HAVE_NATIVE_mpn_gcd_11 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_gcd_22 */
|
|
||||||
#define HAVE_NATIVE_mpn_hamdist 1
|
|
||||||
#define HAVE_NATIVE_mpn_invert_limb 1
|
|
||||||
#define HAVE_NATIVE_mpn_ior_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_iorn_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_lshift 1
|
|
||||||
#define HAVE_NATIVE_mpn_lshiftc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_lshsub_n */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mod_1 */
|
|
||||||
#define HAVE_NATIVE_mpn_mod_1_1p 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mod_1c */
|
|
||||||
#define HAVE_NATIVE_mpn_mod_1s_2p 1
|
|
||||||
#define HAVE_NATIVE_mpn_mod_1s_4p 1
|
|
||||||
#define HAVE_NATIVE_mpn_mod_34lsub1 1
|
|
||||||
#define HAVE_NATIVE_mpn_modexact_1_odd 1
|
|
||||||
#define HAVE_NATIVE_mpn_modexact_1c_odd 1
|
|
||||||
#define HAVE_NATIVE_mpn_mul_1 1
|
|
||||||
#define HAVE_NATIVE_mpn_mul_1c 1
|
|
||||||
#define HAVE_NATIVE_mpn_mul_2 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_3 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_4 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_5 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_mul_6 */
|
|
||||||
#define HAVE_NATIVE_mpn_mul_basecase 1
|
|
||||||
#define HAVE_NATIVE_mpn_mullo_basecase 1
|
|
||||||
#define HAVE_NATIVE_mpn_nand_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_nior_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_popcount 1
|
|
||||||
#define HAVE_NATIVE_mpn_preinv_divrem_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */
|
|
||||||
#define HAVE_NATIVE_mpn_redc_1 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_redc_2 */
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh1_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh2_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsblsh1_nc 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_rsblsh2_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_rsblsh_nc */
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1add_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1add_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1sub_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_rsh1sub_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_rshift 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sbpi1_bdiv_r */
|
|
||||||
#define HAVE_NATIVE_mpn_sqr_basecase 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sqr_diagonal */
|
|
||||||
#define HAVE_NATIVE_mpn_sqr_diag_addlsh1 1
|
|
||||||
#define HAVE_NATIVE_mpn_sub_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_sub_nc 1
|
|
||||||
#define HAVE_NATIVE_mpn_sublsh1_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_sublsh2_n 1
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_n */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh1_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh2_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_nc */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh1_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh2_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_n_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh1_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh2_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_sublsh_nc_ip1 */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_submul_1c */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_tabselect */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_umul_ppmm */
|
|
||||||
/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */
|
|
||||||
#define HAVE_NATIVE_mpn_xor_n 1
|
|
||||||
#define HAVE_NATIVE_mpn_xnor_n 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `nl_langinfo' function. */
|
|
||||||
/* #undef HAVE_NL_LANGINFO */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <nl_types.h> header file. */
|
|
||||||
/* #undef HAVE_NL_TYPES_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `obstack_vprintf' function. */
|
|
||||||
/* #undef HAVE_OBSTACK_VPRINTF */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `popen' function. */
|
|
||||||
#define HAVE_POPEN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `processor_info' function. */
|
|
||||||
/* #undef HAVE_PROCESSOR_INFO */
|
|
||||||
|
|
||||||
/* Define to 1 if <sys/pstat.h> `struct pst_processor' exists and contains
|
|
||||||
`psp_iticksperclktick'. */
|
|
||||||
/* #undef HAVE_PSP_ITICKSPERCLKTICK */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `pstat_getprocessor' function. */
|
|
||||||
/* #undef HAVE_PSTAT_GETPROCESSOR */
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `ptrdiff_t'. */
|
|
||||||
#define HAVE_PTRDIFF_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `quad_t'. */
|
|
||||||
/* #undef HAVE_QUAD_T */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `raise' function. */
|
|
||||||
#define HAVE_RAISE 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `read_real_time' function. */
|
|
||||||
/* #undef HAVE_READ_REAL_TIME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sigaction' function. */
|
|
||||||
/* #undef HAVE_SIGACTION */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sigaltstack' function. */
|
|
||||||
/* #undef HAVE_SIGALTSTACK */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sigstack' function. */
|
|
||||||
/* #undef HAVE_SIGSTACK */
|
|
||||||
|
|
||||||
/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */
|
|
||||||
#define HAVE_SPEED_CYCLECOUNTER 2
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sstream> header file. */
|
|
||||||
#define HAVE_SSTREAM 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `stack_t'. */
|
|
||||||
/* #undef HAVE_STACK_T */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
|
||||||
#define HAVE_STDINT_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
||||||
#define HAVE_STDLIB_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `std::locale'. */
|
|
||||||
#define HAVE_STD__LOCALE 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strchr' function. */
|
|
||||||
#define HAVE_STRCHR 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strerror' function. */
|
|
||||||
#define HAVE_STRERROR 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <strings.h> header file. */
|
|
||||||
#define HAVE_STRINGS_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <string.h> header file. */
|
|
||||||
#define HAVE_STRING_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strnlen' function. */
|
|
||||||
#define HAVE_STRNLEN 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strtol' function. */
|
|
||||||
#define HAVE_STRTOL 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strtoul' function. */
|
|
||||||
#define HAVE_STRTOUL 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sysconf' function. */
|
|
||||||
/* #undef HAVE_SYSCONF */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sysctl' function. */
|
|
||||||
/* #undef HAVE_SYSCTL */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `sysctlbyname' function. */
|
|
||||||
/* #undef HAVE_SYSCTLBYNAME */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `syssgi' function. */
|
|
||||||
/* #undef HAVE_SYSSGI */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/attributes.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_ATTRIBUTES_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/iograph.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_IOGRAPH_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_MMAN_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
|
||||||
#define HAVE_SYS_PARAM_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/processor.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_PROCESSOR_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/pstat.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_PSTAT_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_RESOURCE_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
||||||
#define HAVE_SYS_STAT_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/sysctl.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSCTL_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/sysinfo.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSINFO_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/syssgi.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSSGI_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/systemcfg.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_SYSTEMCFG_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/times.h> header file. */
|
|
||||||
/* #undef HAVE_SYS_TIMES_H */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
|
||||||
#define HAVE_SYS_TIME_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
||||||
#define HAVE_SYS_TYPES_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `times' function. */
|
|
||||||
/* #undef HAVE_TIMES */
|
|
||||||
|
|
||||||
/* Define to 1 if the system has the type `uint_least32_t'. */
|
|
||||||
#define HAVE_UINT_LEAST32_T 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <unistd.h> header file. */
|
|
||||||
#define HAVE_UNISTD_H 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vsnprintf' function and it works properly. */
|
|
||||||
/* #undef HAVE_VSNPRINTF */
|
|
||||||
|
|
||||||
/* Define to 1 for Windos/64 */
|
|
||||||
#define HOST_DOS64 1
|
|
||||||
|
|
||||||
/* Assembler local label prefix */
|
|
||||||
#define LSYM_PREFIX "L"
|
|
||||||
|
|
||||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
|
||||||
#define LT_OBJDIR ".libs/"
|
|
||||||
|
|
||||||
/* Define to 1 to disable the use of inline assembly */
|
|
||||||
/* #undef NO_ASM */
|
|
||||||
|
|
||||||
/* Name of package */
|
|
||||||
#define PACKAGE "gmp"
|
|
||||||
|
|
||||||
/* Define to the address where bug reports for this package should be sent. */
|
|
||||||
#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html"
|
|
||||||
|
|
||||||
/* Define to the full name of this package. */
|
|
||||||
#define PACKAGE_NAME "GNU MP"
|
|
||||||
|
|
||||||
/* Define to the full name and version of this package. */
|
|
||||||
#define PACKAGE_STRING "GNU MP 6.2.0"
|
|
||||||
|
|
||||||
/* Define to the one symbol short name of this package. */
|
|
||||||
#define PACKAGE_TARNAME "gmp"
|
|
||||||
|
|
||||||
/* Define to the home page for this package. */
|
|
||||||
#define PACKAGE_URL "http://www.gnu.org/software/gmp/"
|
|
||||||
|
|
||||||
/* Define to the version of this package. */
|
|
||||||
#define PACKAGE_VERSION "6.2.0"
|
|
||||||
|
|
||||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
|
||||||
#define RETSIGTYPE void
|
|
||||||
|
|
||||||
/* The size of `mp_limb_t', as computed by sizeof. */
|
|
||||||
#define SIZEOF_MP_LIMB_T 8
|
|
||||||
|
|
||||||
/* The size of `unsigned', as computed by sizeof. */
|
|
||||||
#define SIZEOF_UNSIGNED 4
|
|
||||||
|
|
||||||
/* The size of `unsigned long', as computed by sizeof. */
|
|
||||||
#define SIZEOF_UNSIGNED_LONG 4
|
|
||||||
|
|
||||||
/* The size of `unsigned short', as computed by sizeof. */
|
|
||||||
#define SIZEOF_UNSIGNED_SHORT 2
|
|
||||||
|
|
||||||
/* The size of `void *', as computed by sizeof. */
|
|
||||||
#define SIZEOF_VOID_P 8
|
|
||||||
|
|
||||||
/* Define to 1 if sscanf requires writable inputs */
|
|
||||||
/* #undef SSCANF_WRITABLE_INPUT */
|
|
||||||
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
|
||||||
#define STDC_HEADERS 1
|
|
||||||
|
|
||||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
|
||||||
#define TIME_WITH_SYS_TIME 1
|
|
||||||
|
|
||||||
/* Maximum size the tune program can test for SQR_TOOM2_THRESHOLD */
|
|
||||||
/* #undef TUNE_SQR_TOOM2_MAX */
|
|
||||||
|
|
||||||
/* Version number of package */
|
|
||||||
#define VERSION "6.2.0"
|
|
||||||
|
|
||||||
/* Define to 1 to enable ASSERT checking, per --enable-assert */
|
|
||||||
/* #undef WANT_ASSERT */
|
|
||||||
|
|
||||||
/* Define to 1 to enable GMP_CPU_TYPE faking cpuid, per --enable-fake-cpuid */
|
|
||||||
/* #undef WANT_FAKE_CPUID */
|
|
||||||
|
|
||||||
/* Define to 1 when building a fat binary. */
|
|
||||||
/* #undef WANT_FAT_BINARY */
|
|
||||||
|
|
||||||
/* Define to 1 to enable FFTs for multiplication, per --enable-fft */
|
|
||||||
#define WANT_FFT 1
|
|
||||||
|
|
||||||
/* Define to 1 to enable old mpn_mul_fft_full for multiplication, per
|
|
||||||
--enable-old-fft-full */
|
|
||||||
/* #undef WANT_OLD_FFT_FULL */
|
|
||||||
|
|
||||||
/* Define to 1 if --enable-profiling=gprof */
|
|
||||||
/* #undef WANT_PROFILING_GPROF */
|
|
||||||
|
|
||||||
/* Define to 1 if --enable-profiling=instrument */
|
|
||||||
/* #undef WANT_PROFILING_INSTRUMENT */
|
|
||||||
|
|
||||||
/* Define to 1 if --enable-profiling=prof */
|
|
||||||
/* #undef WANT_PROFILING_PROF */
|
|
||||||
|
|
||||||
/* Define one of these to 1 for the desired temporary memory allocation
|
|
||||||
method, per --enable-alloca. */
|
|
||||||
#define WANT_TMP_ALLOCA 1
|
|
||||||
/* #undef WANT_TMP_REENTRANT */
|
|
||||||
/* #undef WANT_TMP_NOTREENTRANT */
|
|
||||||
/* #undef WANT_TMP_DEBUG */
|
|
||||||
|
|
||||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
|
||||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
|
||||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
|
||||||
# if defined __BIG_ENDIAN__
|
|
||||||
# define WORDS_BIGENDIAN 1
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
# ifndef WORDS_BIGENDIAN
|
|
||||||
/* # undef WORDS_BIGENDIAN */
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to 1 if the assembler understands the mulx instruction */
|
|
||||||
/* #undef X86_ASM_MULX */
|
|
||||||
|
|
||||||
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
|
||||||
`char[]'. */
|
|
||||||
/* #undef YYTEXT_POINTER */
|
|
||||||
|
|
||||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
|
||||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
|
||||||
#ifndef __cplusplus
|
|
||||||
/* #undef inline */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to the equivalent of the C99 'restrict' keyword, or to
|
|
||||||
nothing if this is not supported. Do not define if restrict is
|
|
||||||
supported directly. */
|
|
||||||
#define restrict __restrict
|
|
||||||
/* Work around a bug in Sun C++: it does not support _Restrict or
|
|
||||||
__restrict__, even though the corresponding Sun C compiler ends up with
|
|
||||||
"#define restrict _Restrict" or "#define restrict __restrict__" in the
|
|
||||||
previous line. Perhaps some future version of Sun C++ will work with
|
|
||||||
restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
|
|
||||||
#if defined __SUNPRO_CC && !defined __RESTRICT
|
|
||||||
# define _Restrict
|
|
||||||
# define __restrict__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
|
||||||
code using `volatile' can become incorrect without. Disable with care. */
|
|
||||||
/* #undef volatile */
|
|
11
build_files/build_environment/patches/hdf5.diff
Normal file
11
build_files/build_environment/patches/hdf5.diff
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
--- UserMacros.cmake
|
||||||
|
+++ UserMacros.cmake
|
||||||
|
@@ -16,6 +16,8 @@
|
||||||
|
if (BUILD_USER_DEFINED_LIBS)
|
||||||
|
MACRO_USER_DEFINED_LIBS ()
|
||||||
|
endif (BUILD_USER_DEFINED_LIBS)
|
||||||
|
+
|
||||||
|
+include(Config/cmake/usermacros/windows_mt.cmake)
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#------------------- E X A M P L E E N D -----------------------------------
|
||||||
|
#-----------------------------------------------------------------------------
|
@@ -1,6 +1,6 @@
|
|||||||
diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
||||||
--- orig/cmake/FindIlmBase.cmake 2019-12-06 12:11:33 -0700
|
--- orig/cmake/FindIlmBase.cmake 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/cmake/FindIlmBase.cmake 2020-08-12 12:48:44 -0600
|
+++ openvdb/cmake/FindIlmBase.cmake 2020-01-16 09:06:32 -0700
|
||||||
@@ -225,6 +225,12 @@
|
@@ -225,6 +225,12 @@
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
"-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
|
"-${IlmBase_VERSION_MAJOR}_${IlmBase_VERSION_MINOR}.lib"
|
||||||
@@ -15,8 +15,8 @@ diff -Naur orig/cmake/FindIlmBase.cmake openvdb/cmake/FindIlmBase.cmake
|
|||||||
if(ILMBASE_USE_STATIC_LIBS)
|
if(ILMBASE_USE_STATIC_LIBS)
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
||||||
--- orig/cmake/FindOpenEXR.cmake 2019-12-06 12:11:33 -0700
|
--- orig/cmake/FindOpenEXR.cmake 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/cmake/FindOpenEXR.cmake 2020-08-12 12:48:44 -0600
|
+++ openvdb/cmake/FindOpenEXR.cmake 2020-01-16 09:06:39 -0700
|
||||||
@@ -218,6 +218,12 @@
|
@@ -218,6 +218,12 @@
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
"-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
|
"-${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}.lib"
|
||||||
@@ -31,20 +31,9 @@ diff -Naur orig/cmake/FindOpenEXR.cmake openvdb/cmake/FindOpenEXR.cmake
|
|||||||
if(OPENEXR_USE_STATIC_LIBS)
|
if(OPENEXR_USE_STATIC_LIBS)
|
||||||
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES
|
||||||
diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
|
diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
|
||||||
--- orig/openvdb/CMakeLists.txt 2019-12-06 12:11:33 -0700
|
--- orig/openvdb/CMakeLists.txt 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/openvdb/CMakeLists.txt 2020-08-12 14:12:26 -0600
|
+++ openvdb/openvdb/CMakeLists.txt 2020-01-16 08:56:25 -0700
|
||||||
@@ -105,7 +105,9 @@
|
@@ -193,11 +193,12 @@
|
||||||
# http://boost.2283326.n4.nabble.com/CMake-config-scripts-broken-in-1-70-td4708957.html
|
|
||||||
# https://github.com/boostorg/boost_install/commit/160c7cb2b2c720e74463865ef0454d4c4cd9ae7c
|
|
||||||
set(BUILD_SHARED_LIBS ON)
|
|
||||||
- set(Boost_USE_STATIC_LIBS OFF)
|
|
||||||
+ if(NOT WIN32) # blender links boost statically on windows
|
|
||||||
+ set(Boost_USE_STATIC_LIBS OFF)
|
|
||||||
+ endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS iostreams system)
|
|
||||||
@@ -193,6 +195,7 @@
|
|
||||||
if(OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
|
if(OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING)
|
||||||
add_definitions(-DBOOST_ALL_NO_LIB)
|
add_definitions(-DBOOST_ALL_NO_LIB)
|
||||||
endif()
|
endif()
|
||||||
@@ -52,69 +41,33 @@ diff -Naur orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# @todo Should be target definitions
|
# @todo Should be target definitions
|
||||||
@@ -383,7 +386,12 @@
|
if(WIN32)
|
||||||
# imported targets.
|
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
|
||||||
|
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
|
||||||
if(OPENVDB_CORE_SHARED)
|
|
||||||
- add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES})
|
|
||||||
+ if(WIN32)
|
|
||||||
+ configure_file(version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc @ONLY)
|
|
||||||
+ add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
|
|
||||||
+ else()
|
|
||||||
+ add_library(openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES})
|
|
||||||
+ endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(OPENVDB_CORE_STATIC)
|
##### Core library configuration
|
||||||
diff -Naur orig/openvdb/version.rc.in openvdb/openvdb/version.rc.in
|
diff -Naur orig/openvdb/cmd/CMakeLists.txt openvdb/openvdb/cmd/CMakeLists.txt
|
||||||
--- orig/openvdb/version.rc.in 1969-12-31 17:00:00 -0700
|
--- orig/openvdb/cmd/CMakeLists.txt 2019-12-06 13:11:33 -0700
|
||||||
+++ openvdb/openvdb/version.rc.in 2020-08-12 14:15:01 -0600
|
+++ openvdb/openvdb/cmd/CMakeLists.txt 2020-01-16 08:56:25 -0700
|
||||||
@@ -0,0 +1,48 @@
|
@@ -53,7 +53,7 @@
|
||||||
+#include <winver.h>
|
endif()
|
||||||
+
|
|
||||||
+#define VER_FILEVERSION @OpenVDB_MAJOR_VERSION@,@OpenVDB_MINOR_VERSION@,@OpenVDB_PATCH_VERSION@,0
|
if(WIN32)
|
||||||
+#define VER_FILEVERSION_STR "@OpenVDB_MAJOR_VERSION@.@OpenVDB_MINOR_VERSION@.@OpenVDB_PATCH_VERSION@.0\0"
|
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
|
||||||
+
|
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
|
||||||
+#define VER_PRODUCTVERSION @OpenVDB_MAJOR_VERSION@,@OpenVDB_MINOR_VERSION@,@OpenVDB_PATCH_VERSION@,0
|
endif()
|
||||||
+#define VER_PRODUCTVERSION_STR "@OpenVDB_MAJOR_VERSION@.@OpenVDB_MINOR_VERSION@\0"
|
|
||||||
+
|
# rpath handling
|
||||||
+#ifndef DEBUG
|
diff -Naur orig/openvdb/unittest/CMakeLists.txt openvdb/openvdb/unittest/CMakeLists.txt
|
||||||
+#define VER_DEBUG 0
|
--- orig/openvdb/unittest/CMakeLists.txt 2019-12-06 13:11:33 -0700
|
||||||
+#else
|
+++ openvdb/openvdb/unittest/CMakeLists.txt 2020-01-16 08:56:25 -0700
|
||||||
+#define VER_DEBUG VS_FF_DEBUG
|
@@ -49,7 +49,7 @@
|
||||||
+#endif
|
endif()
|
||||||
+
|
|
||||||
+VS_VERSION_INFO VERSIONINFO
|
if(WIN32)
|
||||||
+FILEVERSION VER_FILEVERSION
|
- add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_DLL)
|
||||||
+PRODUCTVERSION VER_PRODUCTVERSION
|
+ add_definitions(-D_WIN32 -DNOMINMAX -DOPENVDB_STATICLIB)
|
||||||
+FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
endif()
|
||||||
+FILEFLAGS (VER_DEBUG)
|
|
||||||
+FILEOS VOS__WINDOWS32
|
##### VDB unit tests
|
||||||
+FILETYPE VFT_DLL
|
|
||||||
+FILESUBTYPE VFT2_UNKNOWN
|
|
||||||
+BEGIN
|
|
||||||
+ BLOCK "StringFileInfo"
|
|
||||||
+ BEGIN
|
|
||||||
+ BLOCK "040904E4"
|
|
||||||
+ BEGIN
|
|
||||||
+ VALUE "FileDescription", "OpenVDB"
|
|
||||||
+ VALUE "FileVersion", VER_FILEVERSION_STR
|
|
||||||
+ VALUE "InternalName", "OpenVDB"
|
|
||||||
+ VALUE "ProductName", "OpenVDB"
|
|
||||||
+ VALUE "ProductVersion", VER_PRODUCTVERSION_STR
|
|
||||||
+ END
|
|
||||||
+ END
|
|
||||||
+
|
|
||||||
+ BLOCK "VarFileInfo"
|
|
||||||
+ BEGIN
|
|
||||||
+ /* The following line should only be modified for localized versions. */
|
|
||||||
+ /* It consists of any number of WORD,WORD pairs, with each pair */
|
|
||||||
+ /* describing a language,codepage combination supported by the file. */
|
|
||||||
+ /* */
|
|
||||||
+ /* For example, a file might have values "0x409,1252" indicating that it */
|
|
||||||
+ /* supports English language (0x409) in the Windows ANSI codepage (1252). */
|
|
||||||
+
|
|
||||||
+ VALUE "Translation", 0x409, 1252
|
|
||||||
+
|
|
||||||
+ END
|
|
||||||
+END
|
|
||||||
|
@@ -10,6 +10,77 @@ 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 -x .git -ur usd.orig/pxr/base/plug/initConfig.cpp external_usd/pxr/base/plug/initConfig.cpp
|
||||||
|
--- usd.orig/pxr/base/plug/initConfig.cpp.orig 2020-06-12 17:20:07.478199779 +0200
|
||||||
|
+++ external_usd/pxr/base/plug/initConfig.cpp 2020-06-12 17:25:28.648588552 +0200
|
||||||
|
@@ -69,10 +69,40 @@
|
||||||
|
|
||||||
|
ARCH_CONSTRUCTOR(Plug_InitConfig, 2, void)
|
||||||
|
{
|
||||||
|
+ /* The contents of this constructor have been moved to usd_initialise_plugin_path(...) */
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+}; // end of anonymous namespace
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
+ * The contents of this function used to be in the static constructor Plug_InitConfig.
|
||||||
|
+ * This static constructor made it impossible for Blender to pass a path to the USD
|
||||||
|
+ * library at runtime, as the constructor would run before Blender's main() function.
|
||||||
|
+ *
|
||||||
|
+ * This function is wrapped in a C function of the same name (defined below),
|
||||||
|
+ * so that it can be called from Blender's main() function.
|
||||||
|
+ *
|
||||||
|
+ * The datafiles_usd_path path is used to point to the USD plugin path when Blender
|
||||||
|
+ * has been installed. The fallback_usd_path path should point to the build-time
|
||||||
|
+ * location of the USD plugin files so that Blender can be run on a development machine
|
||||||
|
+ * without requiring an installation step.
|
||||||
|
+ */
|
||||||
|
+void
|
||||||
|
+usd_initialise_plugin_path(const char *datafiles_usd_path)
|
||||||
|
+{
|
||||||
|
std::vector<std::string> result;
|
||||||
|
|
||||||
|
std::vector<std::string> debugMessages;
|
||||||
|
|
||||||
|
+ // Add Blender-specific paths. They MUST end in a slash, or symlinks will not be treated as directory.
|
||||||
|
+ if (datafiles_usd_path != NULL && datafiles_usd_path[0] != '\0') {
|
||||||
|
+ std::string datafiles_usd_path_str(datafiles_usd_path);
|
||||||
|
+ if (datafiles_usd_path_str.back() != '/') {
|
||||||
|
+ datafiles_usd_path_str += "/";
|
||||||
|
+ }
|
||||||
|
+ result.push_back(datafiles_usd_path_str);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// Determine the absolute path to the Plug shared library. Any relative
|
||||||
|
// paths specified in the plugin search path will be anchored to this
|
||||||
|
// directory, to allow for relocatability. Note that this can fail when pxr
|
||||||
|
@@ -114,9 +144,24 @@
|
||||||
|
_AppendPathList(&result, installLocation, binaryPath);
|
||||||
|
#endif // PXR_INSTALL_LOCATION
|
||||||
|
|
||||||
|
- Plug_SetPaths(result, debugMessages);
|
||||||
|
-}
|
||||||
|
+ if (!TfGetenv("PXR_PATH_DEBUG").empty()) {
|
||||||
|
+ printf("USD Plugin paths: (%zu in total):\n", result.size());
|
||||||
|
+ for(const std::string &path : result) {
|
||||||
|
+ printf(" %s\n", path.c_str());
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
|
||||||
|
+ Plug_SetPaths(result, debugMessages);
|
||||||
|
}
|
||||||
|
|
||||||
|
PXR_NAMESPACE_CLOSE_SCOPE
|
||||||
|
+
|
||||||
|
+/* Workaround to make it possible to pass a path at runtime to USD. */
|
||||||
|
+extern "C" {
|
||||||
|
+void
|
||||||
|
+usd_initialise_plugin_path(
|
||||||
|
+ const char *datafiles_usd_path)
|
||||||
|
+{
|
||||||
|
+ PXR_NS::usd_initialise_plugin_path(datafiles_usd_path);
|
||||||
|
+}
|
||||||
|
+}
|
||||||
diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
|
diff -Naur external_usd_base/cmake/macros/Public.cmake external_usd/cmake/macros/Public.cmake
|
||||||
--- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
|
--- external_usd_base/cmake/macros/Public.cmake 2019-10-24 14:39:53 -0600
|
||||||
+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
|
+++ external_usd/cmake/macros/Public.cmake 2020-01-11 13:33:29 -0700
|
||||||
|
@@ -33,11 +33,10 @@ def is_tool(name):
|
|||||||
return which(name) is not None
|
return which(name) is not None
|
||||||
|
|
||||||
class Builder:
|
class Builder:
|
||||||
def __init__(self, name, branch, codesign):
|
def __init__(self, name, branch):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.branch = branch
|
self.branch = branch
|
||||||
self.is_release_branch = re.match("^blender-v(.*)-release$", branch) is not None
|
self.is_release_branch = re.match("^blender-v(.*)-release$", branch) is not None
|
||||||
self.codesign = codesign
|
|
||||||
|
|
||||||
# Buildbot runs from build/ directory
|
# Buildbot runs from build/ directory
|
||||||
self.blender_dir = os.path.abspath(os.path.join('..', 'blender.git'))
|
self.blender_dir = os.path.abspath(os.path.join('..', 'blender.git'))
|
||||||
@@ -68,9 +67,8 @@ def create_builder_from_arguments():
|
|||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('builder_name')
|
parser.add_argument('builder_name')
|
||||||
parser.add_argument('branch', default='master', nargs='?')
|
parser.add_argument('branch', default='master', nargs='?')
|
||||||
parser.add_argument("--codesign", action="store_true")
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
return Builder(args.builder_name, args.branch, args.codesign)
|
return Builder(args.builder_name, args.branch)
|
||||||
|
|
||||||
|
|
||||||
class VersionInfo:
|
class VersionInfo:
|
||||||
|
@@ -82,10 +82,6 @@ def create_argument_parser():
|
|||||||
type=Path,
|
type=Path,
|
||||||
help="Optional path to applescript to set up folder looks of DMG."
|
help="Optional path to applescript to set up folder looks of DMG."
|
||||||
"If not provided default Blender's one is used.")
|
"If not provided default Blender's one is used.")
|
||||||
parser.add_argument(
|
|
||||||
'--codesign',
|
|
||||||
action="store_true",
|
|
||||||
help="Code sign and notarize DMG contents.")
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
|
||||||
@@ -399,8 +395,7 @@ def create_final_dmg(app_bundles: List[Path],
|
|||||||
dmg_filepath: Path,
|
dmg_filepath: Path,
|
||||||
background_image_filepath: Path,
|
background_image_filepath: Path,
|
||||||
volume_name: str,
|
volume_name: str,
|
||||||
applescript: Path,
|
applescript: Path) -> None:
|
||||||
codesign: bool) -> None:
|
|
||||||
"""
|
"""
|
||||||
Create DMG with all app bundles
|
Create DMG with all app bundles
|
||||||
|
|
||||||
@@ -426,7 +421,6 @@ def create_final_dmg(app_bundles: List[Path],
|
|||||||
#
|
#
|
||||||
# This allows to recurs into the content of bundles without worrying about
|
# This allows to recurs into the content of bundles without worrying about
|
||||||
# possible interfereice of Application symlink.
|
# possible interfereice of Application symlink.
|
||||||
if codesign:
|
|
||||||
codesign_app_bundles_in_dmg(mount_directory)
|
codesign_app_bundles_in_dmg(mount_directory)
|
||||||
|
|
||||||
copy_background_if_needed(background_image_filepath, mount_directory)
|
copy_background_if_needed(background_image_filepath, mount_directory)
|
||||||
@@ -440,7 +434,6 @@ def create_final_dmg(app_bundles: List[Path],
|
|||||||
compress_dmg(writable_dmg_filepath, dmg_filepath)
|
compress_dmg(writable_dmg_filepath, dmg_filepath)
|
||||||
writable_dmg_filepath.unlink()
|
writable_dmg_filepath.unlink()
|
||||||
|
|
||||||
if codesign:
|
|
||||||
codesign_and_notarize_dmg(dmg_filepath)
|
codesign_and_notarize_dmg(dmg_filepath)
|
||||||
|
|
||||||
|
|
||||||
@@ -528,7 +521,6 @@ def main():
|
|||||||
source_dir = args.source_dir.absolute()
|
source_dir = args.source_dir.absolute()
|
||||||
background_image_filepath = get_background_image(args.background_image)
|
background_image_filepath = get_background_image(args.background_image)
|
||||||
applescript = get_applescript(args.applescript)
|
applescript = get_applescript(args.applescript)
|
||||||
codesign = args.codesign
|
|
||||||
|
|
||||||
app_bundles = collect_and_log_app_bundles(source_dir)
|
app_bundles = collect_and_log_app_bundles(source_dir)
|
||||||
if not app_bundles:
|
if not app_bundles:
|
||||||
@@ -543,8 +535,7 @@ def main():
|
|||||||
dmg_filepath,
|
dmg_filepath,
|
||||||
background_image_filepath,
|
background_image_filepath,
|
||||||
volume_name,
|
volume_name,
|
||||||
applescript,
|
applescript)
|
||||||
codesign)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@@ -24,7 +24,7 @@ import shutil
|
|||||||
import buildbot_utils
|
import buildbot_utils
|
||||||
|
|
||||||
def get_cmake_options(builder):
|
def get_cmake_options(builder):
|
||||||
codesign_script = os.path.join(
|
post_install_script = os.path.join(
|
||||||
builder.blender_dir, 'build_files', 'buildbot', 'worker_codesign.cmake')
|
builder.blender_dir, 'build_files', 'buildbot', 'worker_codesign.cmake')
|
||||||
|
|
||||||
config_file = "build_files/cmake/config/blender_release.cmake"
|
config_file = "build_files/cmake/config/blender_release.cmake"
|
||||||
@@ -36,8 +36,7 @@ def get_cmake_options(builder):
|
|||||||
options.append('-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9')
|
options.append('-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9')
|
||||||
elif builder.platform == 'win':
|
elif builder.platform == 'win':
|
||||||
options.extend(['-G', 'Visual Studio 16 2019', '-A', 'x64'])
|
options.extend(['-G', 'Visual Studio 16 2019', '-A', 'x64'])
|
||||||
if builder.codesign:
|
options.extend(['-DPOSTINSTALL_SCRIPT:PATH=' + post_install_script])
|
||||||
options.extend(['-DPOSTINSTALL_SCRIPT:PATH=' + codesign_script])
|
|
||||||
elif builder.platform == 'linux':
|
elif builder.platform == 'linux':
|
||||||
config_file = "build_files/buildbot/config/blender_linux.cmake"
|
config_file = "build_files/buildbot/config/blender_linux.cmake"
|
||||||
|
|
||||||
|
@@ -117,8 +117,6 @@ def pack_mac(builder):
|
|||||||
if info.is_development_build:
|
if info.is_development_build:
|
||||||
background_image = os.path.join(release_dir, 'buildbot', 'background.tif')
|
background_image = os.path.join(release_dir, 'buildbot', 'background.tif')
|
||||||
command += ['--background-image', background_image]
|
command += ['--background-image', background_image]
|
||||||
if builder.codesign:
|
|
||||||
command += ['--codesign']
|
|
||||||
command += [builder.install_dir]
|
command += [builder.install_dir]
|
||||||
buildbot_utils.call(command)
|
buildbot_utils.call(command)
|
||||||
|
|
||||||
@@ -152,7 +150,6 @@ def pack_win(builder):
|
|||||||
|
|
||||||
package_filename = package_name + '.msi'
|
package_filename = package_name + '.msi'
|
||||||
package_filepath = os.path.join(builder.build_dir, package_filename)
|
package_filepath = os.path.join(builder.build_dir, package_filename)
|
||||||
if builder.codesign:
|
|
||||||
sign_file_or_directory(package_filepath)
|
sign_file_or_directory(package_filepath)
|
||||||
|
|
||||||
package_files += [(package_filepath, package_filename)]
|
package_files += [(package_filepath, package_filename)]
|
||||||
|
@@ -12,8 +12,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2016 Blender Foundation.
|
# Copyright 2016 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If ALEMBIC_ROOT_DIR was defined in the environment, use it.
|
# If ALEMBIC_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -47,7 +51,7 @@ FIND_LIBRARY(ALEMBIC_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set ALEMBIC_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set ALEMBIC_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Alembic DEFAULT_MSG ALEMBIC_LIBRARY ALEMBIC_INCLUDE_DIR)
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALEMBIC DEFAULT_MSG ALEMBIC_LIBRARY ALEMBIC_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(ALEMBIC_FOUND)
|
IF(ALEMBIC_FOUND)
|
||||||
SET(ALEMBIC_LIBRARIES ${ALEMBIC_LIBRARY})
|
SET(ALEMBIC_LIBRARIES ${ALEMBIC_LIBRARY})
|
||||||
|
@@ -11,13 +11,6 @@
|
|||||||
# AUDASPACE_PY_INCLUDE_DIRS - the audaspace's python binding include directories
|
# AUDASPACE_PY_INCLUDE_DIRS - the audaspace's python binding include directories
|
||||||
# AUDASPACE_PY_LIBRARIES - link these to use audaspace's python binding
|
# AUDASPACE_PY_LIBRARIES - link these to use audaspace's python binding
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2014 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
IF(NOT AUDASPACE_ROOT_DIR AND NOT $ENV{AUDASPACE_ROOT_DIR} STREQUAL "")
|
IF(NOT AUDASPACE_ROOT_DIR AND NOT $ENV{AUDASPACE_ROOT_DIR} STREQUAL "")
|
||||||
SET(AUDASPACE_ROOT_DIR $ENV{AUDASPACE_ROOT_DIR})
|
SET(AUDASPACE_ROOT_DIR $ENV{AUDASPACE_ROOT_DIR})
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2018 Blender Foundation.
|
# Copyright 2018 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If BLOSC_ROOT_DIR was defined in the environment, use it.
|
# If BLOSC_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -49,7 +53,7 @@ FIND_LIBRARY(BLOSC_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set BLOSC_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set BLOSC_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Blosc DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(BLOSC DEFAULT_MSG
|
||||||
BLOSC_LIBRARY BLOSC_INCLUDE_DIR)
|
BLOSC_LIBRARY BLOSC_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(BLOSC_FOUND)
|
IF(BLOSC_FOUND)
|
||||||
|
@@ -17,8 +17,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2020 Blender Foundation.
|
# Copyright 2020 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If CLANG_TIDY_ROOT_DIR was defined in the environment, use it.
|
# If CLANG_TIDY_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -10,8 +10,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If EIGEN3_ROOT_DIR was defined in the environment, use it.
|
# If EIGEN3_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -7,12 +7,19 @@
|
|||||||
# EMBREE_ROOT_DIR, The base directory to search for Embree.
|
# EMBREE_ROOT_DIR, The base directory to search for Embree.
|
||||||
# This can also be an environment variable.
|
# This can also be an environment variable.
|
||||||
# EMBREEFOUND, If false, do not try to use Embree.
|
# EMBREEFOUND, If false, do not try to use Embree.
|
||||||
|
#
|
||||||
|
# also defined, but not for general use are
|
||||||
|
# EMBREE_LIBRARY, where to find the Embree library.
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2018 Blender Foundation.
|
# Copyright 2018 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If EMBREE_ROOT_DIR was defined in the environment, use it.
|
# If EMBREE_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -59,18 +66,19 @@ FOREACH(COMPONENT ${_embree_FIND_COMPONENTS})
|
|||||||
PATH_SUFFIXES
|
PATH_SUFFIXES
|
||||||
lib64 lib
|
lib64 lib
|
||||||
)
|
)
|
||||||
IF (NOT EMBREE_${UPPERCOMPONENT}_LIBRARY)
|
|
||||||
IF (EMBREE_EMBREE3_LIBRARY)
|
|
||||||
# If we can't find all the static libraries, try to fall back to the shared library if found.
|
|
||||||
# This allows building with a shared embree library
|
|
||||||
SET(_embree_LIBRARIES ${EMBREE_EMBREE3_LIBRARY})
|
|
||||||
BREAK()
|
|
||||||
ENDIF ()
|
|
||||||
ENDIF ()
|
|
||||||
LIST(APPEND _embree_LIBRARIES "${EMBREE_${UPPERCOMPONENT}_LIBRARY}")
|
LIST(APPEND _embree_LIBRARIES "${EMBREE_${UPPERCOMPONENT}_LIBRARY}")
|
||||||
ENDFOREACH()
|
ENDFOREACH()
|
||||||
|
|
||||||
|
|
||||||
|
FIND_LIBRARY(EMBREE_LIBRARY
|
||||||
|
NAMES
|
||||||
|
libembree3
|
||||||
|
HINTS
|
||||||
|
${_embree_SEARCH_DIRS}
|
||||||
|
PATH_SUFFIXES
|
||||||
|
lib64 lib
|
||||||
|
)
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set EMBREE_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set EMBREE_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If FFTW3_ROOT_DIR was defined in the environment, use it.
|
# If FFTW3_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -13,8 +13,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2014 Blender Foundation.
|
# Copyright 2014 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If GLEW_ROOT_DIR was defined in the environment, use it.
|
# If GLEW_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -47,7 +51,7 @@ FIND_LIBRARY(GLEW_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set GLEW_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set GLEW_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLEW DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Glew DEFAULT_MSG
|
||||||
GLEW_LIBRARY GLEW_INCLUDE_DIR)
|
GLEW_LIBRARY GLEW_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(GLEW_FOUND)
|
IF(GLEW_FOUND)
|
||||||
|
@@ -1,92 +0,0 @@
|
|||||||
# - Find GMP library
|
|
||||||
# Find the native GMP includes and library
|
|
||||||
# This module defines
|
|
||||||
# GMP_INCLUDE_DIRS, where to find gmp.h, Set when
|
|
||||||
# GMP_INCLUDE_DIR is found.
|
|
||||||
# GMP_LIBRARIES, libraries to link against to use GMP.
|
|
||||||
# GMP_ROOT_DIR, The base directory to search for GMP.
|
|
||||||
# This can also be an environment variable.
|
|
||||||
# GMP_FOUND, If false, do not try to use GMP.
|
|
||||||
#
|
|
||||||
# also defined, but not for general use are
|
|
||||||
# GMP_LIBRARY, where to find the GMP library.
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2011 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If GMP_ROOT_DIR was defined in the environment, use it.
|
|
||||||
IF(NOT GMP_ROOT_DIR AND NOT $ENV{GMP_ROOT_DIR} STREQUAL "")
|
|
||||||
SET(GMP_ROOT_DIR $ENV{GMP_ROOT_DIR})
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
SET(_gmp_SEARCH_DIRS
|
|
||||||
${GMP_ROOT_DIR}
|
|
||||||
/opt/lib/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_PATH(GMP_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
gmp.h
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_PATH(GMPXX_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
gmpxx.h
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
include/gmp
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(GMP_LIBRARY
|
|
||||||
NAMES
|
|
||||||
gmp
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
lib64 lib
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(GMPXX_LIBRARY
|
|
||||||
NAMES
|
|
||||||
gmpxx
|
|
||||||
HINTS
|
|
||||||
${_gmp_SEARCH_DIRS}
|
|
||||||
PATH_SUFFIXES
|
|
||||||
lib64 lib
|
|
||||||
)
|
|
||||||
|
|
||||||
if(GMP_INCLUDE_DIR)
|
|
||||||
SET(_version_regex "^#define[ \t]+__GNU_MP_VERSION[ \t]+\"([^\"]+)\".*")
|
|
||||||
file(STRINGS "${GMP_INCLUDE_DIR}/gmp.h"
|
|
||||||
GMP_VERSION REGEX "${_version_regex}")
|
|
||||||
string(REGEX REPLACE "${_version_regex}" "\\1"
|
|
||||||
GMP_VERSION "${GMP_VERSION}")
|
|
||||||
unset(_version_regex)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# handle the QUIETLY and REQUIRED arguments and set GMP_FOUND to TRUE if
|
|
||||||
# all listed variables are TRUE
|
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG
|
|
||||||
GMP_LIBRARY GMPXX_LIBRARY GMP_INCLUDE_DIR GMPXX_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(GMP_FOUND)
|
|
||||||
SET(GMP_LIBRARIES ${GMPXX_LIBRARY} ${GMP_LIBRARY})
|
|
||||||
SET(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR} ${GMPXX_INCLUDE_DIR})
|
|
||||||
ENDIF(GMP_FOUND)
|
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
|
||||||
GMP_INCLUDE_DIR
|
|
||||||
GMP_LIBRARY
|
|
||||||
GMPXX_INCLUDE_DIR
|
|
||||||
GMPXX_LIBRARY
|
|
||||||
)
|
|
@@ -12,8 +12,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2012 Blender Foundation.
|
# Copyright 2012 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If ICU_ROOT_DIR was defined in the environment, use it.
|
# If ICU_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If JACK_ROOT_DIR was defined in the environment, use it.
|
# If JACK_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If JEMALLOC_ROOT_DIR was defined in the environment, use it.
|
# If JEMALLOC_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -13,8 +13,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
if(LLVM_ROOT_DIR)
|
if(LLVM_ROOT_DIR)
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If LZO_ROOT_DIR was defined in the environment, use it.
|
# If LZO_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -7,12 +7,19 @@
|
|||||||
# OPENCOLLADA_ROOT_DIR, The base directory to search for OpenCOLLADA.
|
# OPENCOLLADA_ROOT_DIR, The base directory to search for OpenCOLLADA.
|
||||||
# This can also be an environment variable.
|
# This can also be an environment variable.
|
||||||
# OPENCOLLADA_FOUND, If false, do not try to use OpenCOLLADA.
|
# OPENCOLLADA_FOUND, If false, do not try to use OpenCOLLADA.
|
||||||
|
#
|
||||||
|
# also defined, but not for general use are
|
||||||
|
# OPENCOLLADA_LIBRARY, where to find the OpenCOLLADA library.
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# note about include paths, there are 2 ways includes are set
|
# note about include paths, there are 2 ways includes are set
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2012 Blender Foundation.
|
# Copyright 2012 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENCOLORIO_ROOT_DIR was defined in the environment, use it.
|
# If OPENCOLORIO_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -21,8 +21,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENEXR_ROOT_DIR was defined in the environment, use it.
|
# If OPENEXR_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -10,13 +10,6 @@
|
|||||||
# OPENGLES_LIBRARIES - all libraries needed for OpenGLES
|
# OPENGLES_LIBRARIES - all libraries needed for OpenGLES
|
||||||
# OPENGLES_INCLUDES - all includes needed for OpenGLES
|
# OPENGLES_INCLUDES - all includes needed for OpenGLES
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2014 Blender Foundation.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# If OPENGLES_ROOT_DIR was defined in the environment, use it.
|
# If OPENGLES_ROOT_DIR was defined in the environment, use it.
|
||||||
IF(NOT OPENGLES_ROOT_DIR AND NOT $ENV{OPENGLES_ROOT_DIR} STREQUAL "")
|
IF(NOT OPENGLES_ROOT_DIR AND NOT $ENV{OPENGLES_ROOT_DIR} STREQUAL "")
|
||||||
SET(OPENGLES_ROOT_DIR $ENV{OPENGLES_ROOT_DIR})
|
SET(OPENGLES_ROOT_DIR $ENV{OPENGLES_ROOT_DIR})
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2019 Blender Foundation.
|
# Copyright 2019 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENIMAGEDENOISE_ROOT_DIR was defined in the environment, use it.
|
# If OPENIMAGEDENOISE_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -16,8 +16,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENIMAGEIO_ROOT_DIR was defined in the environment, use it.
|
# If OPENIMAGEIO_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENJPEG_ROOT_DIR was defined in the environment, use it.
|
# If OPENJPEG_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2014 Blender Foundation.
|
# Copyright 2014 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OSL_ROOT_DIR was defined in the environment, use it.
|
# If OSL_ROOT_DIR was defined in the environment, use it.
|
@@ -7,12 +7,19 @@
|
|||||||
# OPENSUBDIV_ROOT_DIR, the base directory to search for OpenSubdiv.
|
# OPENSUBDIV_ROOT_DIR, the base directory to search for OpenSubdiv.
|
||||||
# This can also be an environment variable.
|
# This can also be an environment variable.
|
||||||
# OPENSUBDIV_FOUND, if false, do not try to use OpenSubdiv.
|
# OPENSUBDIV_FOUND, if false, do not try to use OpenSubdiv.
|
||||||
|
#
|
||||||
|
# also defined, but not for general use are
|
||||||
|
# OPENSUBDIV_LIBRARY, where to find the OpenSubdiv library.
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2013 Blender Foundation.
|
# Copyright 2013 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENSUBDIV_ROOT_DIR was defined in the environment, use it.
|
# If OPENSUBDIV_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPENVDB_ROOT_DIR was defined in the environment, use it.
|
# If OPENVDB_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -49,7 +53,7 @@ FIND_LIBRARY(OPENVDB_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set OPENVDB_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set OPENVDB_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenVDB DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENVDB DEFAULT_MSG
|
||||||
OPENVDB_LIBRARY OPENVDB_INCLUDE_DIR)
|
OPENVDB_LIBRARY OPENVDB_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(OPENVDB_FOUND)
|
IF(OPENVDB_FOUND)
|
||||||
|
@@ -10,8 +10,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2019 Blender Foundation.
|
# Copyright 2019 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If OPTIX_ROOT_DIR was defined in the environment, use it.
|
# If OPTIX_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If PCRE_ROOT_DIR was defined in the environment, use it.
|
# If PCRE_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2014 Blender Foundation.
|
# Copyright 2014 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If PUGIXML_ROOT_DIR was defined in the environment, use it.
|
# If PUGIXML_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -25,8 +25,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If PYTHON_ROOT_DIR was defined in the environment, use it.
|
# If PYTHON_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -13,8 +13,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2015 Blender Foundation.
|
# Copyright 2015 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If SDL2_ROOT_DIR was defined in the environment, use it.
|
# If SDL2_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If LIBSNDFILE_ROOT_DIR was defined in the environment, use it.
|
# If LIBSNDFILE_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If SPACENAV_ROOT_DIR was defined in the environment, use it.
|
# If SPACENAV_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2016 Blender Foundation.
|
# Copyright 2016 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If TBB_ROOT_DIR was defined in the environment, use it.
|
# If TBB_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -12,8 +12,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2019 Blender Foundation.
|
# Copyright 2019 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If USD_ROOT_DIR was defined in the environment, use it.
|
# If USD_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -14,8 +14,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2011 Blender Foundation.
|
# Copyright 2011 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If XML2_ROOT_DIR was defined in the environment, use it.
|
# If XML2_ROOT_DIR was defined in the environment, use it.
|
||||||
|
@@ -20,8 +20,12 @@
|
|||||||
# XR_OPENXR_SDK_LOADER_LIBRARY, where to find the OpenXR-SDK loader library.
|
# XR_OPENXR_SDK_LOADER_LIBRARY, where to find the OpenXR-SDK loader library.
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
|
|
||||||
# If XR_OPENXR_SDK_ROOT_DIR was defined in the environment, use it.
|
# If XR_OPENXR_SDK_ROOT_DIR was defined in the environment, use it.
|
||||||
@@ -55,7 +59,7 @@ FIND_LIBRARY(XR_OPENXR_SDK_LOADER_LIBRARY
|
|||||||
# handle the QUIETLY and REQUIRED arguments and set XR_OPENXR_SDK_FOUND to TRUE if
|
# handle the QUIETLY and REQUIRED arguments and set XR_OPENXR_SDK_FOUND to TRUE if
|
||||||
# all listed variables are TRUE
|
# all listed variables are TRUE
|
||||||
INCLUDE(FindPackageHandleStandardArgs)
|
INCLUDE(FindPackageHandleStandardArgs)
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XR_OpenXR_SDK DEFAULT_MSG
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XR_OPENXR_SDK DEFAULT_MSG
|
||||||
XR_OPENXR_SDK_LOADER_LIBRARY XR_OPENXR_SDK_INCLUDE_DIR)
|
XR_OPENXR_SDK_LOADER_LIBRARY XR_OPENXR_SDK_INCLUDE_DIR)
|
||||||
|
|
||||||
IF(XR_OPENXR_SDK_FOUND)
|
IF(XR_OPENXR_SDK_FOUND)
|
@@ -1,550 +0,0 @@
|
|||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
|
|
||||||
#[=======================================================================[.rst:
|
|
||||||
GoogleTest
|
|
||||||
----------
|
|
||||||
|
|
||||||
.. versionadded:: 3.9
|
|
||||||
|
|
||||||
This module defines functions to help use the Google Test infrastructure. Two
|
|
||||||
mechanisms for adding tests are provided. :command:`gtest_add_tests` has been
|
|
||||||
around for some time, originally via ``find_package(GTest)``.
|
|
||||||
:command:`gtest_discover_tests` was introduced in CMake 3.10.
|
|
||||||
|
|
||||||
The (older) :command:`gtest_add_tests` scans source files to identify tests.
|
|
||||||
This is usually effective, with some caveats, including in cross-compiling
|
|
||||||
environments, and makes setting additional properties on tests more convenient.
|
|
||||||
However, its handling of parameterized tests is less comprehensive, and it
|
|
||||||
requires re-running CMake to detect changes to the list of tests.
|
|
||||||
|
|
||||||
The (newer) :command:`gtest_discover_tests` discovers tests by asking the
|
|
||||||
compiled test executable to enumerate its tests. This is more robust and
|
|
||||||
provides better handling of parameterized tests, and does not require CMake
|
|
||||||
to be re-run when tests change. However, it may not work in a cross-compiling
|
|
||||||
environment, and setting test properties is less convenient.
|
|
||||||
|
|
||||||
More details can be found in the documentation of the respective functions.
|
|
||||||
|
|
||||||
Both commands are intended to replace use of :command:`add_test` to register
|
|
||||||
tests, and will create a separate CTest test for each Google Test test case.
|
|
||||||
Note that this is in some cases less efficient, as common set-up and tear-down
|
|
||||||
logic cannot be shared by multiple test cases executing in the same instance.
|
|
||||||
However, it provides more fine-grained pass/fail information to CTest, which is
|
|
||||||
usually considered as more beneficial. By default, the CTest test name is the
|
|
||||||
same as the Google Test name (i.e. ``suite.testcase``); see also
|
|
||||||
``TEST_PREFIX`` and ``TEST_SUFFIX``.
|
|
||||||
|
|
||||||
.. command:: gtest_add_tests
|
|
||||||
|
|
||||||
Automatically add tests with CTest by scanning source code for Google Test
|
|
||||||
macros::
|
|
||||||
|
|
||||||
gtest_add_tests(TARGET target
|
|
||||||
[SOURCES src1...]
|
|
||||||
[EXTRA_ARGS arg1...]
|
|
||||||
[WORKING_DIRECTORY dir]
|
|
||||||
[TEST_PREFIX prefix]
|
|
||||||
[TEST_SUFFIX suffix]
|
|
||||||
[SKIP_DEPENDENCY]
|
|
||||||
[TEST_LIST outVar]
|
|
||||||
)
|
|
||||||
|
|
||||||
``gtest_add_tests`` attempts to identify tests by scanning source files.
|
|
||||||
Although this is generally effective, it uses only a basic regular expression
|
|
||||||
match, which can be defeated by atypical test declarations, and is unable to
|
|
||||||
fully "split" parameterized tests. Additionally, it requires that CMake be
|
|
||||||
re-run to discover any newly added, removed or renamed tests (by default,
|
|
||||||
this means that CMake is re-run when any test source file is changed, but see
|
|
||||||
``SKIP_DEPENDENCY``). However, it has the advantage of declaring tests at
|
|
||||||
CMake time, which somewhat simplifies setting additional properties on tests,
|
|
||||||
and always works in a cross-compiling environment.
|
|
||||||
|
|
||||||
The options are:
|
|
||||||
|
|
||||||
``TARGET target``
|
|
||||||
Specifies the Google Test executable, which must be a known CMake
|
|
||||||
executable target. CMake will substitute the location of the built
|
|
||||||
executable when running the test.
|
|
||||||
|
|
||||||
``SOURCES src1...``
|
|
||||||
When provided, only the listed files will be scanned for test cases. If
|
|
||||||
this option is not given, the :prop_tgt:`SOURCES` property of the
|
|
||||||
specified ``target`` will be used to obtain the list of sources.
|
|
||||||
|
|
||||||
``EXTRA_ARGS arg1...``
|
|
||||||
Any extra arguments to pass on the command line to each test case.
|
|
||||||
|
|
||||||
``WORKING_DIRECTORY dir``
|
|
||||||
Specifies the directory in which to run the discovered test cases. If this
|
|
||||||
option is not provided, the current binary directory is used.
|
|
||||||
|
|
||||||
``TEST_PREFIX prefix``
|
|
||||||
Specifies a ``prefix`` to be prepended to the name of each discovered test
|
|
||||||
case. This can be useful when the same source files are being used in
|
|
||||||
multiple calls to ``gtest_add_test()`` but with different ``EXTRA_ARGS``.
|
|
||||||
|
|
||||||
``TEST_SUFFIX suffix``
|
|
||||||
Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
|
|
||||||
every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
|
|
||||||
be specified.
|
|
||||||
|
|
||||||
``SKIP_DEPENDENCY``
|
|
||||||
Normally, the function creates a dependency which will cause CMake to be
|
|
||||||
re-run if any of the sources being scanned are changed. This is to ensure
|
|
||||||
that the list of discovered tests is updated. If this behavior is not
|
|
||||||
desired (as may be the case while actually writing the test cases), this
|
|
||||||
option can be used to prevent the dependency from being added.
|
|
||||||
|
|
||||||
``TEST_LIST outVar``
|
|
||||||
The variable named by ``outVar`` will be populated in the calling scope
|
|
||||||
with the list of discovered test cases. This allows the caller to do
|
|
||||||
things like manipulate test properties of the discovered tests.
|
|
||||||
|
|
||||||
.. code-block:: cmake
|
|
||||||
|
|
||||||
include(GoogleTest)
|
|
||||||
add_executable(FooTest FooUnitTest.cxx)
|
|
||||||
gtest_add_tests(TARGET FooTest
|
|
||||||
TEST_SUFFIX .noArgs
|
|
||||||
TEST_LIST noArgsTests
|
|
||||||
)
|
|
||||||
gtest_add_tests(TARGET FooTest
|
|
||||||
EXTRA_ARGS --someArg someValue
|
|
||||||
TEST_SUFFIX .withArgs
|
|
||||||
TEST_LIST withArgsTests
|
|
||||||
)
|
|
||||||
set_tests_properties(${noArgsTests} PROPERTIES TIMEOUT 10)
|
|
||||||
set_tests_properties(${withArgsTests} PROPERTIES TIMEOUT 20)
|
|
||||||
|
|
||||||
For backward compatibility, the following form is also supported::
|
|
||||||
|
|
||||||
gtest_add_tests(exe args files...)
|
|
||||||
|
|
||||||
``exe``
|
|
||||||
The path to the test executable or the name of a CMake target.
|
|
||||||
``args``
|
|
||||||
A ;-list of extra arguments to be passed to executable. The entire
|
|
||||||
list must be passed as a single argument. Enclose it in quotes,
|
|
||||||
or pass ``""`` for no arguments.
|
|
||||||
``files...``
|
|
||||||
A list of source files to search for tests and test fixtures.
|
|
||||||
Alternatively, use ``AUTO`` to specify that ``exe`` is the name
|
|
||||||
of a CMake executable target whose sources should be scanned.
|
|
||||||
|
|
||||||
.. code-block:: cmake
|
|
||||||
|
|
||||||
include(GoogleTest)
|
|
||||||
set(FooTestArgs --foo 1 --bar 2)
|
|
||||||
add_executable(FooTest FooUnitTest.cxx)
|
|
||||||
gtest_add_tests(FooTest "${FooTestArgs}" AUTO)
|
|
||||||
|
|
||||||
.. command:: gtest_discover_tests
|
|
||||||
|
|
||||||
Automatically add tests with CTest by querying the compiled test executable
|
|
||||||
for available tests::
|
|
||||||
|
|
||||||
gtest_discover_tests(target
|
|
||||||
[EXTRA_ARGS arg1...]
|
|
||||||
[WORKING_DIRECTORY dir]
|
|
||||||
[TEST_PREFIX prefix]
|
|
||||||
[TEST_SUFFIX suffix]
|
|
||||||
[NO_PRETTY_TYPES] [NO_PRETTY_VALUES]
|
|
||||||
[PROPERTIES name1 value1...]
|
|
||||||
[TEST_LIST var]
|
|
||||||
[DISCOVERY_TIMEOUT seconds]
|
|
||||||
[XML_OUTPUT_DIR dir]
|
|
||||||
[DISCOVERY_MODE <POST_BUILD|PRE_TEST>]
|
|
||||||
)
|
|
||||||
|
|
||||||
``gtest_discover_tests()`` sets up a post-build command on the test executable
|
|
||||||
that generates the list of tests by parsing the output from running the test
|
|
||||||
with the ``--gtest_list_tests`` argument. Compared to the source parsing
|
|
||||||
approach of :command:`gtest_add_tests`, this ensures that the full list of
|
|
||||||
tests, including instantiations of parameterized tests, is obtained. Since
|
|
||||||
test discovery occurs at build time, it is not necessary to re-run CMake when
|
|
||||||
the list of tests changes.
|
|
||||||
However, it requires that :prop_tgt:`CROSSCOMPILING_EMULATOR` is properly set
|
|
||||||
in order to function in a cross-compiling environment.
|
|
||||||
|
|
||||||
Additionally, setting properties on tests is somewhat less convenient, since
|
|
||||||
the tests are not available at CMake time. Additional test properties may be
|
|
||||||
assigned to the set of tests as a whole using the ``PROPERTIES`` option. If
|
|
||||||
more fine-grained test control is needed, custom content may be provided
|
|
||||||
through an external CTest script using the :prop_dir:`TEST_INCLUDE_FILES`
|
|
||||||
directory property. The set of discovered tests is made accessible to such a
|
|
||||||
script via the ``<target>_TESTS`` variable.
|
|
||||||
|
|
||||||
The options are:
|
|
||||||
|
|
||||||
``target``
|
|
||||||
Specifies the Google Test executable, which must be a known CMake
|
|
||||||
executable target. CMake will substitute the location of the built
|
|
||||||
executable when running the test.
|
|
||||||
|
|
||||||
``EXTRA_ARGS arg1...``
|
|
||||||
Any extra arguments to pass on the command line to each test case.
|
|
||||||
|
|
||||||
``WORKING_DIRECTORY dir``
|
|
||||||
Specifies the directory in which to run the discovered test cases. If this
|
|
||||||
option is not provided, the current binary directory is used.
|
|
||||||
|
|
||||||
``TEST_PREFIX prefix``
|
|
||||||
Specifies a ``prefix`` to be prepended to the name of each discovered test
|
|
||||||
case. This can be useful when the same test executable is being used in
|
|
||||||
multiple calls to ``gtest_discover_tests()`` but with different
|
|
||||||
``EXTRA_ARGS``.
|
|
||||||
|
|
||||||
``TEST_SUFFIX suffix``
|
|
||||||
Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
|
|
||||||
every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
|
|
||||||
be specified.
|
|
||||||
|
|
||||||
``NO_PRETTY_TYPES``
|
|
||||||
By default, the type index of type-parameterized tests is replaced by the
|
|
||||||
actual type name in the CTest test name. If this behavior is undesirable
|
|
||||||
(e.g. because the type names are unwieldy), this option will suppress this
|
|
||||||
behavior.
|
|
||||||
|
|
||||||
``NO_PRETTY_VALUES``
|
|
||||||
By default, the value index of value-parameterized tests is replaced by the
|
|
||||||
actual value in the CTest test name. If this behavior is undesirable
|
|
||||||
(e.g. because the value strings are unwieldy), this option will suppress
|
|
||||||
this behavior.
|
|
||||||
|
|
||||||
``PROPERTIES name1 value1...``
|
|
||||||
Specifies additional properties to be set on all tests discovered by this
|
|
||||||
invocation of ``gtest_discover_tests()``.
|
|
||||||
|
|
||||||
``TEST_LIST var``
|
|
||||||
Make the list of tests available in the variable ``var``, rather than the
|
|
||||||
default ``<target>_TESTS``. This can be useful when the same test
|
|
||||||
executable is being used in multiple calls to ``gtest_discover_tests()``.
|
|
||||||
Note that this variable is only available in CTest.
|
|
||||||
|
|
||||||
``DISCOVERY_TIMEOUT num``
|
|
||||||
Specifies how long (in seconds) CMake will wait for the test to enumerate
|
|
||||||
available tests. If the test takes longer than this, discovery (and your
|
|
||||||
build) will fail. Most test executables will enumerate their tests very
|
|
||||||
quickly, but under some exceptional circumstances, a test may require a
|
|
||||||
longer timeout. The default is 5. See also the ``TIMEOUT`` option of
|
|
||||||
:command:`execute_process`.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
In CMake versions 3.10.1 and 3.10.2, this option was called ``TIMEOUT``.
|
|
||||||
This clashed with the ``TIMEOUT`` test property, which is one of the
|
|
||||||
common properties that would be set with the ``PROPERTIES`` keyword,
|
|
||||||
usually leading to legal but unintended behavior. The keyword was
|
|
||||||
changed to ``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this
|
|
||||||
problem. The ambiguous behavior of the ``TIMEOUT`` keyword in 3.10.1
|
|
||||||
and 3.10.2 has not been preserved.
|
|
||||||
|
|
||||||
``XML_OUTPUT_DIR dir``
|
|
||||||
If specified, the parameter is passed along with ``--gtest_output=xml:``
|
|
||||||
to test executable. The actual file name is the same as the test target,
|
|
||||||
including prefix and suffix. This should be used instead of
|
|
||||||
``EXTRA_ARGS --gtest_output=xml`` to avoid race conditions writing the
|
|
||||||
XML result output when using parallel test execution.
|
|
||||||
|
|
||||||
``DISCOVERY_MODE``
|
|
||||||
Provides greater control over when ``gtest_discover_tests()`` performs test
|
|
||||||
discovery. By default, ``POST_BUILD`` sets up a post-build command
|
|
||||||
to perform test discovery at build time. In certain scenarios, like
|
|
||||||
cross-compiling, this ``POST_BUILD`` behavior is not desirable.
|
|
||||||
By contrast, ``PRE_TEST`` delays test discovery until just prior to test
|
|
||||||
execution. This way test discovery occurs in the target environment
|
|
||||||
where the test has a better chance at finding appropriate runtime
|
|
||||||
dependencies.
|
|
||||||
|
|
||||||
``DISCOVERY_MODE`` defaults to the value of the
|
|
||||||
``CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE`` variable if it is not
|
|
||||||
passed when calling ``gtest_discover_tests()``. This provides a mechanism
|
|
||||||
for globally selecting a preferred test discovery behavior without having
|
|
||||||
to modify each call site.
|
|
||||||
|
|
||||||
#]=======================================================================]
|
|
||||||
|
|
||||||
# Save project's policies
|
|
||||||
cmake_policy(PUSH)
|
|
||||||
cmake_policy(SET CMP0057 NEW) # if IN_LIST
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
function(gtest_add_tests)
|
|
||||||
|
|
||||||
if (ARGC LESS 1)
|
|
||||||
message(FATAL_ERROR "No arguments supplied to gtest_add_tests()")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(options
|
|
||||||
SKIP_DEPENDENCY
|
|
||||||
)
|
|
||||||
set(oneValueArgs
|
|
||||||
TARGET
|
|
||||||
WORKING_DIRECTORY
|
|
||||||
TEST_PREFIX
|
|
||||||
TEST_SUFFIX
|
|
||||||
TEST_LIST
|
|
||||||
)
|
|
||||||
set(multiValueArgs
|
|
||||||
SOURCES
|
|
||||||
EXTRA_ARGS
|
|
||||||
)
|
|
||||||
set(allKeywords ${options} ${oneValueArgs} ${multiValueArgs})
|
|
||||||
|
|
||||||
unset(sources)
|
|
||||||
if("${ARGV0}" IN_LIST allKeywords)
|
|
||||||
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
||||||
set(autoAddSources YES)
|
|
||||||
else()
|
|
||||||
# Non-keyword syntax, convert to keyword form
|
|
||||||
if (ARGC LESS 3)
|
|
||||||
message(FATAL_ERROR "gtest_add_tests() without keyword options requires at least 3 arguments")
|
|
||||||
endif()
|
|
||||||
set(ARGS_TARGET "${ARGV0}")
|
|
||||||
set(ARGS_EXTRA_ARGS "${ARGV1}")
|
|
||||||
if(NOT "${ARGV2}" STREQUAL "AUTO")
|
|
||||||
set(ARGS_SOURCES "${ARGV}")
|
|
||||||
list(REMOVE_AT ARGS_SOURCES 0 1)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# The non-keyword syntax allows the first argument to be an arbitrary
|
|
||||||
# executable rather than a target if source files are also provided. In all
|
|
||||||
# other cases, both forms require a target.
|
|
||||||
if(NOT TARGET "${ARGS_TARGET}" AND NOT ARGS_SOURCES)
|
|
||||||
message(FATAL_ERROR "${ARGS_TARGET} does not define an existing CMake target")
|
|
||||||
endif()
|
|
||||||
if(NOT ARGS_WORKING_DIRECTORY)
|
|
||||||
unset(workDir)
|
|
||||||
else()
|
|
||||||
set(workDir WORKING_DIRECTORY "${ARGS_WORKING_DIRECTORY}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(NOT ARGS_SOURCES)
|
|
||||||
get_property(ARGS_SOURCES TARGET ${ARGS_TARGET} PROPERTY SOURCES)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
unset(testList)
|
|
||||||
|
|
||||||
set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+) *, *([A-Za-z_0-9]+) *\\).*")
|
|
||||||
set(gtest_test_type_regex "(TYPED_TEST|TEST_?[FP]?)")
|
|
||||||
|
|
||||||
foreach(source IN LISTS ARGS_SOURCES)
|
|
||||||
if(NOT ARGS_SKIP_DEPENDENCY)
|
|
||||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${source})
|
|
||||||
endif()
|
|
||||||
file(READ "${source}" contents)
|
|
||||||
string(REGEX MATCHALL "${gtest_test_type_regex} *\\(([A-Za-z_0-9 ,]+)\\)" found_tests "${contents}")
|
|
||||||
foreach(hit ${found_tests})
|
|
||||||
string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit})
|
|
||||||
|
|
||||||
# Parameterized tests have a different signature for the filter
|
|
||||||
if("x${test_type}" STREQUAL "xTEST_P")
|
|
||||||
string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" gtest_test_name ${hit})
|
|
||||||
elseif("x${test_type}" STREQUAL "xTEST_F" OR "x${test_type}" STREQUAL "xTEST")
|
|
||||||
string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" gtest_test_name ${hit})
|
|
||||||
elseif("x${test_type}" STREQUAL "xTYPED_TEST")
|
|
||||||
string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" gtest_test_name ${hit})
|
|
||||||
else()
|
|
||||||
message(WARNING "Could not parse GTest ${hit} for adding to CTest.")
|
|
||||||
continue()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Make sure tests disabled in GTest get disabled in CTest
|
|
||||||
if(gtest_test_name MATCHES "(^|\\.)DISABLED_")
|
|
||||||
# Add the disabled test if CMake is new enough
|
|
||||||
# Note that this check is to allow backwards compatibility so this
|
|
||||||
# module can be copied locally in projects to use with older CMake
|
|
||||||
# versions
|
|
||||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.8.20170401)
|
|
||||||
string(REGEX REPLACE
|
|
||||||
"(^|\\.)DISABLED_" "\\1"
|
|
||||||
orig_test_name "${gtest_test_name}"
|
|
||||||
)
|
|
||||||
set(ctest_test_name
|
|
||||||
${ARGS_TEST_PREFIX}${orig_test_name}${ARGS_TEST_SUFFIX}
|
|
||||||
)
|
|
||||||
add_test(NAME ${ctest_test_name}
|
|
||||||
${workDir}
|
|
||||||
COMMAND ${ARGS_TARGET}
|
|
||||||
--gtest_also_run_disabled_tests
|
|
||||||
--gtest_filter=${gtest_test_name}
|
|
||||||
${ARGS_EXTRA_ARGS}
|
|
||||||
)
|
|
||||||
set_tests_properties(${ctest_test_name} PROPERTIES DISABLED TRUE)
|
|
||||||
list(APPEND testList ${ctest_test_name})
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(ctest_test_name ${ARGS_TEST_PREFIX}${gtest_test_name}${ARGS_TEST_SUFFIX})
|
|
||||||
add_test(NAME ${ctest_test_name}
|
|
||||||
${workDir}
|
|
||||||
COMMAND ${ARGS_TARGET}
|
|
||||||
--gtest_filter=${gtest_test_name}
|
|
||||||
${ARGS_EXTRA_ARGS}
|
|
||||||
)
|
|
||||||
list(APPEND testList ${ctest_test_name})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(ARGS_TEST_LIST)
|
|
||||||
set(${ARGS_TEST_LIST} ${testList} PARENT_SCOPE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function(gtest_discover_tests TARGET)
|
|
||||||
cmake_parse_arguments(
|
|
||||||
""
|
|
||||||
"NO_PRETTY_TYPES;NO_PRETTY_VALUES"
|
|
||||||
"TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST;DISCOVERY_TIMEOUT;XML_OUTPUT_DIR;DISCOVERY_MODE"
|
|
||||||
"EXTRA_ARGS;PROPERTIES"
|
|
||||||
${ARGN}
|
|
||||||
)
|
|
||||||
|
|
||||||
if(NOT _WORKING_DIRECTORY)
|
|
||||||
set(_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
endif()
|
|
||||||
if(NOT _TEST_LIST)
|
|
||||||
set(_TEST_LIST ${TARGET}_TESTS)
|
|
||||||
endif()
|
|
||||||
if(NOT _DISCOVERY_TIMEOUT)
|
|
||||||
set(_DISCOVERY_TIMEOUT 5)
|
|
||||||
endif()
|
|
||||||
if(NOT _DISCOVERY_MODE)
|
|
||||||
if(NOT CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE)
|
|
||||||
set(CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE "POST_BUILD")
|
|
||||||
endif()
|
|
||||||
set(_DISCOVERY_MODE ${CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
get_property(
|
|
||||||
has_counter
|
|
||||||
TARGET ${TARGET}
|
|
||||||
PROPERTY CTEST_DISCOVERED_TEST_COUNTER
|
|
||||||
SET
|
|
||||||
)
|
|
||||||
if(has_counter)
|
|
||||||
get_property(
|
|
||||||
counter
|
|
||||||
TARGET ${TARGET}
|
|
||||||
PROPERTY CTEST_DISCOVERED_TEST_COUNTER
|
|
||||||
)
|
|
||||||
math(EXPR counter "${counter} + 1")
|
|
||||||
else()
|
|
||||||
set(counter 1)
|
|
||||||
endif()
|
|
||||||
set_property(
|
|
||||||
TARGET ${TARGET}
|
|
||||||
PROPERTY CTEST_DISCOVERED_TEST_COUNTER
|
|
||||||
${counter}
|
|
||||||
)
|
|
||||||
|
|
||||||
# Define rule to generate test list for aforementioned test executable
|
|
||||||
# Blender: use _ instead of [] to avoid problems with zsh regex.
|
|
||||||
set(ctest_file_base "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_${counter}_")
|
|
||||||
set(ctest_include_file "${ctest_file_base}_include.cmake")
|
|
||||||
set(ctest_tests_file "${ctest_file_base}_tests.cmake")
|
|
||||||
get_property(crosscompiling_emulator
|
|
||||||
TARGET ${TARGET}
|
|
||||||
PROPERTY CROSSCOMPILING_EMULATOR
|
|
||||||
)
|
|
||||||
|
|
||||||
if(_DISCOVERY_MODE STREQUAL "POST_BUILD")
|
|
||||||
add_custom_command(
|
|
||||||
TARGET ${TARGET} POST_BUILD
|
|
||||||
BYPRODUCTS "${ctest_tests_file}"
|
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
|
||||||
-D "TEST_TARGET=${TARGET}"
|
|
||||||
-D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
|
|
||||||
-D "TEST_EXECUTOR=${crosscompiling_emulator}"
|
|
||||||
-D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
|
|
||||||
-D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
|
|
||||||
-D "TEST_PROPERTIES=${_PROPERTIES}"
|
|
||||||
-D "TEST_PREFIX=${_TEST_PREFIX}"
|
|
||||||
-D "TEST_SUFFIX=${_TEST_SUFFIX}"
|
|
||||||
-D "NO_PRETTY_TYPES=${_NO_PRETTY_TYPES}"
|
|
||||||
-D "NO_PRETTY_VALUES=${_NO_PRETTY_VALUES}"
|
|
||||||
-D "TEST_LIST=${_TEST_LIST}"
|
|
||||||
-D "CTEST_FILE=${ctest_tests_file}"
|
|
||||||
-D "TEST_DISCOVERY_TIMEOUT=${_DISCOVERY_TIMEOUT}"
|
|
||||||
-D "TEST_XML_OUTPUT_DIR=${_XML_OUTPUT_DIR}"
|
|
||||||
-P "${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}"
|
|
||||||
VERBATIM
|
|
||||||
)
|
|
||||||
|
|
||||||
file(WRITE "${ctest_include_file}"
|
|
||||||
"if(EXISTS \"${ctest_tests_file}\")\n"
|
|
||||||
" include(\"${ctest_tests_file}\")\n"
|
|
||||||
"else()\n"
|
|
||||||
" add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)\n"
|
|
||||||
"endif()\n"
|
|
||||||
)
|
|
||||||
elseif(_DISCOVERY_MODE STREQUAL "PRE_TEST")
|
|
||||||
|
|
||||||
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL
|
|
||||||
PROPERTY GENERATOR_IS_MULTI_CONFIG
|
|
||||||
)
|
|
||||||
|
|
||||||
if(GENERATOR_IS_MULTI_CONFIG)
|
|
||||||
set(ctest_tests_file "${ctest_file_base}_tests-$<CONFIG>.cmake")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
string(CONCAT ctest_include_content
|
|
||||||
"if(EXISTS \"$<TARGET_FILE:${TARGET}>\")" "\n"
|
|
||||||
" if(\"$<TARGET_FILE:${TARGET}>\" IS_NEWER_THAN \"${ctest_tests_file}\")" "\n"
|
|
||||||
" include(\"${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}\")" "\n"
|
|
||||||
" gtest_discover_tests_impl(" "\n"
|
|
||||||
" TEST_EXECUTABLE" " [==[" "$<TARGET_FILE:${TARGET}>" "]==]" "\n"
|
|
||||||
" TEST_EXECUTOR" " [==[" "${crosscompiling_emulator}" "]==]" "\n"
|
|
||||||
" TEST_WORKING_DIR" " [==[" "${_WORKING_DIRECTORY}" "]==]" "\n"
|
|
||||||
" TEST_EXTRA_ARGS" " [==[" "${_EXTRA_ARGS}" "]==]" "\n"
|
|
||||||
" TEST_PROPERTIES" " [==[" "${_PROPERTIES}" "]==]" "\n"
|
|
||||||
" TEST_PREFIX" " [==[" "${_TEST_PREFIX}" "]==]" "\n"
|
|
||||||
" TEST_SUFFIX" " [==[" "${_TEST_SUFFIX}" "]==]" "\n"
|
|
||||||
" NO_PRETTY_TYPES" " [==[" "${_NO_PRETTY_TYPES}" "]==]" "\n"
|
|
||||||
" NO_PRETTY_VALUES" " [==[" "${_NO_PRETTY_VALUES}" "]==]" "\n"
|
|
||||||
" TEST_LIST" " [==[" "${_TEST_LIST}" "]==]" "\n"
|
|
||||||
" CTEST_FILE" " [==[" "${ctest_tests_file}" "]==]" "\n"
|
|
||||||
" TEST_DISCOVERY_TIMEOUT" " [==[" "${_DISCOVERY_TIMEOUT}" "]==]" "\n"
|
|
||||||
" TEST_XML_OUTPUT_DIR" " [==[" "${_XML_OUTPUT_DIR}" "]==]" "\n"
|
|
||||||
" )" "\n"
|
|
||||||
" endif()" "\n"
|
|
||||||
" include(\"${ctest_tests_file}\")" "\n"
|
|
||||||
"else()" "\n"
|
|
||||||
" add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)" "\n"
|
|
||||||
"endif()" "\n"
|
|
||||||
)
|
|
||||||
|
|
||||||
if(GENERATOR_IS_MULTI_CONFIG)
|
|
||||||
foreach(_config ${CMAKE_CONFIGURATION_TYPES})
|
|
||||||
file(GENERATE OUTPUT "${ctest_file_base}_include-${_config}.cmake" CONTENT "${ctest_include_content}" CONDITION $<CONFIG:${_config}>)
|
|
||||||
endforeach()
|
|
||||||
file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include-\${CTEST_CONFIGURATION_TYPE}.cmake\")")
|
|
||||||
else()
|
|
||||||
file(GENERATE OUTPUT "${ctest_file_base}_include.cmake" CONTENT "${ctest_include_content}")
|
|
||||||
file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include.cmake\")")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "Unknown DISCOVERY_MODE: ${_DISCOVERY_MODE}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Add discovered tests to directory TEST_INCLUDE_FILES
|
|
||||||
set_property(DIRECTORY
|
|
||||||
APPEND PROPERTY TEST_INCLUDE_FILES "${ctest_include_file}"
|
|
||||||
)
|
|
||||||
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
set(_GOOGLETEST_DISCOVER_TESTS_SCRIPT
|
|
||||||
${CMAKE_CURRENT_LIST_DIR}/GTestAddTests.cmake
|
|
||||||
)
|
|
||||||
|
|
||||||
# Restore project's policies
|
|
||||||
cmake_policy(POP)
|
|
@@ -1,191 +0,0 @@
|
|||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
|
||||||
|
|
||||||
# Blender: disable ASAN leak detection when trying to discover tests.
|
|
||||||
set(ENV{ASAN_OPTIONS} "detect_leaks=0")
|
|
||||||
|
|
||||||
cmake_minimum_required(VERSION ${CMAKE_VERSION})
|
|
||||||
|
|
||||||
# Overwrite possibly existing ${_CTEST_FILE} with empty file
|
|
||||||
set(flush_tests_MODE WRITE)
|
|
||||||
|
|
||||||
# Flushes script to ${_CTEST_FILE}
|
|
||||||
macro(flush_script)
|
|
||||||
file(${flush_tests_MODE} "${_CTEST_FILE}" "${script}")
|
|
||||||
set(flush_tests_MODE APPEND)
|
|
||||||
|
|
||||||
set(script "")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
# Flushes tests_buffer to tests
|
|
||||||
macro(flush_tests_buffer)
|
|
||||||
list(APPEND tests "${tests_buffer}")
|
|
||||||
set(tests_buffer "")
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(add_command NAME)
|
|
||||||
set(_args "")
|
|
||||||
foreach(_arg ${ARGN})
|
|
||||||
if(_arg MATCHES "[^-./:a-zA-Z0-9_]")
|
|
||||||
string(APPEND _args " [==[${_arg}]==]")
|
|
||||||
else()
|
|
||||||
string(APPEND _args " ${_arg}")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
string(APPEND script "${NAME}(${_args})\n")
|
|
||||||
string(LENGTH "${script}" _script_len)
|
|
||||||
if(${_script_len} GREATER "50000")
|
|
||||||
flush_script()
|
|
||||||
endif()
|
|
||||||
# Unsets macro local variables to prevent leakage outside of this macro.
|
|
||||||
unset(_args)
|
|
||||||
unset(_script_len)
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
function(gtest_discover_tests_impl)
|
|
||||||
|
|
||||||
cmake_parse_arguments(
|
|
||||||
""
|
|
||||||
""
|
|
||||||
"NO_PRETTY_TYPES;NO_PRETTY_VALUES;TEST_EXECUTABLE;TEST_EXECUTOR;TEST_WORKING_DIR;TEST_PREFIX;TEST_SUFFIX;TEST_LIST;CTEST_FILE;TEST_DISCOVERY_TIMEOUT;TEST_XML_OUTPUT_DIR"
|
|
||||||
"TEST_EXTRA_ARGS;TEST_PROPERTIES"
|
|
||||||
${ARGN}
|
|
||||||
)
|
|
||||||
|
|
||||||
set(prefix "${_TEST_PREFIX}")
|
|
||||||
set(suffix "${_TEST_SUFFIX}")
|
|
||||||
set(extra_args ${_TEST_EXTRA_ARGS})
|
|
||||||
set(properties ${_TEST_PROPERTIES})
|
|
||||||
set(script)
|
|
||||||
set(suite)
|
|
||||||
set(tests)
|
|
||||||
set(tests_buffer)
|
|
||||||
|
|
||||||
# Run test executable to get list of available tests
|
|
||||||
if(NOT EXISTS "${_TEST_EXECUTABLE}")
|
|
||||||
message(FATAL_ERROR
|
|
||||||
"Specified test executable does not exist.\n"
|
|
||||||
" Path: '${_TEST_EXECUTABLE}'"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${_TEST_EXECUTOR} "${_TEST_EXECUTABLE}" --gtest_list_tests
|
|
||||||
WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
|
|
||||||
TIMEOUT ${_TEST_DISCOVERY_TIMEOUT}
|
|
||||||
OUTPUT_VARIABLE output
|
|
||||||
RESULT_VARIABLE result
|
|
||||||
)
|
|
||||||
if(NOT ${result} EQUAL 0)
|
|
||||||
string(REPLACE "\n" "\n " output "${output}")
|
|
||||||
message(FATAL_ERROR
|
|
||||||
"Error running test executable.\n"
|
|
||||||
" Path: '${_TEST_EXECUTABLE}'\n"
|
|
||||||
" Result: ${result}\n"
|
|
||||||
" Output:\n"
|
|
||||||
" ${output}\n"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Preserve semicolon in test-parameters
|
|
||||||
string(REPLACE [[;]] [[\;]] output "${output}")
|
|
||||||
string(REPLACE "\n" ";" output "${output}")
|
|
||||||
|
|
||||||
# Parse output
|
|
||||||
foreach(line ${output})
|
|
||||||
# Skip header
|
|
||||||
if(NOT line MATCHES "gtest_main\\.cc")
|
|
||||||
# Do we have a module name or a test name?
|
|
||||||
if(NOT line MATCHES "^ ")
|
|
||||||
# Module; remove trailing '.' to get just the name...
|
|
||||||
string(REGEX REPLACE "\\.( *#.*)?" "" suite "${line}")
|
|
||||||
if(line MATCHES "#" AND NOT _NO_PRETTY_TYPES)
|
|
||||||
string(REGEX REPLACE "/[0-9]\\.+ +#.*= +" "/" pretty_suite "${line}")
|
|
||||||
else()
|
|
||||||
set(pretty_suite "${suite}")
|
|
||||||
endif()
|
|
||||||
string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
|
|
||||||
else()
|
|
||||||
# Test name; strip spaces and comments to get just the name...
|
|
||||||
string(REGEX REPLACE " +" "" test "${line}")
|
|
||||||
if(test MATCHES "#" AND NOT _NO_PRETTY_VALUES)
|
|
||||||
string(REGEX REPLACE "/[0-9]+#GetParam..=" "/" pretty_test "${test}")
|
|
||||||
else()
|
|
||||||
string(REGEX REPLACE "#.*" "" pretty_test "${test}")
|
|
||||||
endif()
|
|
||||||
string(REGEX REPLACE "^DISABLED_" "" pretty_test "${pretty_test}")
|
|
||||||
string(REGEX REPLACE "#.*" "" test "${test}")
|
|
||||||
if(NOT "${_TEST_XML_OUTPUT_DIR}" STREQUAL "")
|
|
||||||
set(TEST_XML_OUTPUT_PARAM "--gtest_output=xml:${_TEST_XML_OUTPUT_DIR}/${prefix}${suite}.${test}${suffix}.xml")
|
|
||||||
else()
|
|
||||||
unset(TEST_XML_OUTPUT_PARAM)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# sanitize test name for further processing downstream
|
|
||||||
set(testname "${prefix}${pretty_suite}.${pretty_test}${suffix}")
|
|
||||||
# escape \
|
|
||||||
string(REPLACE [[\]] [[\\]] testname "${testname}")
|
|
||||||
# escape ;
|
|
||||||
string(REPLACE [[;]] [[\;]] testname "${testname}")
|
|
||||||
# escape $
|
|
||||||
string(REPLACE [[$]] [[\$]] testname "${testname}")
|
|
||||||
|
|
||||||
# ...and add to script
|
|
||||||
add_command(add_test
|
|
||||||
"${testname}"
|
|
||||||
${_TEST_EXECUTOR}
|
|
||||||
"${_TEST_EXECUTABLE}"
|
|
||||||
"--gtest_filter=${suite}.${test}"
|
|
||||||
"--gtest_also_run_disabled_tests"
|
|
||||||
${TEST_XML_OUTPUT_PARAM}
|
|
||||||
${extra_args}
|
|
||||||
)
|
|
||||||
if(suite MATCHES "^DISABLED" OR test MATCHES "^DISABLED")
|
|
||||||
add_command(set_tests_properties
|
|
||||||
"${testname}"
|
|
||||||
PROPERTIES DISABLED TRUE
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
add_command(set_tests_properties
|
|
||||||
"${testname}"
|
|
||||||
PROPERTIES
|
|
||||||
WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
|
|
||||||
SKIP_REGULAR_EXPRESSION "\\\\[ SKIPPED \\\\]"
|
|
||||||
${properties}
|
|
||||||
)
|
|
||||||
list(APPEND tests_buffer "${testname}")
|
|
||||||
list(LENGTH tests_buffer tests_buffer_length)
|
|
||||||
if(${tests_buffer_length} GREATER "250")
|
|
||||||
flush_tests_buffer()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
|
|
||||||
# Create a list of all discovered tests, which users may use to e.g. set
|
|
||||||
# properties on the tests
|
|
||||||
flush_tests_buffer()
|
|
||||||
add_command(set ${_TEST_LIST} ${tests})
|
|
||||||
|
|
||||||
# Write CTest script
|
|
||||||
flush_script()
|
|
||||||
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
if(CMAKE_SCRIPT_MODE_FILE)
|
|
||||||
gtest_discover_tests_impl(
|
|
||||||
NO_PRETTY_TYPES ${NO_PRETTY_TYPES}
|
|
||||||
NO_PRETTY_VALUES ${NO_PRETTY_VALUES}
|
|
||||||
TEST_EXECUTABLE ${TEST_EXECUTABLE}
|
|
||||||
TEST_EXECUTOR ${TEST_EXECUTOR}
|
|
||||||
TEST_WORKING_DIR ${TEST_WORKING_DIR}
|
|
||||||
TEST_PREFIX ${TEST_PREFIX}
|
|
||||||
TEST_SUFFIX ${TEST_SUFFIX}
|
|
||||||
TEST_LIST ${TEST_LIST}
|
|
||||||
CTEST_FILE ${CTEST_FILE}
|
|
||||||
TEST_DISCOVERY_TIMEOUT ${TEST_DISCOVERY_TIMEOUT}
|
|
||||||
TEST_XML_OUTPUT_DIR ${TEST_XML_OUTPUT_DIR}
|
|
||||||
TEST_EXTRA_ARGS ${TEST_EXTRA_ARGS}
|
|
||||||
TEST_PROPERTIES ${TEST_PROPERTIES}
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,8 +1,12 @@
|
|||||||
#=============================================================================
|
#=============================================================================
|
||||||
# Copyright 2014 Blender Foundation.
|
# Copyright 2014 Blender Foundation.
|
||||||
#
|
#
|
||||||
# Distributed under the OSI-approved BSD 3-Clause License,
|
# Distributed under the OSI-approved BSD License (the "License");
|
||||||
# see accompanying file BSD-3-Clause-license.txt for details.
|
# see accompanying file Copyright.txt for details.
|
||||||
|
#
|
||||||
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||||
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
# See the License for more information.
|
||||||
#
|
#
|
||||||
# Inspired on the Testing.cmake from Libmv
|
# Inspired on the Testing.cmake from Libmv
|
||||||
#
|
#
|
||||||
@@ -70,9 +74,6 @@ macro(BLENDER_SRC_GTEST_EX)
|
|||||||
if(WITH_TBB)
|
if(WITH_TBB)
|
||||||
target_link_libraries(${TARGET_NAME} ${TBB_LIBRARIES})
|
target_link_libraries(${TARGET_NAME} ${TBB_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
if(WITH_GMP)
|
|
||||||
target_link_libraries(${TARGET_NAME} ${GMP_LIBRARIES})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||||
if(GENERATOR_IS_MULTI_CONFIG)
|
if(GENERATOR_IS_MULTI_CONFIG)
|
||||||
|
@@ -15,12 +15,10 @@ set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
|||||||
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_GMP ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_LIBMV ON CACHE BOOL "" FORCE)
|
set(WITH_LIBMV ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
|
set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE)
|
set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_GMP ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE)
|
set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IK_ITASC ON CACHE BOOL "" FORCE)
|
set(WITH_IK_ITASC ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE)
|
||||||
|
@@ -20,12 +20,10 @@ set(WITH_CYCLES_OSL OFF CACHE BOOL "" FORCE)
|
|||||||
set(WITH_CYCLES_DEVICE_OPTIX OFF CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_DEVICE_OPTIX OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_DRACO OFF CACHE BOOL "" FORCE)
|
set(WITH_DRACO OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_FFTW3 OFF CACHE BOOL "" FORCE)
|
set(WITH_FFTW3 OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_GMP 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)
|
||||||
set(WITH_COMPOSITOR OFF CACHE BOOL "" FORCE)
|
set(WITH_COMPOSITOR OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_FREESTYLE OFF CACHE BOOL "" FORCE)
|
set(WITH_FREESTYLE OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_GMP OFF CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_IK_SOLVER OFF CACHE BOOL "" FORCE)
|
set(WITH_IK_SOLVER OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_IK_ITASC OFF CACHE BOOL "" FORCE)
|
set(WITH_IK_ITASC OFF CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_CINEON OFF CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_CINEON OFF CACHE BOOL "" FORCE)
|
||||||
|
@@ -16,12 +16,10 @@ set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
|||||||
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_GMP ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_LIBMV ON CACHE BOOL "" FORCE)
|
set(WITH_LIBMV ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
|
set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE)
|
set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
set(WITH_FREESTYLE ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_GMP ON CACHE BOOL "" FORCE)
|
|
||||||
set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE)
|
set(WITH_IK_SOLVER ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IK_ITASC ON CACHE BOOL "" FORCE)
|
set(WITH_IK_ITASC ON CACHE BOOL "" FORCE)
|
||||||
set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE)
|
set(WITH_IMAGE_CINEON ON CACHE BOOL "" FORCE)
|
||||||
|
@@ -418,7 +418,7 @@ function(setup_heavy_lib_pool)
|
|||||||
list(APPEND _HEAVY_LIBS "cycles_device" "cycles_kernel")
|
list(APPEND _HEAVY_LIBS "cycles_device" "cycles_kernel")
|
||||||
endif()
|
endif()
|
||||||
if(WITH_LIBMV)
|
if(WITH_LIBMV)
|
||||||
list(APPEND _HEAVY_LIBS "extern_ceres" "bf_intern_libmv")
|
list(APPEND _HEAVY_LIBS "bf_intern_libmv")
|
||||||
endif()
|
endif()
|
||||||
if(WITH_OPENVDB)
|
if(WITH_OPENVDB)
|
||||||
list(APPEND _HEAVY_LIBS "bf_intern_openvdb")
|
list(APPEND _HEAVY_LIBS "bf_intern_openvdb")
|
||||||
@@ -496,10 +496,6 @@ function(SETUP_LIBDIRS)
|
|||||||
link_directories(${ALEMBIC_LIBPATH})
|
link_directories(${ALEMBIC_LIBPATH})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
|
||||||
link_directories(${GMP_LIBPATH})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_GHOST_WAYLAND)
|
if(WITH_GHOST_WAYLAND)
|
||||||
link_directories(
|
link_directories(
|
||||||
${wayland-client_LIBRARY_DIRS}
|
${wayland-client_LIBRARY_DIRS}
|
||||||
|
@@ -373,9 +373,8 @@ if(WITH_CYCLES_OSL)
|
|||||||
list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
|
list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
|
||||||
find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
|
find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
|
||||||
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
|
find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
|
||||||
find_path(OSL_SHADER_DIR NAMES stdosl.h PATHS ${CYCLES_OSL}/shaders)
|
|
||||||
|
|
||||||
if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER AND OSL_SHADER_DIR)
|
if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
|
||||||
set(OSL_FOUND TRUE)
|
set(OSL_FOUND TRUE)
|
||||||
else()
|
else()
|
||||||
message(STATUS "OSL not found")
|
message(STATUS "OSL not found")
|
||||||
@@ -407,15 +406,6 @@ if(WITH_TBB)
|
|||||||
find_package(TBB)
|
find_package(TBB)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
|
||||||
find_package(GMP)
|
|
||||||
|
|
||||||
if(NOT GMP_FOUND)
|
|
||||||
set(WITH_GMP OFF)
|
|
||||||
message(STATUS "GMP not found")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags.
|
# CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags.
|
||||||
if(WITH_OPENMP)
|
if(WITH_OPENMP)
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
|
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
|
||||||
@@ -440,21 +430,13 @@ if(WITH_OPENMP)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_XR_OPENXR)
|
if(WITH_XR_OPENXR)
|
||||||
find_package(XR_OpenXR_SDK)
|
find_package(OpenXR-SDK)
|
||||||
if(NOT XR_OPENXR_SDK_FOUND)
|
if(NOT OPENXR_SDK_FOUND)
|
||||||
message(WARNING "OpenXR-SDK was not found, disabling WITH_XR_OPENXR")
|
message(WARNING "OpenXR-SDK was not found, disabling WITH_XR_OPENXR")
|
||||||
set(WITH_XR_OPENXR OFF)
|
set(WITH_XR_OPENXR OFF)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
|
||||||
find_package(GMP)
|
|
||||||
if(NOT GMP_FOUND)
|
|
||||||
message(WARNING "GMP not found, disabling WITH_GMP")
|
|
||||||
set(WITH_GMP OFF)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(EXETYPE MACOSX_BUNDLE)
|
set(EXETYPE MACOSX_BUNDLE)
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
|
set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
|
||||||
|
@@ -234,10 +234,10 @@ endif()
|
|||||||
|
|
||||||
if(WITH_CYCLES_OSL)
|
if(WITH_CYCLES_OSL)
|
||||||
set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
|
set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
|
||||||
if(EXISTS ${CYCLES_OSL} AND NOT OSL_ROOT)
|
if(NOT OSL_ROOT)
|
||||||
set(OSL_ROOT ${CYCLES_OSL})
|
set(OSL_ROOT ${CYCLES_OSL})
|
||||||
endif()
|
endif()
|
||||||
find_package_wrapper(OSL)
|
find_package_wrapper(OpenShadingLanguage)
|
||||||
if(OSL_FOUND)
|
if(OSL_FOUND)
|
||||||
if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")
|
if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")
|
||||||
# Note: --whole-archive is needed to force loading of all symbols in liboslexec,
|
# Note: --whole-archive is needed to force loading of all symbols in liboslexec,
|
||||||
@@ -427,31 +427,14 @@ if(WITH_TBB)
|
|||||||
find_package_wrapper(TBB)
|
find_package_wrapper(TBB)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
|
||||||
find_package(GMP)
|
|
||||||
|
|
||||||
if(NOT GMP_FOUND)
|
|
||||||
set(WITH_GMP OFF)
|
|
||||||
message(STATUS "GMP not found")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WITH_XR_OPENXR)
|
if(WITH_XR_OPENXR)
|
||||||
find_package(XR_OpenXR_SDK)
|
find_package(XR-OpenXR-SDK)
|
||||||
if(NOT XR_OPENXR_SDK_FOUND)
|
if(NOT XR_OPENXR_SDK_FOUND)
|
||||||
message(WARNING "OpenXR-SDK not found, disabling WITH_XR_OPENXR")
|
message(WARNING "OpenXR-SDK not found, disabling WITH_XR_OPENXR")
|
||||||
set(WITH_XR_OPENXR OFF)
|
set(WITH_XR_OPENXR OFF)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
|
||||||
find_package_wrapper(GMP)
|
|
||||||
if(NOT GMP_FOUND)
|
|
||||||
message(WARNING "GMP not found, disabling WITH_GMP")
|
|
||||||
set(WITH_GMP OFF)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(EXISTS ${LIBDIR})
|
if(EXISTS ${LIBDIR})
|
||||||
without_system_libs_end()
|
without_system_libs_end()
|
||||||
endif()
|
endif()
|
||||||
@@ -599,14 +582,6 @@ endif()
|
|||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
|
set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
|
||||||
|
|
||||||
# `maybe-uninitialized` is unreliable in release builds, but fine in debug builds.
|
|
||||||
set(GCC_EXTRA_FLAGS_RELEASE "-Wno-maybe-uninitialized")
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_C_FLAGS_RELEASE}")
|
|
||||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELEASE}")
|
|
||||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${GCC_EXTRA_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
|
||||||
unset(GCC_EXTRA_FLAGS_RELEASE)
|
|
||||||
|
|
||||||
if(WITH_LINKER_GOLD)
|
if(WITH_LINKER_GOLD)
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version
|
COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version
|
||||||
|
@@ -136,13 +136,6 @@ add_definitions(
|
|||||||
# MSVC11 needs _ALLOW_KEYWORD_MACROS to build
|
# MSVC11 needs _ALLOW_KEYWORD_MACROS to build
|
||||||
add_definitions(-D_ALLOW_KEYWORD_MACROS)
|
add_definitions(-D_ALLOW_KEYWORD_MACROS)
|
||||||
|
|
||||||
# RTTI is on by default even without this switch
|
|
||||||
# however having it in the CXX Flags makes it difficult
|
|
||||||
# to remove for individual files that want to disable it
|
|
||||||
# using the /GR- flag without generating a build warning
|
|
||||||
# that both /GR and /GR- are specified.
|
|
||||||
remove_cc_flag("/GR")
|
|
||||||
|
|
||||||
# We want to support Windows 7 level ABI
|
# We want to support Windows 7 level ABI
|
||||||
add_definitions(-D_WIN32_WINNT=0x601)
|
add_definitions(-D_WIN32_WINNT=0x601)
|
||||||
include(build_files/cmake/platform/platform_win32_bundle_crt.cmake)
|
include(build_files/cmake/platform/platform_win32_bundle_crt.cmake)
|
||||||
@@ -423,6 +416,9 @@ if(WITH_BOOST)
|
|||||||
if(WITH_INTERNATIONAL)
|
if(WITH_INTERNATIONAL)
|
||||||
list(APPEND boost_extra_libs locale)
|
list(APPEND boost_extra_libs locale)
|
||||||
endif()
|
endif()
|
||||||
|
if(WITH_OPENVDB)
|
||||||
|
list(APPEND boost_extra_libs iostreams)
|
||||||
|
endif()
|
||||||
set(Boost_USE_STATIC_RUNTIME ON) # prefix lib
|
set(Boost_USE_STATIC_RUNTIME ON) # prefix lib
|
||||||
set(Boost_USE_MULTITHREADED ON) # suffix -mt
|
set(Boost_USE_MULTITHREADED ON) # suffix -mt
|
||||||
set(Boost_USE_STATIC_LIBS ON) # suffix -s
|
set(Boost_USE_STATIC_LIBS ON) # suffix -s
|
||||||
@@ -528,11 +524,12 @@ if(WITH_OPENCOLORIO)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENVDB)
|
if(WITH_OPENVDB)
|
||||||
|
set(BLOSC_LIBRARIES optimized ${LIBDIR}/blosc/lib/libblosc.lib debug ${LIBDIR}/blosc/lib/libblosc_d.lib)
|
||||||
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 ${BLOSC_LIBRARIES})
|
||||||
set(OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES)
|
set(OPENVDB_DEFINITIONS -DNOMINMAX -DOPENVDB_STATICLIB -D_USE_MATH_DEFINES)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENIMAGEDENOISE)
|
if(WITH_OPENIMAGEDENOISE)
|
||||||
@@ -753,10 +750,3 @@ if(WITH_XR_OPENXR)
|
|||||||
set(WITH_XR_OPENXR OFF)
|
set(WITH_XR_OPENXR OFF)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_GMP)
|
|
||||||
set(GMP_INCLUDE_DIRS ${LIBDIR}/gmp/include)
|
|
||||||
set(GMP_LIBRARIES ${LIBDIR}/gmp/lib/libgmp-10.lib optimized ${LIBDIR}/gmp/lib/libgmpxx.lib debug ${LIBDIR}/gmp/lib/libgmpxx_d.lib)
|
|
||||||
set(GMP_ROOT_DIR ${LIBDIR}/gmp)
|
|
||||||
set(GMP_FOUND On)
|
|
||||||
endif()
|
|
||||||
|
@@ -1,26 +0,0 @@
|
|||||||
BSD 3-Clause License
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
3. Neither the name of the copyright holder nor the names of its
|
|
||||||
contributors may be used to endorse or promote products derived from
|
|
||||||
this software without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -20,7 +20,6 @@ from gpu_extras.presets import draw_circle_2d
|
|||||||
offscreen = gpu.types.GPUOffScreen(512, 512)
|
offscreen = gpu.types.GPUOffScreen(512, 512)
|
||||||
|
|
||||||
with offscreen.bind():
|
with offscreen.bind():
|
||||||
bgl.glClearColor(0.0, 0.0, 0.0, 0.0)
|
|
||||||
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
||||||
with gpu.matrix.push_pop():
|
with gpu.matrix.push_pop():
|
||||||
# reset matrices -> use normalized device coordinates [-1, 1]
|
# reset matrices -> use normalized device coordinates [-1, 1]
|
||||||
|
@@ -25,7 +25,6 @@ RING_AMOUNT = 10
|
|||||||
offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
|
offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
|
||||||
|
|
||||||
with offscreen.bind():
|
with offscreen.bind():
|
||||||
bgl.glClearColor(0.0, 0.0, 0.0, 0.0)
|
|
||||||
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
||||||
with gpu.matrix.push_pop():
|
with gpu.matrix.push_pop():
|
||||||
# reset matrices -> use normalized device coordinates [-1, 1]
|
# reset matrices -> use normalized device coordinates [-1, 1]
|
||||||
|
File diff suppressed because it is too large
Load Diff
2
extern/audaspace/bindings/python/PySound.cpp
vendored
2
extern/audaspace/bindings/python/PySound.cpp
vendored
@@ -2016,7 +2016,7 @@ AUD_API Sound* checkSound(PyObject* sound)
|
|||||||
|
|
||||||
bool initializeSound()
|
bool initializeSound()
|
||||||
{
|
{
|
||||||
import_array1(false);
|
import_array();
|
||||||
|
|
||||||
return PyType_Ready(&SoundType) >= 0;
|
return PyType_Ready(&SoundType) >= 0;
|
||||||
}
|
}
|
||||||
|
@@ -119,8 +119,8 @@ void JOSResampleReader::updateBuffer(int size, double factor, int samplesize)
|
|||||||
P = int_to_fp(m_L) - P;\
|
P = int_to_fp(m_L) - P;\
|
||||||
\
|
\
|
||||||
end = std::floor((m_len - 1) / double(m_L) + m_P) - 1;\
|
end = std::floor((m_len - 1) / double(m_L) + m_P) - 1;\
|
||||||
if(m_cache_valid - int(m_n) - 2 < end)\
|
if(m_cache_valid - m_n - 2 < end)\
|
||||||
end = m_cache_valid - int(m_n) - 2;\
|
end = m_cache_valid - m_n - 2;\
|
||||||
\
|
\
|
||||||
data = buf + (m_n + 2 + end) * m_channels - 1;\
|
data = buf + (m_n + 2 + end) * m_channels - 1;\
|
||||||
l = fp_to_int(P);\
|
l = fp_to_int(P);\
|
||||||
@@ -166,8 +166,8 @@ void JOSResampleReader::updateBuffer(int size, double factor, int samplesize)
|
|||||||
P = 0 - P;\
|
P = 0 - P;\
|
||||||
\
|
\
|
||||||
end = (int_to_fp(m_len) - P) / P_increment - 1;\
|
end = (int_to_fp(m_len) - P) / P_increment - 1;\
|
||||||
if(m_cache_valid - int(m_n) - 2 < end)\
|
if(m_cache_valid - m_n - 2 < end)\
|
||||||
end = m_cache_valid - int(m_n) - 2;\
|
end = m_cache_valid - m_n - 2;\
|
||||||
\
|
\
|
||||||
P += P_increment * end;\
|
P += P_increment * end;\
|
||||||
data = buf + (m_n + 2 + end) * m_channels - 1;\
|
data = buf + (m_n + 2 + end) * m_channels - 1;\
|
||||||
|
3
extern/bullet2/CMakeLists.txt
vendored
3
extern/bullet2/CMakeLists.txt
vendored
@@ -419,8 +419,7 @@ if(MSVC)
|
|||||||
# bullet is responsible for quite a few silly warnings
|
# bullet is responsible for quite a few silly warnings
|
||||||
# suppress all of them. Not great, but they really needed
|
# suppress all of them. Not great, but they really needed
|
||||||
# to sort that out themselves.
|
# to sort that out themselves.
|
||||||
remove_cc_flag("/W3")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W0")
|
||||||
add_c_flag("/W0")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
blender_add_lib(extern_bullet "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|
blender_add_lib(extern_bullet "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|
||||||
|
1
extern/mantaflow/CMakeLists.txt
vendored
1
extern/mantaflow/CMakeLists.txt
vendored
@@ -64,6 +64,7 @@ endif()
|
|||||||
|
|
||||||
if(WITH_OPENVDB)
|
if(WITH_OPENVDB)
|
||||||
add_definitions(-DOPENVDB=1)
|
add_definitions(-DOPENVDB=1)
|
||||||
|
add_definitions(-DOPENVDB_STATICLIB)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_OPENVDB_BLOSC)
|
if(WITH_OPENVDB_BLOSC)
|
||||||
|
2
extern/mantaflow/preprocessed/gitinfo.h
vendored
2
extern/mantaflow/preprocessed/gitinfo.h
vendored
@@ -1,3 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
#define MANTA_GIT_VERSION "commit e2f6e59e3679f88e5100ae2145410cca4971b9df"
|
#define MANTA_GIT_VERSION "commit 841bfd09c068dfb95637c0ec14fa78305286a433"
|
||||||
|
102
extern/mantaflow/preprocessed/grid.h
vendored
102
extern/mantaflow/preprocessed/grid.h
vendored
@@ -355,38 +355,6 @@ class GridBase : public PbClass {
|
|||||||
return isInBounds(Vec3i(i, j, k), bnd);
|
return isInBounds(Vec3i(i, j, k), bnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef BLENDER
|
|
||||||
//! expose name field to Python for Blender
|
|
||||||
void setName(const std::string &name)
|
|
||||||
{
|
|
||||||
mName = name;
|
|
||||||
}
|
|
||||||
static PyObject *_W_9(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
PbArgs _args(_linargs, _kwds);
|
|
||||||
GridBase *pbo = dynamic_cast<GridBase *>(Pb::objFromPy(_self));
|
|
||||||
bool noTiming = _args.getOpt<bool>("notiming", -1, 0);
|
|
||||||
pbPreparePlugin(pbo->getParent(), "GridBase::setName", !noTiming);
|
|
||||||
PyObject *_retval = 0;
|
|
||||||
{
|
|
||||||
ArgLocker _lock;
|
|
||||||
const std::string &name = _args.get<std::string>("name", 0, &_lock);
|
|
||||||
pbo->_args.copy(_args);
|
|
||||||
_retval = getPyNone();
|
|
||||||
pbo->setName(name);
|
|
||||||
pbo->_args.check();
|
|
||||||
}
|
|
||||||
pbFinalizePlugin(pbo->getParent(), "GridBase::setName", !noTiming);
|
|
||||||
return _retval;
|
|
||||||
}
|
|
||||||
catch (std::exception &e) {
|
|
||||||
pbSetError("GridBase::setName", e.what());
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
protected:
|
protected:
|
||||||
GridType mType;
|
GridType mType;
|
||||||
Vec3i mSize;
|
Vec3i mSize;
|
||||||
@@ -405,7 +373,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
public:
|
public:
|
||||||
//! init new grid, values are set to zero
|
//! init new grid, values are set to zero
|
||||||
Grid(FluidSolver *parent, bool show = true);
|
Grid(FluidSolver *parent, bool show = true);
|
||||||
static int _W_10(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static int _W_9(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
PbClass *obj = Pb::objFromPy(_self);
|
PbClass *obj = Pb::objFromPy(_self);
|
||||||
if (obj)
|
if (obj)
|
||||||
@@ -442,7 +410,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
typedef GridBase BASETYPE_GRID;
|
typedef GridBase BASETYPE_GRID;
|
||||||
|
|
||||||
int save(std::string name);
|
int save(std::string name);
|
||||||
static PyObject *_W_11(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_10(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -467,7 +435,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int load(std::string name);
|
int load(std::string name);
|
||||||
static PyObject *_W_12(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_11(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -493,7 +461,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! set all cells to zero
|
//! set all cells to zero
|
||||||
void clear();
|
void clear();
|
||||||
static PyObject *_W_13(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_12(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -620,7 +588,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
// Grid<T>& operator=(const Grid<T>& a);
|
// Grid<T>& operator=(const Grid<T>& a);
|
||||||
//! copy content from other grid (use this one instead of operator= !)
|
//! copy content from other grid (use this one instead of operator= !)
|
||||||
Grid<T> ©From(const Grid<T> &a, bool copyType = true);
|
Grid<T> ©From(const Grid<T> &a, bool copyType = true);
|
||||||
static PyObject *_W_14(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_13(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -650,7 +618,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! get grid type
|
//! get grid type
|
||||||
int getGridType();
|
int getGridType();
|
||||||
static PyObject *_W_15(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_14(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -675,7 +643,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! add/subtract other grid
|
//! add/subtract other grid
|
||||||
void add(const Grid<T> &a);
|
void add(const Grid<T> &a);
|
||||||
static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_15(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -701,7 +669,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void sub(const Grid<T> &a);
|
void sub(const Grid<T> &a);
|
||||||
static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_16(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -728,7 +696,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! set all cells to constant value
|
//! set all cells to constant value
|
||||||
void setConst(T s);
|
void setConst(T s);
|
||||||
static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_17(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -755,7 +723,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! add constant to all grid cells
|
//! add constant to all grid cells
|
||||||
void addConst(T s);
|
void addConst(T s);
|
||||||
static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_18(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -782,7 +750,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! add scaled other grid to current one (note, only "Real" factor, "T" type not supported here!)
|
//! add scaled other grid to current one (note, only "Real" factor, "T" type not supported here!)
|
||||||
void addScaled(const Grid<T> &a, const T &factor);
|
void addScaled(const Grid<T> &a, const T &factor);
|
||||||
static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_19(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -810,7 +778,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! multiply contents of grid
|
//! multiply contents of grid
|
||||||
void mult(const Grid<T> &a);
|
void mult(const Grid<T> &a);
|
||||||
static PyObject *_W_21(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_20(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -837,7 +805,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! multiply each cell by a constant scalar value
|
//! multiply each cell by a constant scalar value
|
||||||
void multConst(T s);
|
void multConst(T s);
|
||||||
static PyObject *_W_22(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_21(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -864,7 +832,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! safely divide contents of grid (with zero check)
|
//! safely divide contents of grid (with zero check)
|
||||||
Grid<T> &safeDivide(const Grid<T> &a);
|
Grid<T> &safeDivide(const Grid<T> &a);
|
||||||
static PyObject *_W_23(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_22(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -890,7 +858,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! clamp content to range (for vec3, clamps each component separately)
|
//! clamp content to range (for vec3, clamps each component separately)
|
||||||
void clamp(Real min, Real max);
|
void clamp(Real min, Real max);
|
||||||
static PyObject *_W_24(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_23(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -918,7 +886,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! reduce small values to zero
|
//! reduce small values to zero
|
||||||
void stomp(const T &threshold);
|
void stomp(const T &threshold);
|
||||||
static PyObject *_W_25(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_24(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -945,7 +913,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! permute grid axes, e.g. switch y with z (0,2,1)
|
//! permute grid axes, e.g. switch y with z (0,2,1)
|
||||||
void permuteAxes(int axis0, int axis1, int axis2);
|
void permuteAxes(int axis0, int axis1, int axis2);
|
||||||
static PyObject *_W_26(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_25(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -974,7 +942,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! permute grid axes, e.g. switch y with z (0,2,1)
|
//! permute grid axes, e.g. switch y with z (0,2,1)
|
||||||
void permuteAxesCopyToGrid(int axis0, int axis1, int axis2, Grid<T> &out);
|
void permuteAxesCopyToGrid(int axis0, int axis1, int axis2, Grid<T> &out);
|
||||||
static PyObject *_W_27(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_26(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1004,7 +972,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! join other grid by either keeping min or max value at cell
|
//! join other grid by either keeping min or max value at cell
|
||||||
void join(const Grid<T> &a, bool keepMax = true);
|
void join(const Grid<T> &a, bool keepMax = true);
|
||||||
static PyObject *_W_28(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_27(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1033,7 +1001,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
// common compound operators
|
// common compound operators
|
||||||
//! get absolute max value in grid
|
//! get absolute max value in grid
|
||||||
Real getMaxAbs() const;
|
Real getMaxAbs() const;
|
||||||
static PyObject *_W_29(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_28(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1058,7 +1026,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! get max value in grid
|
//! get max value in grid
|
||||||
Real getMax() const;
|
Real getMax() const;
|
||||||
static PyObject *_W_30(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_29(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1083,7 +1051,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! get min value in grid
|
//! get min value in grid
|
||||||
Real getMin() const;
|
Real getMin() const;
|
||||||
static PyObject *_W_31(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_30(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1108,7 +1076,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! calculate L1 norm of grid content
|
//! calculate L1 norm of grid content
|
||||||
Real getL1(int bnd = 0);
|
Real getL1(int bnd = 0);
|
||||||
static PyObject *_W_32(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_31(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1134,7 +1102,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! calculate L2 norm of grid content
|
//! calculate L2 norm of grid content
|
||||||
Real getL2(int bnd = 0);
|
Real getL2(int bnd = 0);
|
||||||
static PyObject *_W_33(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_32(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1160,7 +1128,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! set all boundary cells to constant value (Dirichlet)
|
//! set all boundary cells to constant value (Dirichlet)
|
||||||
void setBound(T value, int boundaryWidth = 1);
|
void setBound(T value, int boundaryWidth = 1);
|
||||||
static PyObject *_W_34(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_33(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1188,7 +1156,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! set all boundary cells to last inner value (Neumann)
|
//! set all boundary cells to last inner value (Neumann)
|
||||||
void setBoundNeumann(int boundaryWidth = 1);
|
void setBoundNeumann(int boundaryWidth = 1);
|
||||||
static PyObject *_W_35(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_34(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1215,7 +1183,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! get data pointer of grid
|
//! get data pointer of grid
|
||||||
std::string getDataPointer();
|
std::string getDataPointer();
|
||||||
static PyObject *_W_36(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_35(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1240,7 +1208,7 @@ template<class T> class Grid : public GridBase {
|
|||||||
|
|
||||||
//! debugging helper, print grid from python. skip boundary of width bnd
|
//! debugging helper, print grid from python. skip boundary of width bnd
|
||||||
void printGrid(int zSlice = -1, bool printIndex = false, int bnd = 1);
|
void printGrid(int zSlice = -1, bool printIndex = false, int bnd = 1);
|
||||||
static PyObject *_W_37(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_36(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1308,7 +1276,7 @@ class MACGrid : public Grid<Vec3> {
|
|||||||
{
|
{
|
||||||
mType = (GridType)(TypeMAC | TypeVec3);
|
mType = (GridType)(TypeMAC | TypeVec3);
|
||||||
}
|
}
|
||||||
static int _W_38(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static int _W_37(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
PbClass *obj = Pb::objFromPy(_self);
|
PbClass *obj = Pb::objFromPy(_self);
|
||||||
if (obj)
|
if (obj)
|
||||||
@@ -1390,7 +1358,7 @@ class MACGrid : public Grid<Vec3> {
|
|||||||
//! set all boundary cells of a MAC grid to certain value (Dirchlet). Respects staggered grid
|
//! set all boundary cells of a MAC grid to certain value (Dirchlet). Respects staggered grid
|
||||||
//! locations optionally, only set normal components
|
//! locations optionally, only set normal components
|
||||||
void setBoundMAC(Vec3 value, int boundaryWidth, bool normalOnly = false);
|
void setBoundMAC(Vec3 value, int boundaryWidth, bool normalOnly = false);
|
||||||
static PyObject *_W_39(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_38(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1431,7 +1399,7 @@ class FlagGrid : public Grid<int> {
|
|||||||
{
|
{
|
||||||
mType = (GridType)(TypeFlags | TypeInt);
|
mType = (GridType)(TypeFlags | TypeInt);
|
||||||
}
|
}
|
||||||
static int _W_40(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static int _W_39(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
PbClass *obj = Pb::objFromPy(_self);
|
PbClass *obj = Pb::objFromPy(_self);
|
||||||
if (obj)
|
if (obj)
|
||||||
@@ -1611,7 +1579,7 @@ class FlagGrid : public Grid<int> {
|
|||||||
const std::string &inflow = " ",
|
const std::string &inflow = " ",
|
||||||
const std::string &outflow = " ",
|
const std::string &outflow = " ",
|
||||||
Grid<Real> *phiWalls = 0x00);
|
Grid<Real> *phiWalls = 0x00);
|
||||||
static PyObject *_W_41(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_40(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1645,7 +1613,7 @@ class FlagGrid : public Grid<int> {
|
|||||||
|
|
||||||
//! set fluid flags inside levelset (liquids)
|
//! set fluid flags inside levelset (liquids)
|
||||||
void updateFromLevelset(LevelsetGrid &levelset);
|
void updateFromLevelset(LevelsetGrid &levelset);
|
||||||
static PyObject *_W_42(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_41(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1672,7 +1640,7 @@ class FlagGrid : public Grid<int> {
|
|||||||
|
|
||||||
//! set all cells (except obs/in/outflow) to type (fluid by default)
|
//! set all cells (except obs/in/outflow) to type (fluid by default)
|
||||||
void fillGrid(int type = TypeFluid);
|
void fillGrid(int type = TypeFluid);
|
||||||
static PyObject *_W_43(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_42(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
@@ -1701,7 +1669,7 @@ class FlagGrid : public Grid<int> {
|
|||||||
//! warning for large grids! only regular int returned (due to python interface)
|
//! warning for large grids! only regular int returned (due to python interface)
|
||||||
//! optionally creates mask in RealGrid (1 where flag matches, 0 otherwise)
|
//! optionally creates mask in RealGrid (1 where flag matches, 0 otherwise)
|
||||||
int countCells(int flag, int bnd = 0, Grid<Real> *mask = NULL);
|
int countCells(int flag, int bnd = 0, Grid<Real> *mask = NULL);
|
||||||
static PyObject *_W_44(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
static PyObject *_W_43(PyObject *_self, PyObject *_linargs, PyObject *_kwds)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
PbArgs _args(_linargs, _kwds);
|
PbArgs _args(_linargs, _kwds);
|
||||||
|
186
extern/mantaflow/preprocessed/grid.h.reg.cpp
vendored
186
extern/mantaflow/preprocessed/grid.h.reg.cpp
vendored
@@ -8,103 +8,103 @@ namespace Manta {
|
|||||||
#ifdef _C_FlagGrid
|
#ifdef _C_FlagGrid
|
||||||
static const Pb::Register _R_26("FlagGrid", "FlagGrid", "Grid<int>");
|
static const Pb::Register _R_26("FlagGrid", "FlagGrid", "Grid<int>");
|
||||||
template<> const char *Namify<FlagGrid>::S = "FlagGrid";
|
template<> const char *Namify<FlagGrid>::S = "FlagGrid";
|
||||||
static const Pb::Register _R_27("FlagGrid", "FlagGrid", FlagGrid::_W_40);
|
static const Pb::Register _R_27("FlagGrid", "FlagGrid", FlagGrid::_W_39);
|
||||||
static const Pb::Register _R_28("FlagGrid", "initDomain", FlagGrid::_W_41);
|
static const Pb::Register _R_28("FlagGrid", "initDomain", FlagGrid::_W_40);
|
||||||
static const Pb::Register _R_29("FlagGrid", "updateFromLevelset", FlagGrid::_W_42);
|
static const Pb::Register _R_29("FlagGrid", "updateFromLevelset", FlagGrid::_W_41);
|
||||||
static const Pb::Register _R_30("FlagGrid", "fillGrid", FlagGrid::_W_43);
|
static const Pb::Register _R_30("FlagGrid", "fillGrid", FlagGrid::_W_42);
|
||||||
static const Pb::Register _R_31("FlagGrid", "countCells", FlagGrid::_W_44);
|
static const Pb::Register _R_31("FlagGrid", "countCells", FlagGrid::_W_43);
|
||||||
#endif
|
#endif
|
||||||
#ifdef _C_Grid
|
#ifdef _C_Grid
|
||||||
static const Pb::Register _R_32("Grid<int>", "Grid<int>", "GridBase");
|
static const Pb::Register _R_32("Grid<int>", "Grid<int>", "GridBase");
|
||||||
template<> const char *Namify<Grid<int>>::S = "Grid<int>";
|
template<> const char *Namify<Grid<int>>::S = "Grid<int>";
|
||||||
static const Pb::Register _R_33("Grid<int>", "Grid", Grid<int>::_W_10);
|
static const Pb::Register _R_33("Grid<int>", "Grid", Grid<int>::_W_9);
|
||||||
static const Pb::Register _R_34("Grid<int>", "save", Grid<int>::_W_11);
|
static const Pb::Register _R_34("Grid<int>", "save", Grid<int>::_W_10);
|
||||||
static const Pb::Register _R_35("Grid<int>", "load", Grid<int>::_W_12);
|
static const Pb::Register _R_35("Grid<int>", "load", Grid<int>::_W_11);
|
||||||
static const Pb::Register _R_36("Grid<int>", "clear", Grid<int>::_W_13);
|
static const Pb::Register _R_36("Grid<int>", "clear", Grid<int>::_W_12);
|
||||||
static const Pb::Register _R_37("Grid<int>", "copyFrom", Grid<int>::_W_14);
|
static const Pb::Register _R_37("Grid<int>", "copyFrom", Grid<int>::_W_13);
|
||||||
static const Pb::Register _R_38("Grid<int>", "getGridType", Grid<int>::_W_15);
|
static const Pb::Register _R_38("Grid<int>", "getGridType", Grid<int>::_W_14);
|
||||||
static const Pb::Register _R_39("Grid<int>", "add", Grid<int>::_W_16);
|
static const Pb::Register _R_39("Grid<int>", "add", Grid<int>::_W_15);
|
||||||
static const Pb::Register _R_40("Grid<int>", "sub", Grid<int>::_W_17);
|
static const Pb::Register _R_40("Grid<int>", "sub", Grid<int>::_W_16);
|
||||||
static const Pb::Register _R_41("Grid<int>", "setConst", Grid<int>::_W_18);
|
static const Pb::Register _R_41("Grid<int>", "setConst", Grid<int>::_W_17);
|
||||||
static const Pb::Register _R_42("Grid<int>", "addConst", Grid<int>::_W_19);
|
static const Pb::Register _R_42("Grid<int>", "addConst", Grid<int>::_W_18);
|
||||||
static const Pb::Register _R_43("Grid<int>", "addScaled", Grid<int>::_W_20);
|
static const Pb::Register _R_43("Grid<int>", "addScaled", Grid<int>::_W_19);
|
||||||
static const Pb::Register _R_44("Grid<int>", "mult", Grid<int>::_W_21);
|
static const Pb::Register _R_44("Grid<int>", "mult", Grid<int>::_W_20);
|
||||||
static const Pb::Register _R_45("Grid<int>", "multConst", Grid<int>::_W_22);
|
static const Pb::Register _R_45("Grid<int>", "multConst", Grid<int>::_W_21);
|
||||||
static const Pb::Register _R_46("Grid<int>", "safeDivide", Grid<int>::_W_23);
|
static const Pb::Register _R_46("Grid<int>", "safeDivide", Grid<int>::_W_22);
|
||||||
static const Pb::Register _R_47("Grid<int>", "clamp", Grid<int>::_W_24);
|
static const Pb::Register _R_47("Grid<int>", "clamp", Grid<int>::_W_23);
|
||||||
static const Pb::Register _R_48("Grid<int>", "stomp", Grid<int>::_W_25);
|
static const Pb::Register _R_48("Grid<int>", "stomp", Grid<int>::_W_24);
|
||||||
static const Pb::Register _R_49("Grid<int>", "permuteAxes", Grid<int>::_W_26);
|
static const Pb::Register _R_49("Grid<int>", "permuteAxes", Grid<int>::_W_25);
|
||||||
static const Pb::Register _R_50("Grid<int>", "permuteAxesCopyToGrid", Grid<int>::_W_27);
|
static const Pb::Register _R_50("Grid<int>", "permuteAxesCopyToGrid", Grid<int>::_W_26);
|
||||||
static const Pb::Register _R_51("Grid<int>", "join", Grid<int>::_W_28);
|
static const Pb::Register _R_51("Grid<int>", "join", Grid<int>::_W_27);
|
||||||
static const Pb::Register _R_52("Grid<int>", "getMaxAbs", Grid<int>::_W_29);
|
static const Pb::Register _R_52("Grid<int>", "getMaxAbs", Grid<int>::_W_28);
|
||||||
static const Pb::Register _R_53("Grid<int>", "getMax", Grid<int>::_W_30);
|
static const Pb::Register _R_53("Grid<int>", "getMax", Grid<int>::_W_29);
|
||||||
static const Pb::Register _R_54("Grid<int>", "getMin", Grid<int>::_W_31);
|
static const Pb::Register _R_54("Grid<int>", "getMin", Grid<int>::_W_30);
|
||||||
static const Pb::Register _R_55("Grid<int>", "getL1", Grid<int>::_W_32);
|
static const Pb::Register _R_55("Grid<int>", "getL1", Grid<int>::_W_31);
|
||||||
static const Pb::Register _R_56("Grid<int>", "getL2", Grid<int>::_W_33);
|
static const Pb::Register _R_56("Grid<int>", "getL2", Grid<int>::_W_32);
|
||||||
static const Pb::Register _R_57("Grid<int>", "setBound", Grid<int>::_W_34);
|
static const Pb::Register _R_57("Grid<int>", "setBound", Grid<int>::_W_33);
|
||||||
static const Pb::Register _R_58("Grid<int>", "setBoundNeumann", Grid<int>::_W_35);
|
static const Pb::Register _R_58("Grid<int>", "setBoundNeumann", Grid<int>::_W_34);
|
||||||
static const Pb::Register _R_59("Grid<int>", "getDataPointer", Grid<int>::_W_36);
|
static const Pb::Register _R_59("Grid<int>", "getDataPointer", Grid<int>::_W_35);
|
||||||
static const Pb::Register _R_60("Grid<int>", "printGrid", Grid<int>::_W_37);
|
static const Pb::Register _R_60("Grid<int>", "printGrid", Grid<int>::_W_36);
|
||||||
static const Pb::Register _R_61("Grid<Real>", "Grid<Real>", "GridBase");
|
static const Pb::Register _R_61("Grid<Real>", "Grid<Real>", "GridBase");
|
||||||
template<> const char *Namify<Grid<Real>>::S = "Grid<Real>";
|
template<> const char *Namify<Grid<Real>>::S = "Grid<Real>";
|
||||||
static const Pb::Register _R_62("Grid<Real>", "Grid", Grid<Real>::_W_10);
|
static const Pb::Register _R_62("Grid<Real>", "Grid", Grid<Real>::_W_9);
|
||||||
static const Pb::Register _R_63("Grid<Real>", "save", Grid<Real>::_W_11);
|
static const Pb::Register _R_63("Grid<Real>", "save", Grid<Real>::_W_10);
|
||||||
static const Pb::Register _R_64("Grid<Real>", "load", Grid<Real>::_W_12);
|
static const Pb::Register _R_64("Grid<Real>", "load", Grid<Real>::_W_11);
|
||||||
static const Pb::Register _R_65("Grid<Real>", "clear", Grid<Real>::_W_13);
|
static const Pb::Register _R_65("Grid<Real>", "clear", Grid<Real>::_W_12);
|
||||||
static const Pb::Register _R_66("Grid<Real>", "copyFrom", Grid<Real>::_W_14);
|
static const Pb::Register _R_66("Grid<Real>", "copyFrom", Grid<Real>::_W_13);
|
||||||
static const Pb::Register _R_67("Grid<Real>", "getGridType", Grid<Real>::_W_15);
|
static const Pb::Register _R_67("Grid<Real>", "getGridType", Grid<Real>::_W_14);
|
||||||
static const Pb::Register _R_68("Grid<Real>", "add", Grid<Real>::_W_16);
|
static const Pb::Register _R_68("Grid<Real>", "add", Grid<Real>::_W_15);
|
||||||
static const Pb::Register _R_69("Grid<Real>", "sub", Grid<Real>::_W_17);
|
static const Pb::Register _R_69("Grid<Real>", "sub", Grid<Real>::_W_16);
|
||||||
static const Pb::Register _R_70("Grid<Real>", "setConst", Grid<Real>::_W_18);
|
static const Pb::Register _R_70("Grid<Real>", "setConst", Grid<Real>::_W_17);
|
||||||
static const Pb::Register _R_71("Grid<Real>", "addConst", Grid<Real>::_W_19);
|
static const Pb::Register _R_71("Grid<Real>", "addConst", Grid<Real>::_W_18);
|
||||||
static const Pb::Register _R_72("Grid<Real>", "addScaled", Grid<Real>::_W_20);
|
static const Pb::Register _R_72("Grid<Real>", "addScaled", Grid<Real>::_W_19);
|
||||||
static const Pb::Register _R_73("Grid<Real>", "mult", Grid<Real>::_W_21);
|
static const Pb::Register _R_73("Grid<Real>", "mult", Grid<Real>::_W_20);
|
||||||
static const Pb::Register _R_74("Grid<Real>", "multConst", Grid<Real>::_W_22);
|
static const Pb::Register _R_74("Grid<Real>", "multConst", Grid<Real>::_W_21);
|
||||||
static const Pb::Register _R_75("Grid<Real>", "safeDivide", Grid<Real>::_W_23);
|
static const Pb::Register _R_75("Grid<Real>", "safeDivide", Grid<Real>::_W_22);
|
||||||
static const Pb::Register _R_76("Grid<Real>", "clamp", Grid<Real>::_W_24);
|
static const Pb::Register _R_76("Grid<Real>", "clamp", Grid<Real>::_W_23);
|
||||||
static const Pb::Register _R_77("Grid<Real>", "stomp", Grid<Real>::_W_25);
|
static const Pb::Register _R_77("Grid<Real>", "stomp", Grid<Real>::_W_24);
|
||||||
static const Pb::Register _R_78("Grid<Real>", "permuteAxes", Grid<Real>::_W_26);
|
static const Pb::Register _R_78("Grid<Real>", "permuteAxes", Grid<Real>::_W_25);
|
||||||
static const Pb::Register _R_79("Grid<Real>", "permuteAxesCopyToGrid", Grid<Real>::_W_27);
|
static const Pb::Register _R_79("Grid<Real>", "permuteAxesCopyToGrid", Grid<Real>::_W_26);
|
||||||
static const Pb::Register _R_80("Grid<Real>", "join", Grid<Real>::_W_28);
|
static const Pb::Register _R_80("Grid<Real>", "join", Grid<Real>::_W_27);
|
||||||
static const Pb::Register _R_81("Grid<Real>", "getMaxAbs", Grid<Real>::_W_29);
|
static const Pb::Register _R_81("Grid<Real>", "getMaxAbs", Grid<Real>::_W_28);
|
||||||
static const Pb::Register _R_82("Grid<Real>", "getMax", Grid<Real>::_W_30);
|
static const Pb::Register _R_82("Grid<Real>", "getMax", Grid<Real>::_W_29);
|
||||||
static const Pb::Register _R_83("Grid<Real>", "getMin", Grid<Real>::_W_31);
|
static const Pb::Register _R_83("Grid<Real>", "getMin", Grid<Real>::_W_30);
|
||||||
static const Pb::Register _R_84("Grid<Real>", "getL1", Grid<Real>::_W_32);
|
static const Pb::Register _R_84("Grid<Real>", "getL1", Grid<Real>::_W_31);
|
||||||
static const Pb::Register _R_85("Grid<Real>", "getL2", Grid<Real>::_W_33);
|
static const Pb::Register _R_85("Grid<Real>", "getL2", Grid<Real>::_W_32);
|
||||||
static const Pb::Register _R_86("Grid<Real>", "setBound", Grid<Real>::_W_34);
|
static const Pb::Register _R_86("Grid<Real>", "setBound", Grid<Real>::_W_33);
|
||||||
static const Pb::Register _R_87("Grid<Real>", "setBoundNeumann", Grid<Real>::_W_35);
|
static const Pb::Register _R_87("Grid<Real>", "setBoundNeumann", Grid<Real>::_W_34);
|
||||||
static const Pb::Register _R_88("Grid<Real>", "getDataPointer", Grid<Real>::_W_36);
|
static const Pb::Register _R_88("Grid<Real>", "getDataPointer", Grid<Real>::_W_35);
|
||||||
static const Pb::Register _R_89("Grid<Real>", "printGrid", Grid<Real>::_W_37);
|
static const Pb::Register _R_89("Grid<Real>", "printGrid", Grid<Real>::_W_36);
|
||||||
static const Pb::Register _R_90("Grid<Vec3>", "Grid<Vec3>", "GridBase");
|
static const Pb::Register _R_90("Grid<Vec3>", "Grid<Vec3>", "GridBase");
|
||||||
template<> const char *Namify<Grid<Vec3>>::S = "Grid<Vec3>";
|
template<> const char *Namify<Grid<Vec3>>::S = "Grid<Vec3>";
|
||||||
static const Pb::Register _R_91("Grid<Vec3>", "Grid", Grid<Vec3>::_W_10);
|
static const Pb::Register _R_91("Grid<Vec3>", "Grid", Grid<Vec3>::_W_9);
|
||||||
static const Pb::Register _R_92("Grid<Vec3>", "save", Grid<Vec3>::_W_11);
|
static const Pb::Register _R_92("Grid<Vec3>", "save", Grid<Vec3>::_W_10);
|
||||||
static const Pb::Register _R_93("Grid<Vec3>", "load", Grid<Vec3>::_W_12);
|
static const Pb::Register _R_93("Grid<Vec3>", "load", Grid<Vec3>::_W_11);
|
||||||
static const Pb::Register _R_94("Grid<Vec3>", "clear", Grid<Vec3>::_W_13);
|
static const Pb::Register _R_94("Grid<Vec3>", "clear", Grid<Vec3>::_W_12);
|
||||||
static const Pb::Register _R_95("Grid<Vec3>", "copyFrom", Grid<Vec3>::_W_14);
|
static const Pb::Register _R_95("Grid<Vec3>", "copyFrom", Grid<Vec3>::_W_13);
|
||||||
static const Pb::Register _R_96("Grid<Vec3>", "getGridType", Grid<Vec3>::_W_15);
|
static const Pb::Register _R_96("Grid<Vec3>", "getGridType", Grid<Vec3>::_W_14);
|
||||||
static const Pb::Register _R_97("Grid<Vec3>", "add", Grid<Vec3>::_W_16);
|
static const Pb::Register _R_97("Grid<Vec3>", "add", Grid<Vec3>::_W_15);
|
||||||
static const Pb::Register _R_98("Grid<Vec3>", "sub", Grid<Vec3>::_W_17);
|
static const Pb::Register _R_98("Grid<Vec3>", "sub", Grid<Vec3>::_W_16);
|
||||||
static const Pb::Register _R_99("Grid<Vec3>", "setConst", Grid<Vec3>::_W_18);
|
static const Pb::Register _R_99("Grid<Vec3>", "setConst", Grid<Vec3>::_W_17);
|
||||||
static const Pb::Register _R_100("Grid<Vec3>", "addConst", Grid<Vec3>::_W_19);
|
static const Pb::Register _R_100("Grid<Vec3>", "addConst", Grid<Vec3>::_W_18);
|
||||||
static const Pb::Register _R_101("Grid<Vec3>", "addScaled", Grid<Vec3>::_W_20);
|
static const Pb::Register _R_101("Grid<Vec3>", "addScaled", Grid<Vec3>::_W_19);
|
||||||
static const Pb::Register _R_102("Grid<Vec3>", "mult", Grid<Vec3>::_W_21);
|
static const Pb::Register _R_102("Grid<Vec3>", "mult", Grid<Vec3>::_W_20);
|
||||||
static const Pb::Register _R_103("Grid<Vec3>", "multConst", Grid<Vec3>::_W_22);
|
static const Pb::Register _R_103("Grid<Vec3>", "multConst", Grid<Vec3>::_W_21);
|
||||||
static const Pb::Register _R_104("Grid<Vec3>", "safeDivide", Grid<Vec3>::_W_23);
|
static const Pb::Register _R_104("Grid<Vec3>", "safeDivide", Grid<Vec3>::_W_22);
|
||||||
static const Pb::Register _R_105("Grid<Vec3>", "clamp", Grid<Vec3>::_W_24);
|
static const Pb::Register _R_105("Grid<Vec3>", "clamp", Grid<Vec3>::_W_23);
|
||||||
static const Pb::Register _R_106("Grid<Vec3>", "stomp", Grid<Vec3>::_W_25);
|
static const Pb::Register _R_106("Grid<Vec3>", "stomp", Grid<Vec3>::_W_24);
|
||||||
static const Pb::Register _R_107("Grid<Vec3>", "permuteAxes", Grid<Vec3>::_W_26);
|
static const Pb::Register _R_107("Grid<Vec3>", "permuteAxes", Grid<Vec3>::_W_25);
|
||||||
static const Pb::Register _R_108("Grid<Vec3>", "permuteAxesCopyToGrid", Grid<Vec3>::_W_27);
|
static const Pb::Register _R_108("Grid<Vec3>", "permuteAxesCopyToGrid", Grid<Vec3>::_W_26);
|
||||||
static const Pb::Register _R_109("Grid<Vec3>", "join", Grid<Vec3>::_W_28);
|
static const Pb::Register _R_109("Grid<Vec3>", "join", Grid<Vec3>::_W_27);
|
||||||
static const Pb::Register _R_110("Grid<Vec3>", "getMaxAbs", Grid<Vec3>::_W_29);
|
static const Pb::Register _R_110("Grid<Vec3>", "getMaxAbs", Grid<Vec3>::_W_28);
|
||||||
static const Pb::Register _R_111("Grid<Vec3>", "getMax", Grid<Vec3>::_W_30);
|
static const Pb::Register _R_111("Grid<Vec3>", "getMax", Grid<Vec3>::_W_29);
|
||||||
static const Pb::Register _R_112("Grid<Vec3>", "getMin", Grid<Vec3>::_W_31);
|
static const Pb::Register _R_112("Grid<Vec3>", "getMin", Grid<Vec3>::_W_30);
|
||||||
static const Pb::Register _R_113("Grid<Vec3>", "getL1", Grid<Vec3>::_W_32);
|
static const Pb::Register _R_113("Grid<Vec3>", "getL1", Grid<Vec3>::_W_31);
|
||||||
static const Pb::Register _R_114("Grid<Vec3>", "getL2", Grid<Vec3>::_W_33);
|
static const Pb::Register _R_114("Grid<Vec3>", "getL2", Grid<Vec3>::_W_32);
|
||||||
static const Pb::Register _R_115("Grid<Vec3>", "setBound", Grid<Vec3>::_W_34);
|
static const Pb::Register _R_115("Grid<Vec3>", "setBound", Grid<Vec3>::_W_33);
|
||||||
static const Pb::Register _R_116("Grid<Vec3>", "setBoundNeumann", Grid<Vec3>::_W_35);
|
static const Pb::Register _R_116("Grid<Vec3>", "setBoundNeumann", Grid<Vec3>::_W_34);
|
||||||
static const Pb::Register _R_117("Grid<Vec3>", "getDataPointer", Grid<Vec3>::_W_36);
|
static const Pb::Register _R_117("Grid<Vec3>", "getDataPointer", Grid<Vec3>::_W_35);
|
||||||
static const Pb::Register _R_118("Grid<Vec3>", "printGrid", Grid<Vec3>::_W_37);
|
static const Pb::Register _R_118("Grid<Vec3>", "printGrid", Grid<Vec3>::_W_36);
|
||||||
#endif
|
#endif
|
||||||
#ifdef _C_GridBase
|
#ifdef _C_GridBase
|
||||||
static const Pb::Register _R_119("GridBase", "GridBase", "PbClass");
|
static const Pb::Register _R_119("GridBase", "GridBase", "PbClass");
|
||||||
@@ -118,13 +118,12 @@ static const Pb::Register _R_125("GridBase", "is3D", GridBase::_W_5);
|
|||||||
static const Pb::Register _R_126("GridBase", "is4D", GridBase::_W_6);
|
static const Pb::Register _R_126("GridBase", "is4D", GridBase::_W_6);
|
||||||
static const Pb::Register _R_127("GridBase", "getSizeT", GridBase::_W_7);
|
static const Pb::Register _R_127("GridBase", "getSizeT", GridBase::_W_7);
|
||||||
static const Pb::Register _R_128("GridBase", "getStrideT", GridBase::_W_8);
|
static const Pb::Register _R_128("GridBase", "getStrideT", GridBase::_W_8);
|
||||||
static const Pb::Register _R_129("GridBase", "setName", GridBase::_W_9);
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef _C_MACGrid
|
#ifdef _C_MACGrid
|
||||||
static const Pb::Register _R_130("MACGrid", "MACGrid", "Grid<Vec3>");
|
static const Pb::Register _R_129("MACGrid", "MACGrid", "Grid<Vec3>");
|
||||||
template<> const char *Namify<MACGrid>::S = "MACGrid";
|
template<> const char *Namify<MACGrid>::S = "MACGrid";
|
||||||
static const Pb::Register _R_131("MACGrid", "MACGrid", MACGrid::_W_38);
|
static const Pb::Register _R_130("MACGrid", "MACGrid", MACGrid::_W_37);
|
||||||
static const Pb::Register _R_132("MACGrid", "setBoundMAC", MACGrid::_W_39);
|
static const Pb::Register _R_131("MACGrid", "setBoundMAC", MACGrid::_W_38);
|
||||||
#endif
|
#endif
|
||||||
static const Pb::Register _R_7("GridType_TypeNone", 0);
|
static const Pb::Register _R_7("GridType_TypeNone", 0);
|
||||||
static const Pb::Register _R_8("GridType_TypeReal", 1);
|
static const Pb::Register _R_8("GridType_TypeReal", 1);
|
||||||
@@ -254,7 +253,6 @@ void PbRegister_file_7()
|
|||||||
KEEP_UNUSED(_R_129);
|
KEEP_UNUSED(_R_129);
|
||||||
KEEP_UNUSED(_R_130);
|
KEEP_UNUSED(_R_130);
|
||||||
KEEP_UNUSED(_R_131);
|
KEEP_UNUSED(_R_131);
|
||||||
KEEP_UNUSED(_R_132);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // namespace Manta
|
} // namespace Manta
|
3
extern/quadriflow/CMakeLists.txt
vendored
3
extern/quadriflow/CMakeLists.txt
vendored
@@ -28,6 +28,9 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
add_definitions(-D_USE_MATH_DEFINES)
|
add_definitions(-D_USE_MATH_DEFINES)
|
||||||
endif()
|
endif()
|
||||||
|
12
extern/quadriflow/patches/blender.patch
vendored
12
extern/quadriflow/patches/blender.patch
vendored
@@ -1,15 +1,3 @@
|
|||||||
diff --git a/extern/quadriflow/src/loader.cpp b/extern/quadriflow/src/loader.cpp
|
|
||||||
--- a/extern/quadriflow/src/loader.cpp
|
|
||||||
+++ b/extern/quadriflow/src/loader.cpp
|
|
||||||
@@ -69,7 +69,7 @@
|
|
||||||
};
|
|
||||||
|
|
||||||
/// Hash function for obj_vertex
|
|
||||||
- struct obj_vertexHash : std::unary_function<obj_vertex, size_t> {
|
|
||||||
+ struct obj_vertexHash {
|
|
||||||
std::size_t operator()(const obj_vertex &v) const {
|
|
||||||
size_t hash = std::hash<uint32_t>()(v.p);
|
|
||||||
hash = hash * 37 + std::hash<uint32_t>()(v.uv);
|
|
||||||
diff --git a/extern/quadriflow/src/config.hpp b/extern/quadriflow/src/config.hpp
|
diff --git a/extern/quadriflow/src/config.hpp b/extern/quadriflow/src/config.hpp
|
||||||
index 842b885..bf597ad 100644
|
index 842b885..bf597ad 100644
|
||||||
--- a/extern/quadriflow/src/config.hpp
|
--- a/extern/quadriflow/src/config.hpp
|
||||||
|
2
extern/quadriflow/src/loader.cpp
vendored
2
extern/quadriflow/src/loader.cpp
vendored
@@ -69,7 +69,7 @@ void load(const char* filename, MatrixXd& V, MatrixXi& F)
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Hash function for obj_vertex
|
/// Hash function for obj_vertex
|
||||||
struct obj_vertexHash {
|
struct obj_vertexHash : std::unary_function<obj_vertex, size_t> {
|
||||||
std::size_t operator()(const obj_vertex &v) const {
|
std::size_t operator()(const obj_vertex &v) const {
|
||||||
size_t hash = std::hash<uint32_t>()(v.p);
|
size_t hash = std::hash<uint32_t>()(v.p);
|
||||||
hash = hash * 37 + std::hash<uint32_t>()(v.uv);
|
hash = hash * 37 + std::hash<uint32_t>()(v.uv);
|
||||||
|
@@ -77,10 +77,6 @@ if(WITH_QUADRIFLOW)
|
|||||||
add_subdirectory(quadriflow)
|
add_subdirectory(quadriflow)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_CODEC_FFMPEG)
|
|
||||||
add_subdirectory(ffmpeg)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
add_subdirectory(libc_compat)
|
add_subdirectory(libc_compat)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -132,14 +132,13 @@ void CLG_logf(CLG_LogType *lg,
|
|||||||
const char *format,
|
const char *format,
|
||||||
...) _CLOG_ATTR_NONNULL(1, 3, 4, 5) _CLOG_ATTR_PRINTF_FORMAT(5, 6);
|
...) _CLOG_ATTR_NONNULL(1, 3, 4, 5) _CLOG_ATTR_PRINTF_FORMAT(5, 6);
|
||||||
|
|
||||||
/* Main initializer and destructor (per session, not logger). */
|
/* Main initializer and distructor (per session, not logger). */
|
||||||
void CLG_init(void);
|
void CLG_init(void);
|
||||||
void CLG_exit(void);
|
void CLG_exit(void);
|
||||||
|
|
||||||
void CLG_output_set(void *file_handle);
|
void CLG_output_set(void *file_handle);
|
||||||
void CLG_output_use_basename_set(int value);
|
void CLG_output_use_basename_set(int value);
|
||||||
void CLG_output_use_timestamp_set(int value);
|
void CLG_output_use_timestamp_set(int value);
|
||||||
void CLG_error_fn_set(void (*error_fn)(void *file_handle));
|
|
||||||
void CLG_fatal_fn_set(void (*fatal_fn)(void *file_handle));
|
void CLG_fatal_fn_set(void (*fatal_fn)(void *file_handle));
|
||||||
void CLG_backtrace_fn_set(void (*fatal_fn)(void *file_handle));
|
void CLG_backtrace_fn_set(void (*fatal_fn)(void *file_handle));
|
||||||
|
|
||||||
|
@@ -98,7 +98,6 @@ typedef struct CLogContext {
|
|||||||
} default_type;
|
} default_type;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
void (*error_fn)(void *file_handle);
|
|
||||||
void (*fatal_fn)(void *file_handle);
|
void (*fatal_fn)(void *file_handle);
|
||||||
void (*backtrace_fn)(void *file_handle);
|
void (*backtrace_fn)(void *file_handle);
|
||||||
} callbacks;
|
} callbacks;
|
||||||
@@ -353,13 +352,6 @@ static CLG_LogType *clg_ctx_type_register(CLogContext *ctx, const char *identifi
|
|||||||
return ty;
|
return ty;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clg_ctx_error_action(CLogContext *ctx)
|
|
||||||
{
|
|
||||||
if (ctx->callbacks.error_fn != NULL) {
|
|
||||||
ctx->callbacks.error_fn(ctx->output_file);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void clg_ctx_fatal_action(CLogContext *ctx)
|
static void clg_ctx_fatal_action(CLogContext *ctx)
|
||||||
{
|
{
|
||||||
if (ctx->callbacks.fatal_fn != NULL) {
|
if (ctx->callbacks.fatal_fn != NULL) {
|
||||||
@@ -530,10 +522,6 @@ void CLG_logf(CLG_LogType *lg,
|
|||||||
clg_ctx_backtrace(lg->ctx);
|
clg_ctx_backtrace(lg->ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (severity == CLG_SEVERITY_ERROR) {
|
|
||||||
clg_ctx_error_action(lg->ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (severity == CLG_SEVERITY_FATAL) {
|
if (severity == CLG_SEVERITY_FATAL) {
|
||||||
clg_ctx_fatal_action(lg->ctx);
|
clg_ctx_fatal_action(lg->ctx);
|
||||||
}
|
}
|
||||||
@@ -567,12 +555,6 @@ static void CLG_ctx_output_use_timestamp_set(CLogContext *ctx, int value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Action on error severity. */
|
|
||||||
static void CLT_ctx_error_fn_set(CLogContext *ctx, void (*error_fn)(void *file_handle))
|
|
||||||
{
|
|
||||||
ctx->callbacks.error_fn = error_fn;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Action on fatal severity. */
|
/** Action on fatal severity. */
|
||||||
static void CLG_ctx_fatal_fn_set(CLogContext *ctx, void (*fatal_fn)(void *file_handle))
|
static void CLG_ctx_fatal_fn_set(CLogContext *ctx, void (*fatal_fn)(void *file_handle))
|
||||||
{
|
{
|
||||||
@@ -692,11 +674,6 @@ void CLG_output_use_timestamp_set(int value)
|
|||||||
CLG_ctx_output_use_timestamp_set(g_ctx, value);
|
CLG_ctx_output_use_timestamp_set(g_ctx, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CLG_error_fn_set(void (*error_fn)(void *file_handle))
|
|
||||||
{
|
|
||||||
CLT_ctx_error_fn_set(g_ctx, error_fn);
|
|
||||||
}
|
|
||||||
|
|
||||||
void CLG_fatal_fn_set(void (*fatal_fn)(void *file_handle))
|
void CLG_fatal_fn_set(void (*fatal_fn)(void *file_handle))
|
||||||
{
|
{
|
||||||
CLG_ctx_fatal_fn_set(g_ctx, fatal_fn);
|
CLG_ctx_fatal_fn_set(g_ctx, fatal_fn);
|
||||||
|
@@ -292,7 +292,7 @@ static void xml_read_shader_graph(XMLReadState &state, Shader *shader, xml_node
|
|||||||
filepath = path_join(state.base, filepath);
|
filepath = path_join(state.base, filepath);
|
||||||
}
|
}
|
||||||
|
|
||||||
snode = OSLShaderManager::osl_node(graph, manager, filepath, "");
|
snode = OSLShaderManager::osl_node(manager, filepath);
|
||||||
|
|
||||||
if (!snode) {
|
if (!snode) {
|
||||||
fprintf(stderr, "Failed to create OSL node from \"%s\".\n", filepath.c_str());
|
fprintf(stderr, "Failed to create OSL node from \"%s\".\n", filepath.c_str());
|
||||||
|
@@ -109,10 +109,6 @@ if(WITH_OPENIMAGEDENOISE)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_EXPERIMENTAL_FEATURES)
|
|
||||||
add_definitions(-DWITH_HAIR_NODES)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
blender_add_lib(bf_intern_cycles "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|
blender_add_lib(bf_intern_cycles "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|
||||||
|
|
||||||
# avoid link failure with clang 3.4 debug
|
# avoid link failure with clang 3.4 debug
|
||||||
|
@@ -628,7 +628,6 @@ void BlenderSync::sync_particle_hair(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WITH_HAIR_NODES
|
|
||||||
static float4 hair_point_as_float4(BL::HairPoint b_point)
|
static float4 hair_point_as_float4(BL::HairPoint b_point)
|
||||||
{
|
{
|
||||||
float4 mP = float3_to_float4(get_float3(b_point.co()));
|
float4 mP = float3_to_float4(get_float3(b_point.co()));
|
||||||
@@ -807,15 +806,6 @@ void BlenderSync::sync_hair(Hair *hair, BL::Object &b_ob, bool motion, int motio
|
|||||||
export_hair_curves(scene, hair, b_hair);
|
export_hair_curves(scene, hair, b_hair);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
void BlenderSync::sync_hair(Hair *hair, BL::Object &b_ob, bool motion, int motion_step)
|
|
||||||
{
|
|
||||||
(void)hair;
|
|
||||||
(void)b_ob;
|
|
||||||
(void)motion;
|
|
||||||
(void)motion_step;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void BlenderSync::sync_hair(BL::Depsgraph b_depsgraph,
|
void BlenderSync::sync_hair(BL::Depsgraph b_depsgraph,
|
||||||
BL::Object b_ob,
|
BL::Object b_ob,
|
||||||
|
@@ -19,7 +19,6 @@
|
|||||||
#include "render/hair.h"
|
#include "render/hair.h"
|
||||||
#include "render/mesh.h"
|
#include "render/mesh.h"
|
||||||
#include "render/object.h"
|
#include "render/object.h"
|
||||||
#include "render/volume.h"
|
|
||||||
|
|
||||||
#include "blender/blender_sync.h"
|
#include "blender/blender_sync.h"
|
||||||
#include "blender/blender_util.h"
|
#include "blender/blender_util.h"
|
||||||
@@ -28,19 +27,6 @@
|
|||||||
|
|
||||||
CCL_NAMESPACE_BEGIN
|
CCL_NAMESPACE_BEGIN
|
||||||
|
|
||||||
static Geometry::Type determine_geom_type(BL::Object &b_ob, bool use_particle_hair)
|
|
||||||
{
|
|
||||||
if (b_ob.type() == BL::Object::type_HAIR || use_particle_hair) {
|
|
||||||
return Geometry::HAIR;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (b_ob.type() == BL::Object::type_VOLUME || object_fluid_gas_domain_find(b_ob)) {
|
|
||||||
return Geometry::VOLUME;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Geometry::MESH;
|
|
||||||
}
|
|
||||||
|
|
||||||
Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph,
|
Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph,
|
||||||
BL::Object &b_ob,
|
BL::Object &b_ob,
|
||||||
BL::Object &b_ob_instance,
|
BL::Object &b_ob_instance,
|
||||||
@@ -54,7 +40,9 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph,
|
|||||||
BL::Material material_override = view_layer.material_override;
|
BL::Material material_override = view_layer.material_override;
|
||||||
Shader *default_shader = (b_ob.type() == BL::Object::type_VOLUME) ? scene->default_volume :
|
Shader *default_shader = (b_ob.type() == BL::Object::type_VOLUME) ? scene->default_volume :
|
||||||
scene->default_surface;
|
scene->default_surface;
|
||||||
Geometry::Type geom_type = determine_geom_type(b_ob, use_particle_hair);
|
Geometry::Type geom_type = (b_ob.type() == BL::Object::type_HAIR || use_particle_hair) ?
|
||||||
|
Geometry::HAIR :
|
||||||
|
Geometry::MESH;
|
||||||
|
|
||||||
/* Find shader indices. */
|
/* Find shader indices. */
|
||||||
vector<Shader *> used_shaders;
|
vector<Shader *> used_shaders;
|
||||||
@@ -83,13 +71,10 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph,
|
|||||||
if (geom == NULL) {
|
if (geom == NULL) {
|
||||||
/* Add new geometry if it did not exist yet. */
|
/* Add new geometry if it did not exist yet. */
|
||||||
if (geom_type == Geometry::HAIR) {
|
if (geom_type == Geometry::HAIR) {
|
||||||
geom = scene->create_node<Hair>();
|
geom = new Hair();
|
||||||
}
|
|
||||||
else if (geom_type == Geometry::VOLUME) {
|
|
||||||
geom = scene->create_node<Volume>();
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
geom = scene->create_node<Mesh>();
|
geom = new Mesh();
|
||||||
}
|
}
|
||||||
geometry_map.add(key, geom);
|
geometry_map.add(key, geom);
|
||||||
}
|
}
|
||||||
@@ -136,13 +121,13 @@ Geometry *BlenderSync::sync_geometry(BL::Depsgraph &b_depsgraph,
|
|||||||
|
|
||||||
geom->name = ustring(b_ob_data.name().c_str());
|
geom->name = ustring(b_ob_data.name().c_str());
|
||||||
|
|
||||||
if (geom_type == Geometry::HAIR) {
|
if (b_ob.type() == BL::Object::type_HAIR || use_particle_hair) {
|
||||||
Hair *hair = static_cast<Hair *>(geom);
|
Hair *hair = static_cast<Hair *>(geom);
|
||||||
sync_hair(b_depsgraph, b_ob, hair, used_shaders);
|
sync_hair(b_depsgraph, b_ob, hair, used_shaders);
|
||||||
}
|
}
|
||||||
else if (geom_type == Geometry::VOLUME) {
|
else if (b_ob.type() == BL::Object::type_VOLUME || object_fluid_gas_domain_find(b_ob)) {
|
||||||
Volume *volume = static_cast<Volume *>(geom);
|
Mesh *mesh = static_cast<Mesh *>(geom);
|
||||||
sync_volume(b_ob, volume, used_shaders);
|
sync_volume(b_ob, mesh, used_shaders);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Mesh *mesh = static_cast<Mesh *>(geom);
|
Mesh *mesh = static_cast<Mesh *>(geom);
|
||||||
|
@@ -19,8 +19,6 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "render/scene.h"
|
|
||||||
|
|
||||||
#include "util/util_map.h"
|
#include "util/util_map.h"
|
||||||
#include "util/util_set.h"
|
#include "util/util_set.h"
|
||||||
#include "util/util_vector.h"
|
#include "util/util_vector.h"
|
||||||
@@ -34,8 +32,9 @@ CCL_NAMESPACE_BEGIN
|
|||||||
|
|
||||||
template<typename K, typename T> class id_map {
|
template<typename K, typename T> class id_map {
|
||||||
public:
|
public:
|
||||||
id_map()
|
id_map(vector<T *> *scene_data_)
|
||||||
{
|
{
|
||||||
|
scene_data = scene_data_;
|
||||||
}
|
}
|
||||||
|
|
||||||
T *find(const BL::ID &id)
|
T *find(const BL::ID &id)
|
||||||
@@ -77,6 +76,7 @@ template<typename K, typename T> class id_map {
|
|||||||
void add(const K &key, T *data)
|
void add(const K &key, T *data)
|
||||||
{
|
{
|
||||||
assert(find(key) == NULL);
|
assert(find(key) == NULL);
|
||||||
|
scene_data->push_back(data);
|
||||||
b_map[key] = data;
|
b_map[key] = data;
|
||||||
used(data);
|
used(data);
|
||||||
}
|
}
|
||||||
@@ -97,23 +97,22 @@ template<typename K, typename T> class id_map {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Combined add and update as needed. */
|
/* Combined add and update as needed. */
|
||||||
bool add_or_update(Scene *scene, T **r_data, const BL::ID &id)
|
bool add_or_update(T **r_data, const BL::ID &id)
|
||||||
{
|
{
|
||||||
return add_or_update(scene, r_data, id, id, id.ptr.owner_id);
|
return add_or_update(r_data, id, id, id.ptr.owner_id);
|
||||||
}
|
}
|
||||||
bool add_or_update(Scene *scene, T **r_data, const BL::ID &id, const K &key)
|
bool add_or_update(T **r_data, const BL::ID &id, const K &key)
|
||||||
{
|
{
|
||||||
return add_or_update(scene, r_data, id, id, key);
|
return add_or_update(r_data, id, id, key);
|
||||||
}
|
}
|
||||||
bool add_or_update(
|
bool add_or_update(T **r_data, const BL::ID &id, const BL::ID &parent, const K &key)
|
||||||
Scene *scene, T **r_data, const BL::ID &id, const BL::ID &parent, const K &key)
|
|
||||||
{
|
{
|
||||||
T *data = find(key);
|
T *data = find(key);
|
||||||
bool recalc;
|
bool recalc;
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
/* Add data if it didn't exist yet. */
|
/* Add data if it didn't exist yet. */
|
||||||
data = scene->create_node<T>();
|
data = new T();
|
||||||
add(key, data);
|
add(key, data);
|
||||||
recalc = true;
|
recalc = true;
|
||||||
}
|
}
|
||||||
@@ -145,8 +144,27 @@ template<typename K, typename T> class id_map {
|
|||||||
b_map[NULL] = data;
|
b_map[NULL] = data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void post_sync(Scene *scene, bool do_delete = true)
|
bool post_sync(bool do_delete = true)
|
||||||
{
|
{
|
||||||
|
/* remove unused data */
|
||||||
|
vector<T *> new_scene_data;
|
||||||
|
typename vector<T *>::iterator it;
|
||||||
|
bool deleted = false;
|
||||||
|
|
||||||
|
for (it = scene_data->begin(); it != scene_data->end(); it++) {
|
||||||
|
T *data = *it;
|
||||||
|
|
||||||
|
if (do_delete && used_set.find(data) == used_set.end()) {
|
||||||
|
delete data;
|
||||||
|
deleted = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
new_scene_data.push_back(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
*scene_data = new_scene_data;
|
||||||
|
|
||||||
|
/* update mapping */
|
||||||
map<K, T *> new_map;
|
map<K, T *> new_map;
|
||||||
typedef pair<const K, T *> TMapPair;
|
typedef pair<const K, T *> TMapPair;
|
||||||
typename map<K, T *>::iterator jt;
|
typename map<K, T *>::iterator jt;
|
||||||
@@ -154,17 +172,15 @@ template<typename K, typename T> class id_map {
|
|||||||
for (jt = b_map.begin(); jt != b_map.end(); jt++) {
|
for (jt = b_map.begin(); jt != b_map.end(); jt++) {
|
||||||
TMapPair &pair = *jt;
|
TMapPair &pair = *jt;
|
||||||
|
|
||||||
if (do_delete && used_set.find(pair.second) == used_set.end()) {
|
if (used_set.find(pair.second) != used_set.end())
|
||||||
scene->delete_node(pair.second);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
new_map[pair.first] = pair.second;
|
new_map[pair.first] = pair.second;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
used_set.clear();
|
used_set.clear();
|
||||||
b_recalc.clear();
|
b_recalc.clear();
|
||||||
b_map = new_map;
|
b_map = new_map;
|
||||||
|
|
||||||
|
return deleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
const map<K, T *> &key_to_scene_data()
|
const map<K, T *> &key_to_scene_data()
|
||||||
@@ -173,6 +189,7 @@ template<typename K, typename T> class id_map {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
vector<T *> *scene_data;
|
||||||
map<K, T *> b_map;
|
map<K, T *> b_map;
|
||||||
set<T *> used_set;
|
set<T *> used_set;
|
||||||
set<void *> b_recalc;
|
set<void *> b_recalc;
|
||||||
|
@@ -39,9 +39,9 @@ void BlenderSync::sync_light(BL::Object &b_parent,
|
|||||||
BL::Light b_light(b_ob.data());
|
BL::Light b_light(b_ob.data());
|
||||||
|
|
||||||
/* Update if either object or light data changed. */
|
/* Update if either object or light data changed. */
|
||||||
if (!light_map.add_or_update(scene, &light, b_ob, b_parent, key)) {
|
if (!light_map.add_or_update(&light, b_ob, b_parent, key)) {
|
||||||
Shader *shader;
|
Shader *shader;
|
||||||
if (!shader_map.add_or_update(scene, &shader, b_light)) {
|
if (!shader_map.add_or_update(&shader, b_light)) {
|
||||||
if (light->is_portal)
|
if (light->is_portal)
|
||||||
*use_portal = true;
|
*use_portal = true;
|
||||||
return;
|
return;
|
||||||
@@ -176,7 +176,7 @@ void BlenderSync::sync_background_light(BL::SpaceView3D &b_v3d, bool use_portal)
|
|||||||
Light *light;
|
Light *light;
|
||||||
ObjectKey key(b_world, 0, b_world, false);
|
ObjectKey key(b_world, 0, b_world, false);
|
||||||
|
|
||||||
if (light_map.add_or_update(scene, &light, b_world, b_world, key) || world_recalc ||
|
if (light_map.add_or_update(&light, b_world, b_world, key) || world_recalc ||
|
||||||
b_world.ptr.data != world_map) {
|
b_world.ptr.data != world_map) {
|
||||||
light->type = LIGHT_BACKGROUND;
|
light->type = LIGHT_BACKGROUND;
|
||||||
if (sampling_method == SAMPLING_MANUAL) {
|
if (sampling_method == SAMPLING_MANUAL) {
|
||||||
|
@@ -923,68 +923,6 @@ static void create_subd_mesh(Scene *scene,
|
|||||||
|
|
||||||
/* Sync */
|
/* Sync */
|
||||||
|
|
||||||
static BL::MeshSequenceCacheModifier object_mesh_cache_find(BL::Object &b_ob)
|
|
||||||
{
|
|
||||||
if (b_ob.modifiers.length() > 0) {
|
|
||||||
BL::Modifier b_mod = b_ob.modifiers[b_ob.modifiers.length() - 1];
|
|
||||||
|
|
||||||
if (b_mod.type() == BL::Modifier::type_MESH_SEQUENCE_CACHE) {
|
|
||||||
BL::MeshSequenceCacheModifier mesh_cache = BL::MeshSequenceCacheModifier(b_mod);
|
|
||||||
|
|
||||||
if (MeshSequenceCacheModifier_has_velocity_get(&mesh_cache.ptr)) {
|
|
||||||
return mesh_cache;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return BL::MeshSequenceCacheModifier(PointerRNA_NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sync_mesh_cached_velocities(BL::Object &b_ob, Scene *scene, Mesh *mesh)
|
|
||||||
{
|
|
||||||
if (scene->need_motion() == Scene::MOTION_NONE)
|
|
||||||
return;
|
|
||||||
|
|
||||||
BL::MeshSequenceCacheModifier b_mesh_cache = object_mesh_cache_find(b_ob);
|
|
||||||
|
|
||||||
if (!b_mesh_cache) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!MeshSequenceCacheModifier_read_velocity_get(&b_mesh_cache.ptr)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const size_t numverts = mesh->verts.size();
|
|
||||||
|
|
||||||
if (b_mesh_cache.vertex_velocities.length() != numverts) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Find or add attribute */
|
|
||||||
float3 *P = &mesh->verts[0];
|
|
||||||
Attribute *attr_mP = mesh->attributes.find(ATTR_STD_MOTION_VERTEX_POSITION);
|
|
||||||
|
|
||||||
if (!attr_mP) {
|
|
||||||
attr_mP = mesh->attributes.add(ATTR_STD_MOTION_VERTEX_POSITION);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Only export previous and next frame, we don't have any in between data. */
|
|
||||||
float motion_times[2] = {-1.0f, 1.0f};
|
|
||||||
for (int step = 0; step < 2; step++) {
|
|
||||||
const float relative_time = motion_times[step] * scene->motion_shutter_time() * 0.5f;
|
|
||||||
float3 *mP = attr_mP->data_float3() + step * numverts;
|
|
||||||
|
|
||||||
BL::MeshSequenceCacheModifier::vertex_velocities_iterator vvi;
|
|
||||||
int i = 0;
|
|
||||||
|
|
||||||
for (b_mesh_cache.vertex_velocities.begin(vvi); vvi != b_mesh_cache.vertex_velocities.end();
|
|
||||||
++vvi, ++i) {
|
|
||||||
mP[i] = P[i] + get_float3(vvi->velocity()) * relative_time;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sync_mesh_fluid_motion(BL::Object &b_ob, Scene *scene, Mesh *mesh)
|
static void sync_mesh_fluid_motion(BL::Object &b_ob, Scene *scene, Mesh *mesh)
|
||||||
{
|
{
|
||||||
if (scene->need_motion() == Scene::MOTION_NONE)
|
if (scene->need_motion() == Scene::MOTION_NONE)
|
||||||
@@ -1064,9 +1002,6 @@ void BlenderSync::sync_mesh(BL::Depsgraph b_depsgraph,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* cached velocities (e.g. from alembic archive) */
|
|
||||||
sync_mesh_cached_velocities(b_ob, scene, mesh);
|
|
||||||
|
|
||||||
/* mesh fluid motion mantaflow */
|
/* mesh fluid motion mantaflow */
|
||||||
sync_mesh_fluid_motion(b_ob, scene, mesh);
|
sync_mesh_fluid_motion(b_ob, scene, mesh);
|
||||||
|
|
||||||
@@ -1088,12 +1023,6 @@ void BlenderSync::sync_mesh_motion(BL::Depsgraph b_depsgraph,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Cached motion blur already exported. */
|
|
||||||
BL::MeshSequenceCacheModifier mesh_cache = object_mesh_cache_find(b_ob);
|
|
||||||
if (mesh_cache) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Skip if no vertices were exported. */
|
/* Skip if no vertices were exported. */
|
||||||
size_t numverts = mesh->verts.size();
|
size_t numverts = mesh->verts.size();
|
||||||
if (numverts == 0) {
|
if (numverts == 0) {
|
||||||
|
@@ -207,7 +207,7 @@ Object *BlenderSync::sync_object(BL::Depsgraph &b_depsgraph,
|
|||||||
/* test if we need to sync */
|
/* test if we need to sync */
|
||||||
bool object_updated = false;
|
bool object_updated = false;
|
||||||
|
|
||||||
if (object_map.add_or_update(scene, &object, b_ob, b_parent, key))
|
if (object_map.add_or_update(&object, b_ob, b_parent, key))
|
||||||
object_updated = true;
|
object_updated = true;
|
||||||
|
|
||||||
/* mesh sync */
|
/* mesh sync */
|
||||||
@@ -405,10 +405,14 @@ void BlenderSync::sync_objects(BL::Depsgraph &b_depsgraph,
|
|||||||
sync_background_light(b_v3d, use_portal);
|
sync_background_light(b_v3d, use_portal);
|
||||||
|
|
||||||
/* handle removed data and modified pointers */
|
/* handle removed data and modified pointers */
|
||||||
light_map.post_sync(scene);
|
if (light_map.post_sync())
|
||||||
geometry_map.post_sync(scene);
|
scene->light_manager->tag_update(scene);
|
||||||
object_map.post_sync(scene);
|
if (geometry_map.post_sync())
|
||||||
particle_system_map.post_sync(scene);
|
scene->geometry_manager->tag_update(scene);
|
||||||
|
if (object_map.post_sync())
|
||||||
|
scene->object_manager->tag_update(scene);
|
||||||
|
if (particle_system_map.post_sync())
|
||||||
|
scene->particle_system_manager->tag_update(scene);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (motion)
|
if (motion)
|
||||||
@@ -454,20 +458,16 @@ void BlenderSync::sync_motion(BL::RenderSettings &b_render,
|
|||||||
python_thread_state_restore(python_thread_state);
|
python_thread_state_restore(python_thread_state);
|
||||||
b_engine.frame_set(frame, subframe);
|
b_engine.frame_set(frame, subframe);
|
||||||
python_thread_state_save(python_thread_state);
|
python_thread_state_save(python_thread_state);
|
||||||
if (b_cam) {
|
|
||||||
sync_camera_motion(b_render, b_cam, width, height, 0.0f);
|
sync_camera_motion(b_render, b_cam, width, height, 0.0f);
|
||||||
}
|
|
||||||
sync_objects(b_depsgraph, b_v3d, 0.0f);
|
sync_objects(b_depsgraph, b_v3d, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Insert motion times from camera. Motion times from other objects
|
/* Insert motion times from camera. Motion times from other objects
|
||||||
* have already been added in a sync_objects call. */
|
* have already been added in a sync_objects call. */
|
||||||
if (b_cam) {
|
|
||||||
uint camera_motion_steps = object_motion_steps(b_cam, b_cam);
|
uint camera_motion_steps = object_motion_steps(b_cam, b_cam);
|
||||||
for (size_t step = 0; step < camera_motion_steps; step++) {
|
for (size_t step = 0; step < camera_motion_steps; step++) {
|
||||||
motion_times.insert(scene->camera->motion_time(step));
|
motion_times.insert(scene->camera->motion_time(step));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* note iteration over motion_times set happens in sorted order */
|
/* note iteration over motion_times set happens in sorted order */
|
||||||
foreach (float relative_time, motion_times) {
|
foreach (float relative_time, motion_times) {
|
||||||
|
@@ -53,8 +53,7 @@ bool BlenderSync::sync_dupli_particle(BL::Object &b_ob,
|
|||||||
ParticleSystem *psys;
|
ParticleSystem *psys;
|
||||||
|
|
||||||
bool first_use = !particle_system_map.is_used(key);
|
bool first_use = !particle_system_map.is_used(key);
|
||||||
bool need_update = particle_system_map.add_or_update(
|
bool need_update = particle_system_map.add_or_update(&psys, b_ob, b_instance.object(), key);
|
||||||
scene, &psys, b_ob, b_instance.object(), key);
|
|
||||||
|
|
||||||
/* no update needed? */
|
/* no update needed? */
|
||||||
if (!need_update && !object->geometry->need_update && !scene->object_manager->need_update)
|
if (!need_update && !object->geometry->need_update && !scene->object_manager->need_update)
|
||||||
|
@@ -59,7 +59,6 @@ BlenderSession::BlenderSession(BL::RenderEngine &b_engine,
|
|||||||
BL::BlendData &b_data,
|
BL::BlendData &b_data,
|
||||||
bool preview_osl)
|
bool preview_osl)
|
||||||
: session(NULL),
|
: session(NULL),
|
||||||
scene(NULL),
|
|
||||||
sync(NULL),
|
sync(NULL),
|
||||||
b_engine(b_engine),
|
b_engine(b_engine),
|
||||||
b_userpref(b_userpref),
|
b_userpref(b_userpref),
|
||||||
@@ -89,7 +88,6 @@ BlenderSession::BlenderSession(BL::RenderEngine &b_engine,
|
|||||||
int width,
|
int width,
|
||||||
int height)
|
int height)
|
||||||
: session(NULL),
|
: session(NULL),
|
||||||
scene(NULL),
|
|
||||||
sync(NULL),
|
sync(NULL),
|
||||||
b_engine(b_engine),
|
b_engine(b_engine),
|
||||||
b_userpref(b_userpref),
|
b_userpref(b_userpref),
|
||||||
@@ -363,8 +361,7 @@ void BlenderSession::do_write_update_render_tile(RenderTile &rtile,
|
|||||||
PassType pass_type = BlenderSync::get_pass_type(b_pass);
|
PassType pass_type = BlenderSync::get_pass_type(b_pass);
|
||||||
int components = b_pass.channels();
|
int components = b_pass.channels();
|
||||||
|
|
||||||
rtile.buffers->set_pass_rect(
|
rtile.buffers->set_pass_rect(pass_type, components, (float *)b_pass.rect());
|
||||||
pass_type, components, (float *)b_pass.rect(), rtile.num_samples);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
end_render_result(b_engine, b_rr, false, false, false);
|
end_render_result(b_engine, b_rr, false, false, false);
|
||||||
@@ -646,7 +643,7 @@ void BlenderSession::bake(BL::Depsgraph &b_depsgraph_,
|
|||||||
|
|
||||||
/* Passes are identified by name, so in order to return the combined pass we need to set the
|
/* Passes are identified by name, so in order to return the combined pass we need to set the
|
||||||
* name. */
|
* name. */
|
||||||
Pass::add(PASS_COMBINED, scene->passes, "Combined");
|
Pass::add(PASS_COMBINED, scene->film->passes, "Combined");
|
||||||
|
|
||||||
session->read_bake_tile_cb = function_bind(&BlenderSession::read_render_tile, this, _1);
|
session->read_bake_tile_cb = function_bind(&BlenderSession::read_render_tile, this, _1);
|
||||||
session->write_render_tile_cb = function_bind(&BlenderSession::write_render_tile, this, _1);
|
session->write_render_tile_cb = function_bind(&BlenderSession::write_render_tile, this, _1);
|
||||||
@@ -679,7 +676,7 @@ void BlenderSession::bake(BL::Depsgraph &b_depsgraph_,
|
|||||||
BufferParams buffer_params;
|
BufferParams buffer_params;
|
||||||
buffer_params.width = bake_width;
|
buffer_params.width = bake_width;
|
||||||
buffer_params.height = bake_height;
|
buffer_params.height = bake_height;
|
||||||
buffer_params.passes = scene->passes;
|
buffer_params.passes = scene->film->passes;
|
||||||
|
|
||||||
/* Update session. */
|
/* Update session. */
|
||||||
session->tile_manager.set_samples(session_params.samples);
|
session->tile_manager.set_samples(session_params.samples);
|
||||||
@@ -973,7 +970,6 @@ void BlenderSession::update_status_progress()
|
|||||||
remaining_time = (1.0 - (double)progress) * (render_time / (double)progress);
|
remaining_time = (1.0 - (double)progress) * (render_time / (double)progress);
|
||||||
|
|
||||||
if (background) {
|
if (background) {
|
||||||
if (scene)
|
|
||||||
scene_status += " | " + scene->name;
|
scene_status += " | " + scene->name;
|
||||||
if (b_rlay_name != "")
|
if (b_rlay_name != "")
|
||||||
scene_status += ", " + b_rlay_name;
|
scene_status += ", " + b_rlay_name;
|
||||||
|
@@ -224,7 +224,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
if (b_node.is_a(&RNA_ShaderNodeRGBCurve)) {
|
if (b_node.is_a(&RNA_ShaderNodeRGBCurve)) {
|
||||||
BL::ShaderNodeRGBCurve b_curve_node(b_node);
|
BL::ShaderNodeRGBCurve b_curve_node(b_node);
|
||||||
BL::CurveMapping mapping(b_curve_node.mapping());
|
BL::CurveMapping mapping(b_curve_node.mapping());
|
||||||
RGBCurvesNode *curves = graph->create_node<RGBCurvesNode>();
|
RGBCurvesNode *curves = new RGBCurvesNode();
|
||||||
curvemapping_color_to_array(mapping, curves->curves, RAMP_TABLE_SIZE, true);
|
curvemapping_color_to_array(mapping, curves->curves, RAMP_TABLE_SIZE, true);
|
||||||
curvemapping_minmax(mapping, true, &curves->min_x, &curves->max_x);
|
curvemapping_minmax(mapping, true, &curves->min_x, &curves->max_x);
|
||||||
node = curves;
|
node = curves;
|
||||||
@@ -232,13 +232,13 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
if (b_node.is_a(&RNA_ShaderNodeVectorCurve)) {
|
if (b_node.is_a(&RNA_ShaderNodeVectorCurve)) {
|
||||||
BL::ShaderNodeVectorCurve b_curve_node(b_node);
|
BL::ShaderNodeVectorCurve b_curve_node(b_node);
|
||||||
BL::CurveMapping mapping(b_curve_node.mapping());
|
BL::CurveMapping mapping(b_curve_node.mapping());
|
||||||
VectorCurvesNode *curves = graph->create_node<VectorCurvesNode>();
|
VectorCurvesNode *curves = new VectorCurvesNode();
|
||||||
curvemapping_color_to_array(mapping, curves->curves, RAMP_TABLE_SIZE, false);
|
curvemapping_color_to_array(mapping, curves->curves, RAMP_TABLE_SIZE, false);
|
||||||
curvemapping_minmax(mapping, false, &curves->min_x, &curves->max_x);
|
curvemapping_minmax(mapping, false, &curves->min_x, &curves->max_x);
|
||||||
node = curves;
|
node = curves;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeValToRGB)) {
|
else if (b_node.is_a(&RNA_ShaderNodeValToRGB)) {
|
||||||
RGBRampNode *ramp = graph->create_node<RGBRampNode>();
|
RGBRampNode *ramp = new RGBRampNode();
|
||||||
BL::ShaderNodeValToRGB b_ramp_node(b_node);
|
BL::ShaderNodeValToRGB b_ramp_node(b_node);
|
||||||
BL::ColorRamp b_color_ramp(b_ramp_node.color_ramp());
|
BL::ColorRamp b_color_ramp(b_ramp_node.color_ramp());
|
||||||
colorramp_to_array(b_color_ramp, ramp->ramp, ramp->ramp_alpha, RAMP_TABLE_SIZE);
|
colorramp_to_array(b_color_ramp, ramp->ramp, ramp->ramp_alpha, RAMP_TABLE_SIZE);
|
||||||
@@ -246,94 +246,94 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
node = ramp;
|
node = ramp;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeRGB)) {
|
else if (b_node.is_a(&RNA_ShaderNodeRGB)) {
|
||||||
ColorNode *color = graph->create_node<ColorNode>();
|
ColorNode *color = new ColorNode();
|
||||||
color->value = get_node_output_rgba(b_node, "Color");
|
color->value = get_node_output_rgba(b_node, "Color");
|
||||||
node = color;
|
node = color;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeValue)) {
|
else if (b_node.is_a(&RNA_ShaderNodeValue)) {
|
||||||
ValueNode *value = graph->create_node<ValueNode>();
|
ValueNode *value = new ValueNode();
|
||||||
value->value = get_node_output_value(b_node, "Value");
|
value->value = get_node_output_value(b_node, "Value");
|
||||||
node = value;
|
node = value;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeCameraData)) {
|
else if (b_node.is_a(&RNA_ShaderNodeCameraData)) {
|
||||||
node = graph->create_node<CameraNode>();
|
node = new CameraNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeInvert)) {
|
else if (b_node.is_a(&RNA_ShaderNodeInvert)) {
|
||||||
node = graph->create_node<InvertNode>();
|
node = new InvertNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeGamma)) {
|
else if (b_node.is_a(&RNA_ShaderNodeGamma)) {
|
||||||
node = graph->create_node<GammaNode>();
|
node = new GammaNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBrightContrast)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBrightContrast)) {
|
||||||
node = graph->create_node<BrightContrastNode>();
|
node = new BrightContrastNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeMixRGB)) {
|
else if (b_node.is_a(&RNA_ShaderNodeMixRGB)) {
|
||||||
BL::ShaderNodeMixRGB b_mix_node(b_node);
|
BL::ShaderNodeMixRGB b_mix_node(b_node);
|
||||||
MixNode *mix = graph->create_node<MixNode>();
|
MixNode *mix = new MixNode();
|
||||||
mix->type = (NodeMix)b_mix_node.blend_type();
|
mix->type = (NodeMix)b_mix_node.blend_type();
|
||||||
mix->use_clamp = b_mix_node.use_clamp();
|
mix->use_clamp = b_mix_node.use_clamp();
|
||||||
node = mix;
|
node = mix;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeSeparateRGB)) {
|
else if (b_node.is_a(&RNA_ShaderNodeSeparateRGB)) {
|
||||||
node = graph->create_node<SeparateRGBNode>();
|
node = new SeparateRGBNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeCombineRGB)) {
|
else if (b_node.is_a(&RNA_ShaderNodeCombineRGB)) {
|
||||||
node = graph->create_node<CombineRGBNode>();
|
node = new CombineRGBNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeSeparateHSV)) {
|
else if (b_node.is_a(&RNA_ShaderNodeSeparateHSV)) {
|
||||||
node = graph->create_node<SeparateHSVNode>();
|
node = new SeparateHSVNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeCombineHSV)) {
|
else if (b_node.is_a(&RNA_ShaderNodeCombineHSV)) {
|
||||||
node = graph->create_node<CombineHSVNode>();
|
node = new CombineHSVNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeSeparateXYZ)) {
|
else if (b_node.is_a(&RNA_ShaderNodeSeparateXYZ)) {
|
||||||
node = graph->create_node<SeparateXYZNode>();
|
node = new SeparateXYZNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeCombineXYZ)) {
|
else if (b_node.is_a(&RNA_ShaderNodeCombineXYZ)) {
|
||||||
node = graph->create_node<CombineXYZNode>();
|
node = new CombineXYZNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeHueSaturation)) {
|
else if (b_node.is_a(&RNA_ShaderNodeHueSaturation)) {
|
||||||
node = graph->create_node<HSVNode>();
|
node = new HSVNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeRGBToBW)) {
|
else if (b_node.is_a(&RNA_ShaderNodeRGBToBW)) {
|
||||||
node = graph->create_node<RGBToBWNode>();
|
node = new RGBToBWNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeMapRange)) {
|
else if (b_node.is_a(&RNA_ShaderNodeMapRange)) {
|
||||||
BL::ShaderNodeMapRange b_map_range_node(b_node);
|
BL::ShaderNodeMapRange b_map_range_node(b_node);
|
||||||
MapRangeNode *map_range_node = graph->create_node<MapRangeNode>();
|
MapRangeNode *map_range_node = new MapRangeNode();
|
||||||
map_range_node->clamp = b_map_range_node.clamp();
|
map_range_node->clamp = b_map_range_node.clamp();
|
||||||
map_range_node->type = (NodeMapRangeType)b_map_range_node.interpolation_type();
|
map_range_node->type = (NodeMapRangeType)b_map_range_node.interpolation_type();
|
||||||
node = map_range_node;
|
node = map_range_node;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeClamp)) {
|
else if (b_node.is_a(&RNA_ShaderNodeClamp)) {
|
||||||
BL::ShaderNodeClamp b_clamp_node(b_node);
|
BL::ShaderNodeClamp b_clamp_node(b_node);
|
||||||
ClampNode *clamp_node = graph->create_node<ClampNode>();
|
ClampNode *clamp_node = new ClampNode();
|
||||||
clamp_node->type = (NodeClampType)b_clamp_node.clamp_type();
|
clamp_node->type = (NodeClampType)b_clamp_node.clamp_type();
|
||||||
node = clamp_node;
|
node = clamp_node;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeMath)) {
|
else if (b_node.is_a(&RNA_ShaderNodeMath)) {
|
||||||
BL::ShaderNodeMath b_math_node(b_node);
|
BL::ShaderNodeMath b_math_node(b_node);
|
||||||
MathNode *math_node = graph->create_node<MathNode>();
|
MathNode *math_node = new MathNode();
|
||||||
math_node->type = (NodeMathType)b_math_node.operation();
|
math_node->type = (NodeMathType)b_math_node.operation();
|
||||||
math_node->use_clamp = b_math_node.use_clamp();
|
math_node->use_clamp = b_math_node.use_clamp();
|
||||||
node = math_node;
|
node = math_node;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVectorMath)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVectorMath)) {
|
||||||
BL::ShaderNodeVectorMath b_vector_math_node(b_node);
|
BL::ShaderNodeVectorMath b_vector_math_node(b_node);
|
||||||
VectorMathNode *vector_math_node = graph->create_node<VectorMathNode>();
|
VectorMathNode *vector_math_node = new VectorMathNode();
|
||||||
vector_math_node->type = (NodeVectorMathType)b_vector_math_node.operation();
|
vector_math_node->type = (NodeVectorMathType)b_vector_math_node.operation();
|
||||||
node = vector_math_node;
|
node = vector_math_node;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVectorRotate)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVectorRotate)) {
|
||||||
BL::ShaderNodeVectorRotate b_vector_rotate_node(b_node);
|
BL::ShaderNodeVectorRotate b_vector_rotate_node(b_node);
|
||||||
VectorRotateNode *vector_rotate_node = graph->create_node<VectorRotateNode>();
|
VectorRotateNode *vector_rotate_node = new VectorRotateNode();
|
||||||
vector_rotate_node->type = (NodeVectorRotateType)b_vector_rotate_node.rotation_type();
|
vector_rotate_node->type = (NodeVectorRotateType)b_vector_rotate_node.rotation_type();
|
||||||
vector_rotate_node->invert = b_vector_rotate_node.invert();
|
vector_rotate_node->invert = b_vector_rotate_node.invert();
|
||||||
node = vector_rotate_node;
|
node = vector_rotate_node;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVectorTransform)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVectorTransform)) {
|
||||||
BL::ShaderNodeVectorTransform b_vector_transform_node(b_node);
|
BL::ShaderNodeVectorTransform b_vector_transform_node(b_node);
|
||||||
VectorTransformNode *vtransform = graph->create_node<VectorTransformNode>();
|
VectorTransformNode *vtransform = new VectorTransformNode();
|
||||||
vtransform->type = (NodeVectorTransformType)b_vector_transform_node.vector_type();
|
vtransform->type = (NodeVectorTransformType)b_vector_transform_node.vector_type();
|
||||||
vtransform->convert_from = (NodeVectorTransformConvertSpace)
|
vtransform->convert_from = (NodeVectorTransformConvertSpace)
|
||||||
b_vector_transform_node.convert_from();
|
b_vector_transform_node.convert_from();
|
||||||
@@ -344,43 +344,43 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
BL::Node::outputs_iterator out_it;
|
BL::Node::outputs_iterator out_it;
|
||||||
b_node.outputs.begin(out_it);
|
b_node.outputs.begin(out_it);
|
||||||
|
|
||||||
NormalNode *norm = graph->create_node<NormalNode>();
|
NormalNode *norm = new NormalNode();
|
||||||
norm->direction = get_node_output_vector(b_node, "Normal");
|
norm->direction = get_node_output_vector(b_node, "Normal");
|
||||||
node = norm;
|
node = norm;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeMapping)) {
|
else if (b_node.is_a(&RNA_ShaderNodeMapping)) {
|
||||||
BL::ShaderNodeMapping b_mapping_node(b_node);
|
BL::ShaderNodeMapping b_mapping_node(b_node);
|
||||||
MappingNode *mapping = graph->create_node<MappingNode>();
|
MappingNode *mapping = new MappingNode();
|
||||||
mapping->type = (NodeMappingType)b_mapping_node.vector_type();
|
mapping->type = (NodeMappingType)b_mapping_node.vector_type();
|
||||||
node = mapping;
|
node = mapping;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeFresnel)) {
|
else if (b_node.is_a(&RNA_ShaderNodeFresnel)) {
|
||||||
node = graph->create_node<FresnelNode>();
|
node = new FresnelNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeLayerWeight)) {
|
else if (b_node.is_a(&RNA_ShaderNodeLayerWeight)) {
|
||||||
node = graph->create_node<LayerWeightNode>();
|
node = new LayerWeightNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeAddShader)) {
|
else if (b_node.is_a(&RNA_ShaderNodeAddShader)) {
|
||||||
node = graph->create_node<AddClosureNode>();
|
node = new AddClosureNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeMixShader)) {
|
else if (b_node.is_a(&RNA_ShaderNodeMixShader)) {
|
||||||
node = graph->create_node<MixClosureNode>();
|
node = new MixClosureNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeAttribute)) {
|
else if (b_node.is_a(&RNA_ShaderNodeAttribute)) {
|
||||||
BL::ShaderNodeAttribute b_attr_node(b_node);
|
BL::ShaderNodeAttribute b_attr_node(b_node);
|
||||||
AttributeNode *attr = graph->create_node<AttributeNode>();
|
AttributeNode *attr = new AttributeNode();
|
||||||
attr->attribute = b_attr_node.attribute_name();
|
attr->attribute = b_attr_node.attribute_name();
|
||||||
node = attr;
|
node = attr;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBackground)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBackground)) {
|
||||||
node = graph->create_node<BackgroundNode>();
|
node = new BackgroundNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeHoldout)) {
|
else if (b_node.is_a(&RNA_ShaderNodeHoldout)) {
|
||||||
node = graph->create_node<HoldoutNode>();
|
node = new HoldoutNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfAnisotropic)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfAnisotropic)) {
|
||||||
BL::ShaderNodeBsdfAnisotropic b_aniso_node(b_node);
|
BL::ShaderNodeBsdfAnisotropic b_aniso_node(b_node);
|
||||||
AnisotropicBsdfNode *aniso = graph->create_node<AnisotropicBsdfNode>();
|
AnisotropicBsdfNode *aniso = new AnisotropicBsdfNode();
|
||||||
|
|
||||||
switch (b_aniso_node.distribution()) {
|
switch (b_aniso_node.distribution()) {
|
||||||
case BL::ShaderNodeBsdfAnisotropic::distribution_BECKMANN:
|
case BL::ShaderNodeBsdfAnisotropic::distribution_BECKMANN:
|
||||||
@@ -400,12 +400,12 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
node = aniso;
|
node = aniso;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfDiffuse)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfDiffuse)) {
|
||||||
node = graph->create_node<DiffuseBsdfNode>();
|
node = new DiffuseBsdfNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeSubsurfaceScattering)) {
|
else if (b_node.is_a(&RNA_ShaderNodeSubsurfaceScattering)) {
|
||||||
BL::ShaderNodeSubsurfaceScattering b_subsurface_node(b_node);
|
BL::ShaderNodeSubsurfaceScattering b_subsurface_node(b_node);
|
||||||
|
|
||||||
SubsurfaceScatteringNode *subsurface = graph->create_node<SubsurfaceScatteringNode>();
|
SubsurfaceScatteringNode *subsurface = new SubsurfaceScatteringNode();
|
||||||
|
|
||||||
switch (b_subsurface_node.falloff()) {
|
switch (b_subsurface_node.falloff()) {
|
||||||
case BL::ShaderNodeSubsurfaceScattering::falloff_CUBIC:
|
case BL::ShaderNodeSubsurfaceScattering::falloff_CUBIC:
|
||||||
@@ -426,7 +426,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfGlossy)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfGlossy)) {
|
||||||
BL::ShaderNodeBsdfGlossy b_glossy_node(b_node);
|
BL::ShaderNodeBsdfGlossy b_glossy_node(b_node);
|
||||||
GlossyBsdfNode *glossy = graph->create_node<GlossyBsdfNode>();
|
GlossyBsdfNode *glossy = new GlossyBsdfNode();
|
||||||
|
|
||||||
switch (b_glossy_node.distribution()) {
|
switch (b_glossy_node.distribution()) {
|
||||||
case BL::ShaderNodeBsdfGlossy::distribution_SHARP:
|
case BL::ShaderNodeBsdfGlossy::distribution_SHARP:
|
||||||
@@ -449,7 +449,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfGlass)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfGlass)) {
|
||||||
BL::ShaderNodeBsdfGlass b_glass_node(b_node);
|
BL::ShaderNodeBsdfGlass b_glass_node(b_node);
|
||||||
GlassBsdfNode *glass = graph->create_node<GlassBsdfNode>();
|
GlassBsdfNode *glass = new GlassBsdfNode();
|
||||||
switch (b_glass_node.distribution()) {
|
switch (b_glass_node.distribution()) {
|
||||||
case BL::ShaderNodeBsdfGlass::distribution_SHARP:
|
case BL::ShaderNodeBsdfGlass::distribution_SHARP:
|
||||||
glass->distribution = CLOSURE_BSDF_SHARP_GLASS_ID;
|
glass->distribution = CLOSURE_BSDF_SHARP_GLASS_ID;
|
||||||
@@ -468,7 +468,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfRefraction)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfRefraction)) {
|
||||||
BL::ShaderNodeBsdfRefraction b_refraction_node(b_node);
|
BL::ShaderNodeBsdfRefraction b_refraction_node(b_node);
|
||||||
RefractionBsdfNode *refraction = graph->create_node<RefractionBsdfNode>();
|
RefractionBsdfNode *refraction = new RefractionBsdfNode();
|
||||||
switch (b_refraction_node.distribution()) {
|
switch (b_refraction_node.distribution()) {
|
||||||
case BL::ShaderNodeBsdfRefraction::distribution_SHARP:
|
case BL::ShaderNodeBsdfRefraction::distribution_SHARP:
|
||||||
refraction->distribution = CLOSURE_BSDF_REFRACTION_ID;
|
refraction->distribution = CLOSURE_BSDF_REFRACTION_ID;
|
||||||
@@ -484,7 +484,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfToon)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfToon)) {
|
||||||
BL::ShaderNodeBsdfToon b_toon_node(b_node);
|
BL::ShaderNodeBsdfToon b_toon_node(b_node);
|
||||||
ToonBsdfNode *toon = graph->create_node<ToonBsdfNode>();
|
ToonBsdfNode *toon = new ToonBsdfNode();
|
||||||
switch (b_toon_node.component()) {
|
switch (b_toon_node.component()) {
|
||||||
case BL::ShaderNodeBsdfToon::component_DIFFUSE:
|
case BL::ShaderNodeBsdfToon::component_DIFFUSE:
|
||||||
toon->component = CLOSURE_BSDF_DIFFUSE_TOON_ID;
|
toon->component = CLOSURE_BSDF_DIFFUSE_TOON_ID;
|
||||||
@@ -497,7 +497,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfHair)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfHair)) {
|
||||||
BL::ShaderNodeBsdfHair b_hair_node(b_node);
|
BL::ShaderNodeBsdfHair b_hair_node(b_node);
|
||||||
HairBsdfNode *hair = graph->create_node<HairBsdfNode>();
|
HairBsdfNode *hair = new HairBsdfNode();
|
||||||
switch (b_hair_node.component()) {
|
switch (b_hair_node.component()) {
|
||||||
case BL::ShaderNodeBsdfHair::component_Reflection:
|
case BL::ShaderNodeBsdfHair::component_Reflection:
|
||||||
hair->component = CLOSURE_BSDF_HAIR_REFLECTION_ID;
|
hair->component = CLOSURE_BSDF_HAIR_REFLECTION_ID;
|
||||||
@@ -510,7 +510,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfHairPrincipled)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfHairPrincipled)) {
|
||||||
BL::ShaderNodeBsdfHairPrincipled b_principled_hair_node(b_node);
|
BL::ShaderNodeBsdfHairPrincipled b_principled_hair_node(b_node);
|
||||||
PrincipledHairBsdfNode *principled_hair = graph->create_node<PrincipledHairBsdfNode>();
|
PrincipledHairBsdfNode *principled_hair = new PrincipledHairBsdfNode();
|
||||||
principled_hair->parametrization = (NodePrincipledHairParametrization)get_enum(
|
principled_hair->parametrization = (NodePrincipledHairParametrization)get_enum(
|
||||||
b_principled_hair_node.ptr,
|
b_principled_hair_node.ptr,
|
||||||
"parametrization",
|
"parametrization",
|
||||||
@@ -520,7 +520,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfPrincipled)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfPrincipled)) {
|
||||||
BL::ShaderNodeBsdfPrincipled b_principled_node(b_node);
|
BL::ShaderNodeBsdfPrincipled b_principled_node(b_node);
|
||||||
PrincipledBsdfNode *principled = graph->create_node<PrincipledBsdfNode>();
|
PrincipledBsdfNode *principled = new PrincipledBsdfNode();
|
||||||
switch (b_principled_node.distribution()) {
|
switch (b_principled_node.distribution()) {
|
||||||
case BL::ShaderNodeBsdfPrincipled::distribution_GGX:
|
case BL::ShaderNodeBsdfPrincipled::distribution_GGX:
|
||||||
principled->distribution = CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID;
|
principled->distribution = CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID;
|
||||||
@@ -540,77 +540,77 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
node = principled;
|
node = principled;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfTranslucent)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfTranslucent)) {
|
||||||
node = graph->create_node<TranslucentBsdfNode>();
|
node = new TranslucentBsdfNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfTransparent)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfTransparent)) {
|
||||||
node = graph->create_node<TransparentBsdfNode>();
|
node = new TransparentBsdfNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBsdfVelvet)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBsdfVelvet)) {
|
||||||
node = graph->create_node<VelvetBsdfNode>();
|
node = new VelvetBsdfNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeEmission)) {
|
else if (b_node.is_a(&RNA_ShaderNodeEmission)) {
|
||||||
node = graph->create_node<EmissionNode>();
|
node = new EmissionNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeAmbientOcclusion)) {
|
else if (b_node.is_a(&RNA_ShaderNodeAmbientOcclusion)) {
|
||||||
BL::ShaderNodeAmbientOcclusion b_ao_node(b_node);
|
BL::ShaderNodeAmbientOcclusion b_ao_node(b_node);
|
||||||
AmbientOcclusionNode *ao = graph->create_node<AmbientOcclusionNode>();
|
AmbientOcclusionNode *ao = new AmbientOcclusionNode();
|
||||||
ao->samples = b_ao_node.samples();
|
ao->samples = b_ao_node.samples();
|
||||||
ao->inside = b_ao_node.inside();
|
ao->inside = b_ao_node.inside();
|
||||||
ao->only_local = b_ao_node.only_local();
|
ao->only_local = b_ao_node.only_local();
|
||||||
node = ao;
|
node = ao;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVolumeScatter)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVolumeScatter)) {
|
||||||
node = graph->create_node<ScatterVolumeNode>();
|
node = new ScatterVolumeNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVolumeAbsorption)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVolumeAbsorption)) {
|
||||||
node = graph->create_node<AbsorptionVolumeNode>();
|
node = new AbsorptionVolumeNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVolumePrincipled)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVolumePrincipled)) {
|
||||||
PrincipledVolumeNode *principled = graph->create_node<PrincipledVolumeNode>();
|
PrincipledVolumeNode *principled = new PrincipledVolumeNode();
|
||||||
node = principled;
|
node = principled;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeNewGeometry)) {
|
else if (b_node.is_a(&RNA_ShaderNodeNewGeometry)) {
|
||||||
node = graph->create_node<GeometryNode>();
|
node = new GeometryNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeWireframe)) {
|
else if (b_node.is_a(&RNA_ShaderNodeWireframe)) {
|
||||||
BL::ShaderNodeWireframe b_wireframe_node(b_node);
|
BL::ShaderNodeWireframe b_wireframe_node(b_node);
|
||||||
WireframeNode *wire = graph->create_node<WireframeNode>();
|
WireframeNode *wire = new WireframeNode();
|
||||||
wire->use_pixel_size = b_wireframe_node.use_pixel_size();
|
wire->use_pixel_size = b_wireframe_node.use_pixel_size();
|
||||||
node = wire;
|
node = wire;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeWavelength)) {
|
else if (b_node.is_a(&RNA_ShaderNodeWavelength)) {
|
||||||
node = graph->create_node<WavelengthNode>();
|
node = new WavelengthNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBlackbody)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBlackbody)) {
|
||||||
node = graph->create_node<BlackbodyNode>();
|
node = new BlackbodyNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeLightPath)) {
|
else if (b_node.is_a(&RNA_ShaderNodeLightPath)) {
|
||||||
node = graph->create_node<LightPathNode>();
|
node = new LightPathNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeLightFalloff)) {
|
else if (b_node.is_a(&RNA_ShaderNodeLightFalloff)) {
|
||||||
node = graph->create_node<LightFalloffNode>();
|
node = new LightFalloffNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeObjectInfo)) {
|
else if (b_node.is_a(&RNA_ShaderNodeObjectInfo)) {
|
||||||
node = graph->create_node<ObjectInfoNode>();
|
node = new ObjectInfoNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeParticleInfo)) {
|
else if (b_node.is_a(&RNA_ShaderNodeParticleInfo)) {
|
||||||
node = graph->create_node<ParticleInfoNode>();
|
node = new ParticleInfoNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeHairInfo)) {
|
else if (b_node.is_a(&RNA_ShaderNodeHairInfo)) {
|
||||||
node = graph->create_node<HairInfoNode>();
|
node = new HairInfoNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVolumeInfo)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVolumeInfo)) {
|
||||||
node = graph->create_node<VolumeInfoNode>();
|
node = new VolumeInfoNode();
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVertexColor)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVertexColor)) {
|
||||||
BL::ShaderNodeVertexColor b_vertex_color_node(b_node);
|
BL::ShaderNodeVertexColor b_vertex_color_node(b_node);
|
||||||
VertexColorNode *vertex_color_node = graph->create_node<VertexColorNode>();
|
VertexColorNode *vertex_color_node = new VertexColorNode();
|
||||||
vertex_color_node->layer_name = b_vertex_color_node.layer_name();
|
vertex_color_node->layer_name = b_vertex_color_node.layer_name();
|
||||||
node = vertex_color_node;
|
node = vertex_color_node;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBump)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBump)) {
|
||||||
BL::ShaderNodeBump b_bump_node(b_node);
|
BL::ShaderNodeBump b_bump_node(b_node);
|
||||||
BumpNode *bump = graph->create_node<BumpNode>();
|
BumpNode *bump = new BumpNode();
|
||||||
bump->invert = b_bump_node.invert();
|
bump->invert = b_bump_node.invert();
|
||||||
node = bump;
|
node = bump;
|
||||||
}
|
}
|
||||||
@@ -624,13 +624,12 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
string bytecode_hash = b_script_node.bytecode_hash();
|
string bytecode_hash = b_script_node.bytecode_hash();
|
||||||
|
|
||||||
if (!bytecode_hash.empty()) {
|
if (!bytecode_hash.empty()) {
|
||||||
node = OSLShaderManager::osl_node(
|
node = OSLShaderManager::osl_node(manager, "", bytecode_hash, b_script_node.bytecode());
|
||||||
graph, manager, "", bytecode_hash, b_script_node.bytecode());
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
string absolute_filepath = blender_absolute_path(
|
string absolute_filepath = blender_absolute_path(
|
||||||
b_data, b_ntree, b_script_node.filepath());
|
b_data, b_ntree, b_script_node.filepath());
|
||||||
node = OSLShaderManager::osl_node(graph, manager, absolute_filepath, "");
|
node = OSLShaderManager::osl_node(manager, absolute_filepath, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@@ -642,7 +641,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
BL::ShaderNodeTexImage b_image_node(b_node);
|
BL::ShaderNodeTexImage b_image_node(b_node);
|
||||||
BL::Image b_image(b_image_node.image());
|
BL::Image b_image(b_image_node.image());
|
||||||
BL::ImageUser b_image_user(b_image_node.image_user());
|
BL::ImageUser b_image_user(b_image_node.image_user());
|
||||||
ImageTextureNode *image = graph->create_node<ImageTextureNode>();
|
ImageTextureNode *image = new ImageTextureNode();
|
||||||
|
|
||||||
image->interpolation = get_image_interpolation(b_image_node);
|
image->interpolation = get_image_interpolation(b_image_node);
|
||||||
image->extension = get_image_extension(b_image_node);
|
image->extension = get_image_extension(b_image_node);
|
||||||
@@ -679,7 +678,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
* builtin names for packed images and movies
|
* builtin names for packed images and movies
|
||||||
*/
|
*/
|
||||||
int scene_frame = b_scene.frame_current();
|
int scene_frame = b_scene.frame_current();
|
||||||
int image_frame = image_user_frame_number(b_image_user, b_image, scene_frame);
|
int image_frame = image_user_frame_number(b_image_user, scene_frame);
|
||||||
image->handle = scene->image_manager->add_image(
|
image->handle = scene->image_manager->add_image(
|
||||||
new BlenderImageLoader(b_image, image_frame), image->image_params());
|
new BlenderImageLoader(b_image, image_frame), image->image_params());
|
||||||
}
|
}
|
||||||
@@ -694,7 +693,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
BL::ShaderNodeTexEnvironment b_env_node(b_node);
|
BL::ShaderNodeTexEnvironment b_env_node(b_node);
|
||||||
BL::Image b_image(b_env_node.image());
|
BL::Image b_image(b_env_node.image());
|
||||||
BL::ImageUser b_image_user(b_env_node.image_user());
|
BL::ImageUser b_image_user(b_env_node.image_user());
|
||||||
EnvironmentTextureNode *env = graph->create_node<EnvironmentTextureNode>();
|
EnvironmentTextureNode *env = new EnvironmentTextureNode();
|
||||||
|
|
||||||
env->interpolation = get_image_interpolation(b_env_node);
|
env->interpolation = get_image_interpolation(b_env_node);
|
||||||
env->projection = (NodeEnvironmentProjection)b_env_node.projection();
|
env->projection = (NodeEnvironmentProjection)b_env_node.projection();
|
||||||
@@ -714,7 +713,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
|
|
||||||
if (is_builtin) {
|
if (is_builtin) {
|
||||||
int scene_frame = b_scene.frame_current();
|
int scene_frame = b_scene.frame_current();
|
||||||
int image_frame = image_user_frame_number(b_image_user, b_image, scene_frame);
|
int image_frame = image_user_frame_number(b_image_user, scene_frame);
|
||||||
env->handle = scene->image_manager->add_image(new BlenderImageLoader(b_image, image_frame),
|
env->handle = scene->image_manager->add_image(new BlenderImageLoader(b_image, image_frame),
|
||||||
env->image_params());
|
env->image_params());
|
||||||
}
|
}
|
||||||
@@ -727,7 +726,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexGradient)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexGradient)) {
|
||||||
BL::ShaderNodeTexGradient b_gradient_node(b_node);
|
BL::ShaderNodeTexGradient b_gradient_node(b_node);
|
||||||
GradientTextureNode *gradient = graph->create_node<GradientTextureNode>();
|
GradientTextureNode *gradient = new GradientTextureNode();
|
||||||
gradient->type = (NodeGradientType)b_gradient_node.gradient_type();
|
gradient->type = (NodeGradientType)b_gradient_node.gradient_type();
|
||||||
BL::TexMapping b_texture_mapping(b_gradient_node.texture_mapping());
|
BL::TexMapping b_texture_mapping(b_gradient_node.texture_mapping());
|
||||||
get_tex_mapping(&gradient->tex_mapping, b_texture_mapping);
|
get_tex_mapping(&gradient->tex_mapping, b_texture_mapping);
|
||||||
@@ -735,7 +734,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexVoronoi)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexVoronoi)) {
|
||||||
BL::ShaderNodeTexVoronoi b_voronoi_node(b_node);
|
BL::ShaderNodeTexVoronoi b_voronoi_node(b_node);
|
||||||
VoronoiTextureNode *voronoi = graph->create_node<VoronoiTextureNode>();
|
VoronoiTextureNode *voronoi = new VoronoiTextureNode();
|
||||||
voronoi->dimensions = b_voronoi_node.voronoi_dimensions();
|
voronoi->dimensions = b_voronoi_node.voronoi_dimensions();
|
||||||
voronoi->feature = (NodeVoronoiFeature)b_voronoi_node.feature();
|
voronoi->feature = (NodeVoronoiFeature)b_voronoi_node.feature();
|
||||||
voronoi->metric = (NodeVoronoiDistanceMetric)b_voronoi_node.distance();
|
voronoi->metric = (NodeVoronoiDistanceMetric)b_voronoi_node.distance();
|
||||||
@@ -745,7 +744,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexMagic)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexMagic)) {
|
||||||
BL::ShaderNodeTexMagic b_magic_node(b_node);
|
BL::ShaderNodeTexMagic b_magic_node(b_node);
|
||||||
MagicTextureNode *magic = graph->create_node<MagicTextureNode>();
|
MagicTextureNode *magic = new MagicTextureNode();
|
||||||
magic->depth = b_magic_node.turbulence_depth();
|
magic->depth = b_magic_node.turbulence_depth();
|
||||||
BL::TexMapping b_texture_mapping(b_magic_node.texture_mapping());
|
BL::TexMapping b_texture_mapping(b_magic_node.texture_mapping());
|
||||||
get_tex_mapping(&magic->tex_mapping, b_texture_mapping);
|
get_tex_mapping(&magic->tex_mapping, b_texture_mapping);
|
||||||
@@ -753,7 +752,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexWave)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexWave)) {
|
||||||
BL::ShaderNodeTexWave b_wave_node(b_node);
|
BL::ShaderNodeTexWave b_wave_node(b_node);
|
||||||
WaveTextureNode *wave = graph->create_node<WaveTextureNode>();
|
WaveTextureNode *wave = new WaveTextureNode();
|
||||||
wave->type = (NodeWaveType)b_wave_node.wave_type();
|
wave->type = (NodeWaveType)b_wave_node.wave_type();
|
||||||
wave->bands_direction = (NodeWaveBandsDirection)b_wave_node.bands_direction();
|
wave->bands_direction = (NodeWaveBandsDirection)b_wave_node.bands_direction();
|
||||||
wave->rings_direction = (NodeWaveRingsDirection)b_wave_node.rings_direction();
|
wave->rings_direction = (NodeWaveRingsDirection)b_wave_node.rings_direction();
|
||||||
@@ -764,14 +763,14 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexChecker)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexChecker)) {
|
||||||
BL::ShaderNodeTexChecker b_checker_node(b_node);
|
BL::ShaderNodeTexChecker b_checker_node(b_node);
|
||||||
CheckerTextureNode *checker = graph->create_node<CheckerTextureNode>();
|
CheckerTextureNode *checker = new CheckerTextureNode();
|
||||||
BL::TexMapping b_texture_mapping(b_checker_node.texture_mapping());
|
BL::TexMapping b_texture_mapping(b_checker_node.texture_mapping());
|
||||||
get_tex_mapping(&checker->tex_mapping, b_texture_mapping);
|
get_tex_mapping(&checker->tex_mapping, b_texture_mapping);
|
||||||
node = checker;
|
node = checker;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexBrick)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexBrick)) {
|
||||||
BL::ShaderNodeTexBrick b_brick_node(b_node);
|
BL::ShaderNodeTexBrick b_brick_node(b_node);
|
||||||
BrickTextureNode *brick = graph->create_node<BrickTextureNode>();
|
BrickTextureNode *brick = new BrickTextureNode();
|
||||||
brick->offset = b_brick_node.offset();
|
brick->offset = b_brick_node.offset();
|
||||||
brick->offset_frequency = b_brick_node.offset_frequency();
|
brick->offset_frequency = b_brick_node.offset_frequency();
|
||||||
brick->squash = b_brick_node.squash();
|
brick->squash = b_brick_node.squash();
|
||||||
@@ -782,7 +781,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexNoise)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexNoise)) {
|
||||||
BL::ShaderNodeTexNoise b_noise_node(b_node);
|
BL::ShaderNodeTexNoise b_noise_node(b_node);
|
||||||
NoiseTextureNode *noise = graph->create_node<NoiseTextureNode>();
|
NoiseTextureNode *noise = new NoiseTextureNode();
|
||||||
noise->dimensions = b_noise_node.noise_dimensions();
|
noise->dimensions = b_noise_node.noise_dimensions();
|
||||||
BL::TexMapping b_texture_mapping(b_noise_node.texture_mapping());
|
BL::TexMapping b_texture_mapping(b_noise_node.texture_mapping());
|
||||||
get_tex_mapping(&noise->tex_mapping, b_texture_mapping);
|
get_tex_mapping(&noise->tex_mapping, b_texture_mapping);
|
||||||
@@ -790,7 +789,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexMusgrave)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexMusgrave)) {
|
||||||
BL::ShaderNodeTexMusgrave b_musgrave_node(b_node);
|
BL::ShaderNodeTexMusgrave b_musgrave_node(b_node);
|
||||||
MusgraveTextureNode *musgrave_node = graph->create_node<MusgraveTextureNode>();
|
MusgraveTextureNode *musgrave_node = new MusgraveTextureNode();
|
||||||
musgrave_node->type = (NodeMusgraveType)b_musgrave_node.musgrave_type();
|
musgrave_node->type = (NodeMusgraveType)b_musgrave_node.musgrave_type();
|
||||||
musgrave_node->dimensions = b_musgrave_node.musgrave_dimensions();
|
musgrave_node->dimensions = b_musgrave_node.musgrave_dimensions();
|
||||||
BL::TexMapping b_texture_mapping(b_musgrave_node.texture_mapping());
|
BL::TexMapping b_texture_mapping(b_musgrave_node.texture_mapping());
|
||||||
@@ -799,7 +798,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexCoord)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexCoord)) {
|
||||||
BL::ShaderNodeTexCoord b_tex_coord_node(b_node);
|
BL::ShaderNodeTexCoord b_tex_coord_node(b_node);
|
||||||
TextureCoordinateNode *tex_coord = graph->create_node<TextureCoordinateNode>();
|
TextureCoordinateNode *tex_coord = new TextureCoordinateNode();
|
||||||
tex_coord->from_dupli = b_tex_coord_node.from_instancer();
|
tex_coord->from_dupli = b_tex_coord_node.from_instancer();
|
||||||
if (b_tex_coord_node.object()) {
|
if (b_tex_coord_node.object()) {
|
||||||
tex_coord->use_transform = true;
|
tex_coord->use_transform = true;
|
||||||
@@ -809,7 +808,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexSky)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexSky)) {
|
||||||
BL::ShaderNodeTexSky b_sky_node(b_node);
|
BL::ShaderNodeTexSky b_sky_node(b_node);
|
||||||
SkyTextureNode *sky = graph->create_node<SkyTextureNode>();
|
SkyTextureNode *sky = new SkyTextureNode();
|
||||||
sky->type = (NodeSkyType)b_sky_node.sky_type();
|
sky->type = (NodeSkyType)b_sky_node.sky_type();
|
||||||
sky->sun_direction = normalize(get_float3(b_sky_node.sun_direction()));
|
sky->sun_direction = normalize(get_float3(b_sky_node.sun_direction()));
|
||||||
sky->turbidity = b_sky_node.turbidity();
|
sky->turbidity = b_sky_node.turbidity();
|
||||||
@@ -829,7 +828,7 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexIES)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexIES)) {
|
||||||
BL::ShaderNodeTexIES b_ies_node(b_node);
|
BL::ShaderNodeTexIES b_ies_node(b_node);
|
||||||
IESLightNode *ies = graph->create_node<IESLightNode>();
|
IESLightNode *ies = new IESLightNode();
|
||||||
switch (b_ies_node.mode()) {
|
switch (b_ies_node.mode()) {
|
||||||
case BL::ShaderNodeTexIES::mode_EXTERNAL:
|
case BL::ShaderNodeTexIES::mode_EXTERNAL:
|
||||||
ies->filename = blender_absolute_path(b_data, b_ntree, b_ies_node.filepath());
|
ies->filename = blender_absolute_path(b_data, b_ntree, b_ies_node.filepath());
|
||||||
@@ -845,20 +844,20 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexWhiteNoise)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexWhiteNoise)) {
|
||||||
BL::ShaderNodeTexWhiteNoise b_tex_white_noise_node(b_node);
|
BL::ShaderNodeTexWhiteNoise b_tex_white_noise_node(b_node);
|
||||||
WhiteNoiseTextureNode *white_noise_node = graph->create_node<WhiteNoiseTextureNode>();
|
WhiteNoiseTextureNode *white_noise_node = new WhiteNoiseTextureNode();
|
||||||
white_noise_node->dimensions = b_tex_white_noise_node.noise_dimensions();
|
white_noise_node->dimensions = b_tex_white_noise_node.noise_dimensions();
|
||||||
node = white_noise_node;
|
node = white_noise_node;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeNormalMap)) {
|
else if (b_node.is_a(&RNA_ShaderNodeNormalMap)) {
|
||||||
BL::ShaderNodeNormalMap b_normal_map_node(b_node);
|
BL::ShaderNodeNormalMap b_normal_map_node(b_node);
|
||||||
NormalMapNode *nmap = graph->create_node<NormalMapNode>();
|
NormalMapNode *nmap = new NormalMapNode();
|
||||||
nmap->space = (NodeNormalMapSpace)b_normal_map_node.space();
|
nmap->space = (NodeNormalMapSpace)b_normal_map_node.space();
|
||||||
nmap->attribute = b_normal_map_node.uv_map();
|
nmap->attribute = b_normal_map_node.uv_map();
|
||||||
node = nmap;
|
node = nmap;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTangent)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTangent)) {
|
||||||
BL::ShaderNodeTangent b_tangent_node(b_node);
|
BL::ShaderNodeTangent b_tangent_node(b_node);
|
||||||
TangentNode *tangent = graph->create_node<TangentNode>();
|
TangentNode *tangent = new TangentNode();
|
||||||
tangent->direction_type = (NodeTangentDirectionType)b_tangent_node.direction_type();
|
tangent->direction_type = (NodeTangentDirectionType)b_tangent_node.direction_type();
|
||||||
tangent->axis = (NodeTangentAxis)b_tangent_node.axis();
|
tangent->axis = (NodeTangentAxis)b_tangent_node.axis();
|
||||||
tangent->attribute = b_tangent_node.uv_map();
|
tangent->attribute = b_tangent_node.uv_map();
|
||||||
@@ -866,14 +865,14 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeUVMap)) {
|
else if (b_node.is_a(&RNA_ShaderNodeUVMap)) {
|
||||||
BL::ShaderNodeUVMap b_uvmap_node(b_node);
|
BL::ShaderNodeUVMap b_uvmap_node(b_node);
|
||||||
UVMapNode *uvm = graph->create_node<UVMapNode>();
|
UVMapNode *uvm = new UVMapNode();
|
||||||
uvm->attribute = b_uvmap_node.uv_map();
|
uvm->attribute = b_uvmap_node.uv_map();
|
||||||
uvm->from_dupli = b_uvmap_node.from_instancer();
|
uvm->from_dupli = b_uvmap_node.from_instancer();
|
||||||
node = uvm;
|
node = uvm;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeTexPointDensity)) {
|
else if (b_node.is_a(&RNA_ShaderNodeTexPointDensity)) {
|
||||||
BL::ShaderNodeTexPointDensity b_point_density_node(b_node);
|
BL::ShaderNodeTexPointDensity b_point_density_node(b_node);
|
||||||
PointDensityTextureNode *point_density = graph->create_node<PointDensityTextureNode>();
|
PointDensityTextureNode *point_density = new PointDensityTextureNode();
|
||||||
point_density->space = (NodeTexVoxelSpace)b_point_density_node.space();
|
point_density->space = (NodeTexVoxelSpace)b_point_density_node.space();
|
||||||
point_density->interpolation = get_image_interpolation(b_point_density_node);
|
point_density->interpolation = get_image_interpolation(b_point_density_node);
|
||||||
point_density->handle = scene->image_manager->add_image(
|
point_density->handle = scene->image_manager->add_image(
|
||||||
@@ -898,26 +897,26 @@ static ShaderNode *add_node(Scene *scene,
|
|||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeBevel)) {
|
else if (b_node.is_a(&RNA_ShaderNodeBevel)) {
|
||||||
BL::ShaderNodeBevel b_bevel_node(b_node);
|
BL::ShaderNodeBevel b_bevel_node(b_node);
|
||||||
BevelNode *bevel = graph->create_node<BevelNode>();
|
BevelNode *bevel = new BevelNode();
|
||||||
bevel->samples = b_bevel_node.samples();
|
bevel->samples = b_bevel_node.samples();
|
||||||
node = bevel;
|
node = bevel;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeDisplacement)) {
|
else if (b_node.is_a(&RNA_ShaderNodeDisplacement)) {
|
||||||
BL::ShaderNodeDisplacement b_disp_node(b_node);
|
BL::ShaderNodeDisplacement b_disp_node(b_node);
|
||||||
DisplacementNode *disp = graph->create_node<DisplacementNode>();
|
DisplacementNode *disp = new DisplacementNode();
|
||||||
disp->space = (NodeNormalMapSpace)b_disp_node.space();
|
disp->space = (NodeNormalMapSpace)b_disp_node.space();
|
||||||
node = disp;
|
node = disp;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeVectorDisplacement)) {
|
else if (b_node.is_a(&RNA_ShaderNodeVectorDisplacement)) {
|
||||||
BL::ShaderNodeVectorDisplacement b_disp_node(b_node);
|
BL::ShaderNodeVectorDisplacement b_disp_node(b_node);
|
||||||
VectorDisplacementNode *disp = graph->create_node<VectorDisplacementNode>();
|
VectorDisplacementNode *disp = new VectorDisplacementNode();
|
||||||
disp->space = (NodeNormalMapSpace)b_disp_node.space();
|
disp->space = (NodeNormalMapSpace)b_disp_node.space();
|
||||||
disp->attribute = "";
|
disp->attribute = "";
|
||||||
node = disp;
|
node = disp;
|
||||||
}
|
}
|
||||||
else if (b_node.is_a(&RNA_ShaderNodeOutputAOV)) {
|
else if (b_node.is_a(&RNA_ShaderNodeOutputAOV)) {
|
||||||
BL::ShaderNodeOutputAOV b_aov_node(b_node);
|
BL::ShaderNodeOutputAOV b_aov_node(b_node);
|
||||||
OutputAOVNode *aov = graph->create_node<OutputAOVNode>();
|
OutputAOVNode *aov = new OutputAOVNode();
|
||||||
aov->name = b_aov_node.name();
|
aov->name = b_aov_node.name();
|
||||||
node = aov;
|
node = aov;
|
||||||
}
|
}
|
||||||
@@ -1039,7 +1038,7 @@ static void add_nodes(Scene *scene,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConvertNode *proxy = graph->create_node<ConvertNode>(to_socket_type, to_socket_type, true);
|
ConvertNode *proxy = new ConvertNode(to_socket_type, to_socket_type, true);
|
||||||
|
|
||||||
input_map[b_link->from_socket().ptr.data] = proxy->inputs[0];
|
input_map[b_link->from_socket().ptr.data] = proxy->inputs[0];
|
||||||
output_map[b_link->to_socket().ptr.data] = proxy->outputs[0];
|
output_map[b_link->to_socket().ptr.data] = proxy->outputs[0];
|
||||||
@@ -1070,7 +1069,7 @@ static void add_nodes(Scene *scene,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConvertNode *proxy = graph->create_node<ConvertNode>(input_type, input_type, true);
|
ConvertNode *proxy = new ConvertNode(input_type, input_type, true);
|
||||||
graph->add(proxy);
|
graph->add(proxy);
|
||||||
|
|
||||||
/* register the proxy node for internal binding */
|
/* register the proxy node for internal binding */
|
||||||
@@ -1086,7 +1085,7 @@ static void add_nodes(Scene *scene,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConvertNode *proxy = graph->create_node<ConvertNode>(output_type, output_type, true);
|
ConvertNode *proxy = new ConvertNode(output_type, output_type, true);
|
||||||
graph->add(proxy);
|
graph->add(proxy);
|
||||||
|
|
||||||
/* register the proxy node for internal binding */
|
/* register the proxy node for internal binding */
|
||||||
@@ -1241,7 +1240,7 @@ void BlenderSync::sync_materials(BL::Depsgraph &b_depsgraph, bool update_all)
|
|||||||
Shader *shader;
|
Shader *shader;
|
||||||
|
|
||||||
/* test if we need to sync */
|
/* test if we need to sync */
|
||||||
if (shader_map.add_or_update(scene, &shader, b_mat) || update_all) {
|
if (shader_map.add_or_update(&shader, b_mat) || update_all) {
|
||||||
ShaderGraph *graph = new ShaderGraph();
|
ShaderGraph *graph = new ShaderGraph();
|
||||||
|
|
||||||
shader->name = b_mat.name().c_str();
|
shader->name = b_mat.name().c_str();
|
||||||
@@ -1254,7 +1253,7 @@ void BlenderSync::sync_materials(BL::Depsgraph &b_depsgraph, bool update_all)
|
|||||||
add_nodes(scene, b_engine, b_data, b_depsgraph, b_scene, graph, b_ntree);
|
add_nodes(scene, b_engine, b_data, b_depsgraph, b_scene, graph, b_ntree);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DiffuseBsdfNode *diffuse = graph->create_node<DiffuseBsdfNode>();
|
DiffuseBsdfNode *diffuse = new DiffuseBsdfNode();
|
||||||
diffuse->color = get_float3(b_mat.diffuse_color());
|
diffuse->color = get_float3(b_mat.diffuse_color());
|
||||||
graph->add(diffuse);
|
graph->add(diffuse);
|
||||||
|
|
||||||
@@ -1337,7 +1336,7 @@ void BlenderSync::sync_world(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d,
|
|||||||
shader->volume_step_rate = get_float(cworld, "volume_step_size");
|
shader->volume_step_rate = get_float(cworld, "volume_step_size");
|
||||||
}
|
}
|
||||||
else if (new_viewport_parameters.use_scene_world && b_world) {
|
else if (new_viewport_parameters.use_scene_world && b_world) {
|
||||||
BackgroundNode *background = graph->create_node<BackgroundNode>();
|
BackgroundNode *background = new BackgroundNode();
|
||||||
background->color = get_float3(b_world.color());
|
background->color = get_float3(b_world.color());
|
||||||
graph->add(background);
|
graph->add(background);
|
||||||
|
|
||||||
@@ -1353,23 +1352,23 @@ void BlenderSync::sync_world(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d,
|
|||||||
world_color = make_float3(0.0f, 0.0f, 0.0f);
|
world_color = make_float3(0.0f, 0.0f, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
BackgroundNode *background = graph->create_node<BackgroundNode>();
|
BackgroundNode *background = new BackgroundNode();
|
||||||
graph->add(background);
|
graph->add(background);
|
||||||
|
|
||||||
LightPathNode *light_path = graph->create_node<LightPathNode>();
|
LightPathNode *light_path = new LightPathNode();
|
||||||
graph->add(light_path);
|
graph->add(light_path);
|
||||||
|
|
||||||
MixNode *mix_scene_with_background = graph->create_node<MixNode>();
|
MixNode *mix_scene_with_background = new MixNode();
|
||||||
mix_scene_with_background->color2 = world_color;
|
mix_scene_with_background->color2 = world_color;
|
||||||
graph->add(mix_scene_with_background);
|
graph->add(mix_scene_with_background);
|
||||||
|
|
||||||
EnvironmentTextureNode *texture_environment = graph->create_node<EnvironmentTextureNode>();
|
EnvironmentTextureNode *texture_environment = new EnvironmentTextureNode();
|
||||||
texture_environment->tex_mapping.type = TextureMapping::VECTOR;
|
texture_environment->tex_mapping.type = TextureMapping::VECTOR;
|
||||||
texture_environment->tex_mapping.rotation[2] = new_viewport_parameters.studiolight_rotate_z;
|
texture_environment->tex_mapping.rotation[2] = new_viewport_parameters.studiolight_rotate_z;
|
||||||
texture_environment->filename = new_viewport_parameters.studiolight_path;
|
texture_environment->filename = new_viewport_parameters.studiolight_path;
|
||||||
graph->add(texture_environment);
|
graph->add(texture_environment);
|
||||||
|
|
||||||
MixNode *mix_intensity = graph->create_node<MixNode>();
|
MixNode *mix_intensity = new MixNode();
|
||||||
mix_intensity->type = NODE_MIX_MUL;
|
mix_intensity->type = NODE_MIX_MUL;
|
||||||
mix_intensity->fac = 1.0f;
|
mix_intensity->fac = 1.0f;
|
||||||
mix_intensity->color2 = make_float3(new_viewport_parameters.studiolight_intensity,
|
mix_intensity->color2 = make_float3(new_viewport_parameters.studiolight_intensity,
|
||||||
@@ -1377,10 +1376,10 @@ void BlenderSync::sync_world(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d,
|
|||||||
new_viewport_parameters.studiolight_intensity);
|
new_viewport_parameters.studiolight_intensity);
|
||||||
graph->add(mix_intensity);
|
graph->add(mix_intensity);
|
||||||
|
|
||||||
TextureCoordinateNode *texture_coordinate = graph->create_node<TextureCoordinateNode>();
|
TextureCoordinateNode *texture_coordinate = new TextureCoordinateNode();
|
||||||
graph->add(texture_coordinate);
|
graph->add(texture_coordinate);
|
||||||
|
|
||||||
MixNode *mix_background_with_environment = graph->create_node<MixNode>();
|
MixNode *mix_background_with_environment = new MixNode();
|
||||||
mix_background_with_environment->fac = new_viewport_parameters.studiolight_background_alpha;
|
mix_background_with_environment->fac = new_viewport_parameters.studiolight_background_alpha;
|
||||||
mix_background_with_environment->color1 = world_color;
|
mix_background_with_environment->color1 = world_color;
|
||||||
graph->add(mix_background_with_environment);
|
graph->add(mix_background_with_environment);
|
||||||
@@ -1467,7 +1466,7 @@ void BlenderSync::sync_lights(BL::Depsgraph &b_depsgraph, bool update_all)
|
|||||||
Shader *shader;
|
Shader *shader;
|
||||||
|
|
||||||
/* test if we need to sync */
|
/* test if we need to sync */
|
||||||
if (shader_map.add_or_update(scene, &shader, b_light) || update_all) {
|
if (shader_map.add_or_update(&shader, b_light) || update_all) {
|
||||||
ShaderGraph *graph = new ShaderGraph();
|
ShaderGraph *graph = new ShaderGraph();
|
||||||
|
|
||||||
/* create nodes */
|
/* create nodes */
|
||||||
@@ -1479,7 +1478,7 @@ void BlenderSync::sync_lights(BL::Depsgraph &b_depsgraph, bool update_all)
|
|||||||
add_nodes(scene, b_engine, b_data, b_depsgraph, b_scene, graph, b_ntree);
|
add_nodes(scene, b_engine, b_data, b_depsgraph, b_scene, graph, b_ntree);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
EmissionNode *emission = graph->create_node<EmissionNode>();
|
EmissionNode *emission = new EmissionNode();
|
||||||
emission->color = make_float3(1.0f, 1.0f, 1.0f);
|
emission->color = make_float3(1.0f, 1.0f, 1.0f);
|
||||||
emission->strength = 1.0f;
|
emission->strength = 1.0f;
|
||||||
graph->add(emission);
|
graph->add(emission);
|
||||||
|
@@ -55,11 +55,11 @@ BlenderSync::BlenderSync(BL::RenderEngine &b_engine,
|
|||||||
: b_engine(b_engine),
|
: b_engine(b_engine),
|
||||||
b_data(b_data),
|
b_data(b_data),
|
||||||
b_scene(b_scene),
|
b_scene(b_scene),
|
||||||
shader_map(),
|
shader_map(&scene->shaders),
|
||||||
object_map(),
|
object_map(&scene->objects),
|
||||||
geometry_map(),
|
geometry_map(&scene->geometry),
|
||||||
light_map(),
|
light_map(&scene->lights),
|
||||||
particle_system_map(),
|
particle_system_map(&scene->particle_systems),
|
||||||
world_map(NULL),
|
world_map(NULL),
|
||||||
world_recalc(false),
|
world_recalc(false),
|
||||||
scene(scene),
|
scene(scene),
|
||||||
@@ -239,7 +239,7 @@ void BlenderSync::sync_data(BL::RenderSettings &b_render,
|
|||||||
|
|
||||||
/* Shader sync done at the end, since object sync uses it.
|
/* Shader sync done at the end, since object sync uses it.
|
||||||
* false = don't delete unused shaders, not supported. */
|
* false = don't delete unused shaders, not supported. */
|
||||||
shader_map.post_sync(scene, false);
|
shader_map.post_sync(false);
|
||||||
|
|
||||||
free_data_after_sync(b_depsgraph);
|
free_data_after_sync(b_depsgraph);
|
||||||
}
|
}
|
||||||
@@ -372,10 +372,8 @@ void BlenderSync::sync_film(BL::SpaceView3D &b_v3d)
|
|||||||
Film *film = scene->film;
|
Film *film = scene->film;
|
||||||
Film prevfilm = *film;
|
Film prevfilm = *film;
|
||||||
|
|
||||||
vector<Pass> prevpasses = scene->passes;
|
|
||||||
|
|
||||||
if (b_v3d) {
|
if (b_v3d) {
|
||||||
film->display_pass = update_viewport_display_passes(b_v3d, scene->passes);
|
film->display_pass = update_viewport_display_passes(b_v3d, film->passes);
|
||||||
}
|
}
|
||||||
|
|
||||||
film->exposure = get_float(cscene, "film_exposure");
|
film->exposure = get_float(cscene, "film_exposure");
|
||||||
@@ -405,11 +403,7 @@ void BlenderSync::sync_film(BL::SpaceView3D &b_v3d)
|
|||||||
|
|
||||||
if (film->modified(prevfilm)) {
|
if (film->modified(prevfilm)) {
|
||||||
film->tag_update(scene);
|
film->tag_update(scene);
|
||||||
}
|
film->tag_passes_update(scene, prevfilm.passes, false);
|
||||||
|
|
||||||
if (!Pass::equals(prevpasses, scene->passes)) {
|
|
||||||
film->tag_passes_update(scene, prevpasses, false);
|
|
||||||
film->tag_update(scene);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -148,7 +148,7 @@ class BlenderSync {
|
|||||||
bool *use_portal);
|
bool *use_portal);
|
||||||
|
|
||||||
/* Volume */
|
/* Volume */
|
||||||
void sync_volume(BL::Object &b_ob, Volume *volume, const vector<Shader *> &used_shaders);
|
void sync_volume(BL::Object &b_ob, Mesh *mesh, const vector<Shader *> &used_shaders);
|
||||||
|
|
||||||
/* Mesh */
|
/* Mesh */
|
||||||
void sync_mesh(BL::Depsgraph b_depsgraph,
|
void sync_mesh(BL::Depsgraph b_depsgraph,
|
||||||
|
@@ -238,7 +238,7 @@ static inline string image_user_file_path(BL::ImageUser &iuser,
|
|||||||
{
|
{
|
||||||
char filepath[1024];
|
char filepath[1024];
|
||||||
iuser.tile(0);
|
iuser.tile(0);
|
||||||
BKE_image_user_frame_calc(ima.ptr.data, iuser.ptr.data, cfra);
|
BKE_image_user_frame_calc(NULL, iuser.ptr.data, cfra);
|
||||||
BKE_image_user_file_path(iuser.ptr.data, ima.ptr.data, filepath);
|
BKE_image_user_file_path(iuser.ptr.data, ima.ptr.data, filepath);
|
||||||
|
|
||||||
string filepath_str = string(filepath);
|
string filepath_str = string(filepath);
|
||||||
@@ -248,9 +248,9 @@ static inline string image_user_file_path(BL::ImageUser &iuser,
|
|||||||
return filepath_str;
|
return filepath_str;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int image_user_frame_number(BL::ImageUser &iuser, BL::Image &ima, int cfra)
|
static inline int image_user_frame_number(BL::ImageUser &iuser, int cfra)
|
||||||
{
|
{
|
||||||
BKE_image_user_frame_calc(ima.ptr.data, iuser.ptr.data, cfra);
|
BKE_image_user_frame_calc(NULL, iuser.ptr.data, cfra);
|
||||||
return iuser.frame_current();
|
return iuser.frame_current();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user