diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-08-16 16:22:34 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-08-16 16:22:34 +0300 |
commit | da25dfa870ca821db20b2bc803b117de97b12be1 (patch) | |
tree | 41b19f3c4eb26ed71ee2e94577cf802d351de9f5 | |
parent | e19439a16978d75574c7fd9d5988c807b739cf3d (diff) | |
parent | 1e7065516980a5ea40e5b757b52b704e053a5e43 (diff) |
Merge branch 'master' into blender2.8
6 files changed, 114 insertions, 92 deletions
diff --git a/build_files/build_environment/cmake/ffmpeg.cmake b/build_files/build_environment/cmake/ffmpeg.cmake index c8fdb557983..7a3c884e7bc 100644 --- a/build_files/build_environment/cmake/ffmpeg.cmake +++ b/build_files/build_environment/cmake/ffmpeg.cmake @@ -18,6 +18,13 @@ set(FFMPEG_CFLAGS "-I${mingw_LIBDIR}/lame/include -I${mingw_LIBDIR}/openjpeg/include/ -I${mingw_LIBDIR}/ogg/include -I${mingw_LIBDIR}/vorbis/include -I${mingw_LIBDIR}/theora/include -I${mingw_LIBDIR}/vpx/include -I${mingw_LIBDIR}/x264/include -I${mingw_LIBDIR}/xvidcore/include -I${mingw_LIBDIR}/zlib/include") set(FFMPEG_LDFLAGS "-L${mingw_LIBDIR}/lame/lib -L${mingw_LIBDIR}/openjpeg/lib -L${mingw_LIBDIR}/ogg/lib -L${mingw_LIBDIR}/vorbis/lib -L${mingw_LIBDIR}/theora/lib -L${mingw_LIBDIR}/vpx/lib -L${mingw_LIBDIR}/x264/lib -L${mingw_LIBDIR}/xvidcore/lib -L${mingw_LIBDIR}/zlib/lib") +if(UNIX AND NOT APPLE) + # OpenJpeg is compiled with pthread support on Linux, which is all fine and is what we + # want for maximum runtime performance, but due to static nature of that library we + # need to force FFpeg to link against pthread, otherwise test program used by autoconf + # will fail. + set(FFMPEG_LDFLAGS "${FFMPEG_LDFLAGS} -lpthread") +endif() set(FFMPEG_EXTRA_FLAGS --pkg-config-flags=--static --extra-cflags=${FFMPEG_CFLAGS} --extra-ldflags=${FFMPEG_LDFLAGS}) set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}) diff --git a/build_files/build_environment/cmake/openvdb.cmake b/build_files/build_environment/cmake/openvdb.cmake index 26791012688..3418987a46b 100644 --- a/build_files/build_environment/cmake/openvdb.cmake +++ b/build_files/build_environment/cmake/openvdb.cmake @@ -21,23 +21,6 @@ if(BUILD_MODE STREQUAL Debug) endif() set(OPENVDB_EXTRA_ARGS - -DILMBASE_HOME=${LIBDIR}/ilmbase/ - -DILMBASE_CUSTOM=ON - -DILMBASE_CUSTOM_LIBRARIES=Half;Imath-2_2;IlmThread-2_2;Iex-2_2 - -DILMBASE_INCLUDE_DIR=${LIBDIR}/ilmbase/include/ - -DILMBASE_HALF_LIBRARIES=${LIBDIR}/ilmbase/lib/Half${LIBEXT} - -DILMBASE_IMATH_LIBRARIES=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Imath-2_2${LIBEXT} - -DILMBASE_ILMTHREAD_LIBRARIES=${LIBDIR}/ilmbase/lib/${LIBPREFIX}IlmThread-2_2${LIBEXT} - -DILMBASE_IEX_LIBRARIES=${LIBDIR}/ilmbase/lib/${LIBPREFIX}Iex-2_2${LIBEXT} - -DOPENEXR_HOME=${LIBDIR}/openexr/ - -DOPENEXR_USE_STATIC_LIBS=ON - -DOPENEXR_CUSTOM=ON - -DOPENEXR_CUSTOM_LIBRARY=IlmImf-2_2 - -DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/ - -DOPENEXR_ILMIMF_LIBRARIES=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf-2_2${LIBEXT} - -DTBB_ROOT_DIR=${LIBDIR}/tbb/ - -DTBB_INCLUDE_DIRS=${LIBDIR}/tbb/include - -DTBB_LIBRARY=${LIBDIR}/tbb/lib/tbb_static${LIBEXT} -DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING} -DBoost_USE_MULTITHREADED=ON -DBoost_USE_STATIC_LIBS=ON @@ -49,22 +32,32 @@ set(OPENVDB_EXTRA_ARGS -DWITH_BLOSC=ON -DBLOSC_INCLUDE_DIR=${LIBDIR}/blosc/include/ -DBLOSC_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT} + -DOPENVDB_ABI_VERSION_NUMBER=3 + -DOPENVDB_ENABLE_3_ABI_COMPATIBLE=Off + -DOPENVDB_BUILD_UNITTESTS=Off + -DOPENVDB_BUILD_PYTHON_MODULE=Off + -DGLEW_LOCATION=${LIBDIR}/glew/ + -DBLOSC_LOCATION=${LIBDIR}/blosc/ + -DTBB_LOCATION=${LIBDIR}/tbb/ + -DTBB_ROOT=${LIBDIR}/tbb/ + -DOPENEXR_LOCATION=${LIBDIR}/openexr + -DILMBASE_LOCATION=${LIBDIR}/openexr + -DIlmbase_HALF_LIBRARY=${LIBDIR}/openexr/lib/Half-2_3_s${LIBEXT} + -DIlmbase_IEX_LIBRARY=${LIBDIR}/openexr/lib/Iex-2_3_s${LIBEXT} + -DIlmbase_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/IlmThread-2_3_s${LIBEXT} + -DOpenexr_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/IlmImf-2_3_s${LIBEXT} + -DTBB_LIBRARYDIR=${LIBDIR}/tbb/lib + -DTbb_TBB_LIBRARY=${LIBDIR}/tbb/lib/tbb_static${LIBEXT} + -DTBB_LIBRARY_DIR=${LIBDIR}/tbb/lib + -DTBB_LIBRARY_PATH=${LIBDIR}/tbb/lib ) -set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}) - -# CMake script for OpenVDB based on https://raw.githubusercontent.com/diekev/openvdb-cmake/master/CMakeLists.txt -# can't be in external_openvdb because of how the includes are setup. - ExternalProject_Add(openvdb URL ${OPENVDB_URI} DOWNLOAD_DIR ${DOWNLOAD_DIR} URL_HASH MD5=${OPENVDB_HASH} PREFIX ${BUILD_DIR}/openvdb - PATCH_COMMAND COMMAND - ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_openvdb.txt ${BUILD_DIR}/openvdb/src/openvdb/CMakeLists.txt && - ${CMAKE_COMMAND} -E copy_directory ${PATCH_DIR}/cmake/ ${BUILD_DIR}/openvdb/src/openvdb/cmake/ && - ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb_vc2013.diff + PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb ${DEFAULT_CMAKE_FLAGS} ${OPENVDB_EXTRA_ARGS} INSTALL_DIR ${LIBDIR}/openvdb ) diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index c5e8f6f6d96..fea05cbc492 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -150,9 +150,9 @@ set(TBB_VERSION 2018_U5) set(TBB_URI https://github.com/01org/tbb/archive/${TBB_VERSION}.tar.gz) set(TBB_HASH ff3ae09f8c23892fbc3008c39f78288f) -set(OPENVDB_VERSION 3.1.0) +set(OPENVDB_VERSION 5.1.0) set(OPENVDB_URI https://github.com/dreamworksanimation/openvdb/archive/v${OPENVDB_VERSION}.tar.gz) -set(OPENVDB_HASH 30a7e9571a03ab7bcf1a39fb62aa436f) +set(OPENVDB_HASH 5310101f874dcfd2165f9cee68c22624) set(IDNA_VERSION 2.6) set(CHARDET_VERSION 3.0.2) diff --git a/build_files/build_environment/patches/opencolorio.diff b/build_files/build_environment/patches/opencolorio.diff index 4e947d89097..65901f969ca 100644 --- a/build_files/build_environment/patches/opencolorio.diff +++ b/build_files/build_environment/patches/opencolorio.diff @@ -1,21 +1,13 @@ -diff -ru ./CMakeLists.txt ./CMakeLists.txt ---- ./CMakeLists.txt 2014-09-11 21:08:18.000000000 +0200 -+++ ./CMakeLists.txt 2016-05-15 17:17:01.000000000 +0200 -@@ -186,7 +186,7 @@ - PATCH_COMMAND patch -f -p1 < ${CMAKE_SOURCE_DIR}/ext/tinyxml_${TINYXML_VERSION}.patch - BINARY_DIR ext/build/tinyxml - INSTALL_DIR ext/dist -- CMAKE_ARGS ${TINYXML_CMAKE_ARGS} -+ CMAKE_ARGS ${TINYXML_CMAKE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - ) - if(WIN32) - set(TINYXML_STATIC_LIBRARIES ${PROJECT_BINARY_DIR}/ext/dist/lib/tinyxml.lib) -@@ -254,7 +254,7 @@ - BINARY_DIR ext/build/yaml-cpp - PATCH_COMMAND patch -p1 < ${CMAKE_SOURCE_DIR}/ext/yaml-cpp-${YAML_CPP_VERSION}.patch - INSTALL_DIR ext/dist -- CMAKE_ARGS ${YAML_CPP_CMAKE_ARGS} -+ CMAKE_ARGS ${YAML_CPP_CMAKE_ARGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_C_FLAGS_DEBUG=${CMAKE_C_FLAGS_DEBUG} -DCMAKE_C_FLAGS_RELEASE=${CMAKE_C_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS_DEBUG=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - ) - set(YAML_CPP_INCLUDE_DIRS ${PROJECT_BINARY_DIR}/ext/dist/include) - set(YAML_CPP_LIBRARY_DIRS ${PROJECT_BINARY_DIR}/ext/dist/lib) +diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt +index 1eb691b..cff9bd8 100644 +--- a/src/core/CMakeLists.txt ++++ b/src/core/CMakeLists.txt +@@ -23,8 +23,6 @@ if(WIN32) + if("${CMAKE_BUILD_TYPE}" STREQUAL "Release") + set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} /WX") + endif() +-else() +- set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} -Werror") + endif() + + # SHARED diff --git a/build_files/build_environment/patches/openvdb.diff b/build_files/build_environment/patches/openvdb.diff index f3afa13ea17..51d587b5a22 100644 --- a/build_files/build_environment/patches/openvdb.diff +++ b/build_files/build_environment/patches/openvdb.diff @@ -1,11 +1,76 @@ -diff -Naur k:\BlenderDev\lib\win64_vc12_Harvest\openVDB\/include/openvdb/math/Coord.h .\openVDB/include/openvdb/math/Coord.h ---- k:\BlenderDev\lib\win64_vc12_Harvest\openVDB\/include/openvdb/math/Coord.h 2016-03-30 15:09:49 -0600 -+++ .\openVDB/include/openvdb/math/Coord.h 2016-04-01 06:53:47 -0600 -@@ -34,6 +34,7 @@ +diff -Naur openvdb.orig/openvdb/CMakeLists.txt openvdb/openvdb/CMakeLists.txt +--- openvdb.orig/openvdb/CMakeLists.txt 2018-04-10 12:22:17 -0600 ++++ openvdb/openvdb/CMakeLists.txt 2018-08-15 19:04:52 -0600 +@@ -82,6 +82,9 @@ + IF (WIN32 AND OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING) + ADD_DEFINITIONS ( -DBOOST_ALL_NO_LIB ) + ENDIF () ++if(WIN32) ++ADD_DEFINITIONS ( -D__TBB_NO_IMPLICIT_LINKAGE ) ++endif() + + FIND_PACKAGE ( Blosc REQUIRED ) + FIND_PACKAGE ( TBB REQUIRED ) +@@ -225,13 +228,16 @@ + ${VDB_PRINT_SOURCE_FILES} + ) + ++if(NOT WIN32) ++ set(EXTRA_LIBS m stdc++) ++endif() ++ + TARGET_LINK_LIBRARIES ( vdb_print + openvdb_shared + ${CMAKE_THREAD_LIBS_INIT} + ${BLOSC_blosc_LIBRARY} +- m +- stdc++ +- ) ++ ${EXTRA_LIBS} ++) + + SET ( VDB_RENDER_SOURCE_FILES cmd/openvdb_render/main.cc ) + SET_SOURCE_FILES_PROPERTIES ( ${VDB_RENDER_SOURCE_FILES} +@@ -249,8 +255,7 @@ + ${Openexr_ILMIMF_LIBRARY} + ${Ilmbase_ILMTHREAD_LIBRARY} + ${Ilmbase_IEX_LIBRARY} +- m +- stdc++ ++ ${EXTRA_LIBS} + ) + + SET ( VDB_VIEW_SOURCE_FILES +@@ -283,9 +288,8 @@ + ${GLFW_LINK_LIBRARY} + ${GLFW_DEPENDENT_LIBRARIES} + ${GLEW_GLEW_LIBRARY} +- m +- stdc++ +- ) ++ ${EXTRA_LIBS} ++ ) + ENDIF () + + SET ( UNITTEST_SOURCE_FILES +@@ -392,8 +396,7 @@ + TARGET_LINK_LIBRARIES ( vdb_test + ${CPPUnit_cppunit_LIBRARY} + openvdb_shared +- m +- stdc++ ++ ${EXTRA_LIBS} + ) + + ADD_TEST ( vdb_unit_test vdb_test ) +diff -Naur openvdb.orig/openvdb/math/Coord.h openvdb/openvdb/math/Coord.h +--- openvdb.orig/openvdb/math/Coord.h 2018-04-10 12:22:17 -0600 ++++ openvdb/openvdb/math/Coord.h 2018-08-15 20:32:43 -0600 +@@ -35,6 +35,7 @@ + #include <array> // for std::array + #include <iostream> + #include <limits> ++#define NOMINMAX #include <openvdb/Platform.h> #include "Math.h" #include "Vec3.h" -+#define NOMINMAX - - namespace tbb { class split; } // forward declaration - diff --git a/build_files/build_environment/patches/openvdb_vc2013.diff b/build_files/build_environment/patches/openvdb_vc2013.diff deleted file mode 100644 index 7dc3e476297..00000000000 --- a/build_files/build_environment/patches/openvdb_vc2013.diff +++ /dev/null @@ -1,35 +0,0 @@ ---- openvdb/tree/LeafNode.h 2015-10-01 15:55:33 -0600 -+++ openvdb/tree/LeafNode.h 2016-03-26 13:12:22 -0600 -@@ -70,13 +70,14 @@ - typedef boost::shared_ptr<LeafNode> Ptr; - typedef util::NodeMask<Log2Dim> NodeMaskType; - -- static const Index -- LOG2DIM = Log2Dim, // needed by parent nodes -- TOTAL = Log2Dim, // needed by parent nodes -- DIM = 1 << TOTAL, // dimension along one coordinate direction -- NUM_VALUES = 1 << 3 * Log2Dim, -- NUM_VOXELS = NUM_VALUES, // total number of voxels represented by this node -- SIZE = NUM_VALUES, -+ static const Index -+ LOG2DIM = Log2Dim, // needed by parent nodes -+ TOTAL = Log2Dim, // needed by parent nodes -+ DIM = 1 << TOTAL, // dimension along one coordinate direction -+ NUM_VALUES = 1 << 3 * Log2Dim, -+ NUM_VOXELS = NUM_VALUES; // total number of voxels represented by this node -+ static const Index -+ SIZE = NUM_VALUES, - LEVEL = 0; // level 0 = leaf - - /// @brief ValueConverter<T>::Type is the type of a LeafNode having the same ---- openvdb/PlatformConfig.h 2016-03-30 15:09:49 -0600 -+++ openvdb/PlatformConfig.h 2016-04-01 07:00:38 -0600 -@@ -47,7 +47,7 @@ - #if !defined(OPENVDB_OPENEXR_STATICLIB) && !defined(OPENEXR_DLL) - #define OPENEXR_DLL - #endif -- -+ #define NOMINMAX - #endif // _WIN32 - - #endif // OPENVDB_PLATFORMCONFIG_HAS_BEEN_INCLUDED |