diff options
Diffstat (limited to 'build_files/build_environment')
-rw-r--r-- | build_files/build_environment/CMakeLists.txt | 4 | ||||
-rw-r--r-- | build_files/build_environment/cmake/embree.cmake | 69 | ||||
-rw-r--r-- | build_files/build_environment/cmake/ffi.cmake | 2 | ||||
-rw-r--r-- | build_files/build_environment/cmake/ffmpeg.cmake | 1 | ||||
-rw-r--r-- | build_files/build_environment/cmake/harvest.cmake | 4 | ||||
-rw-r--r-- | build_files/build_environment/cmake/opencollada.cmake | 2 | ||||
-rw-r--r-- | build_files/build_environment/cmake/openvdb.cmake | 6 | ||||
-rw-r--r-- | build_files/build_environment/cmake/options.cmake | 3 | ||||
-rw-r--r-- | build_files/build_environment/cmake/python.cmake | 7 | ||||
-rw-r--r-- | build_files/build_environment/cmake/sdl.cmake | 1 | ||||
-rw-r--r-- | build_files/build_environment/cmake/versions.cmake | 6 | ||||
-rwxr-xr-x | build_files/build_environment/install_deps.sh | 244 | ||||
-rw-r--r-- | build_files/build_environment/patches/ffi.diff | 11 | ||||
-rw-r--r-- | build_files/build_environment/windows/build_deps.cmd | 22 |
14 files changed, 351 insertions, 31 deletions
diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt index 00e486bbb40..8c1d38c0635 100644 --- a/build_files/build_environment/CMakeLists.txt +++ b/build_files/build_environment/CMakeLists.txt @@ -97,6 +97,10 @@ if(WITH_WEBP) include(cmake/webp.cmake) endif() +if(WITH_EMBREE) + include(cmake/embree.cmake) +endif() + if(WIN32) # HMD branch deps include(cmake/hidapi.cmake) diff --git a/build_files/build_environment/cmake/embree.cmake b/build_files/build_environment/cmake/embree.cmake new file mode 100644 index 00000000000..8c523e25f0c --- /dev/null +++ b/build_files/build_environment/cmake/embree.cmake @@ -0,0 +1,69 @@ +# ***** 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 ***** + +# Note the utility apps may use png/tiff/gif system libraries, but the +# library itself does not depend on them, so should give no problems. + +set(EMBREE_EXTRA_ARGS + -DEMBREE_ISPC_SUPPORT=OFF + -DEMBREE_TUTORIALS=OFF + -DEMBREE_STATIC_LIB=ON + -DEMBREE_RAY_MASK=ON + -DEMBREE_FILTER_FUNCTION=ON + -DEMBREE_BACKFACE_CULLING=OFF + -DEMBREE_TASKING_SYSTEM=INTERNAL + -DEMBREE_MAX_ISA=AVX2 +) + +if(WIN32) + set(EMBREE_BUILD_DIR ${BUILD_MODE}/) +else() + set(EMBREE_BUILD_DIR) +endif() + +ExternalProject_Add(external_embree + URL ${EMBREE_URI} + DOWNLOAD_DIR ${DOWNLOAD_DIR} + URL_HASH MD5=${EMBREE_HASH} + PREFIX ${BUILD_DIR}/embree + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS} + INSTALL_DIR ${LIBDIR}/embree +) +if(WIN32) + + if(BUILD_MODE STREQUAL Release) + ExternalProject_Add_Step(external_embree after_install + COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/embree ${HARVEST_TARGET}/embree + DEPENDEES install + ) + else() + ExternalProject_Add_Step(external_embree after_install + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree3.lib ${HARVEST_TARGET}/embree/lib/embree3_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx.lib ${HARVEST_TARGET}/embree/lib/embree_avx_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx2.lib ${HARVEST_TARGET}/embree/lib/embree_avx2_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_sse42.lib ${HARVEST_TARGET}/embree/lib/embree_sse42_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/lexers.lib ${HARVEST_TARGET}/embree/lib/lexers_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/math.lib ${HARVEST_TARGET}/embree/lib/math_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/simd.lib ${HARVEST_TARGET}/embree/lib/simd_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/sys.lib ${HARVEST_TARGET}/embree/lib/sys_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/tasking.lib ${HARVEST_TARGET}/embree/lib/tasking_d.lib + DEPENDEES install + ) + endif() + +endif() diff --git a/build_files/build_environment/cmake/ffi.cmake b/build_files/build_environment/cmake/ffi.cmake index 18531fd7906..bc0932022cb 100644 --- a/build_files/build_environment/cmake/ffi.cmake +++ b/build_files/build_environment/cmake/ffi.cmake @@ -25,8 +25,10 @@ ExternalProject_Add(external_ffi --enable-shared=no --enable-static=yes --with-pic + --libdir=${LIBDIR}/ffi/lib/ BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make -j${MAKE_THREADS} INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ffi/src/external_ffi/ && make install + PATCH_COMMAND ${PATCH_CMD} -p 0 -d ${BUILD_DIR}/ffi/src/external_ffi < ${PATCH_DIR}/ffi.diff INSTALL_DIR ${LIBDIR}/ffi ) diff --git a/build_files/build_environment/cmake/ffmpeg.cmake b/build_files/build_environment/cmake/ffmpeg.cmake index 5c8347cd40e..2a8e3fd5d33 100644 --- a/build_files/build_environment/cmake/ffmpeg.cmake +++ b/build_files/build_environment/cmake/ffmpeg.cmake @@ -112,6 +112,7 @@ ExternalProject_Add(external_ffmpeg --disable-indev=alsa --disable-outdev=alsa --disable-crystalhd + --disable-sndio BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make -j${MAKE_THREADS} INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/ffmpeg/src/external_ffmpeg/ && make install CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ffmpeg ${DEFAULT_CMAKE_FLAGS} diff --git a/build_files/build_environment/cmake/harvest.cmake b/build_files/build_environment/cmake/harvest.cmake index 4ec71bf2ed2..f2e9c2fa8db 100644 --- a/build_files/build_environment/cmake/harvest.cmake +++ b/build_files/build_environment/cmake/harvest.cmake @@ -57,7 +57,7 @@ if(BUILD_MODE STREQUAL Release) # hidapi ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/hidapi/ ${HARVEST_TARGET}/hidapi/ && # webp, straight up copy - ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/webp ${HARVEST_TARGET}/webp + ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/webp ${HARVEST_TARGET}/webp && DEPENDS ) endif() @@ -191,5 +191,7 @@ harvest(vpx/lib ffmpeg/lib "*.a") harvest(webp/lib ffmpeg/lib "*.a") harvest(x264/lib ffmpeg/lib "*.a") harvest(xvidcore/lib ffmpeg/lib "*.a") +harvest(embree/include embree/include "*.h") +harvest(embree/lib embree/lib "*.a") endif() diff --git a/build_files/build_environment/cmake/opencollada.cmake b/build_files/build_environment/cmake/opencollada.cmake index c9aee2bfe64..ec3dcde1607 100644 --- a/build_files/build_environment/cmake/opencollada.cmake +++ b/build_files/build_environment/cmake/opencollada.cmake @@ -48,7 +48,7 @@ if(WIN32) endif() if(BUILD_MODE STREQUAL Debug) ExternalProject_Add_Step(external_opencollada after_install - COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib + COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib diff --git a/build_files/build_environment/cmake/openvdb.cmake b/build_files/build_environment/cmake/openvdb.cmake index 125c1b2df85..ccdc00ee0d8 100644 --- a/build_files/build_environment/cmake/openvdb.cmake +++ b/build_files/build_environment/cmake/openvdb.cmake @@ -50,9 +50,9 @@ set(OPENVDB_EXTRA_ARGS ) if(WIN32) - #Namespaces seem to be buggy and cause linker erorrs due to things not - #being in the correct namespace - #needs to link pthreads due to it being a blosc dependency + # Namespaces seem to be buggy and cause linker errors due to things not + # being in the correct namespace + # needs to link pthreads due to it being a blosc dependency set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS} -DOPENEXR_NAMESPACE_VERSIONING=OFF -DEXTRA_LIBS:FILEPATH=${LIBDIR}/pthreads/lib/pthreadVC2.lib diff --git a/build_files/build_environment/cmake/options.cmake b/build_files/build_environment/cmake/options.cmake index 7bf971208ae..20e9750bed6 100644 --- a/build_files/build_environment/cmake/options.cmake +++ b/build_files/build_environment/cmake/options.cmake @@ -20,6 +20,7 @@ if(WIN32) option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/lapack/fftw3 by installing mingw64" ON) endif() option(WITH_WEBP "Enable building of oiio with webp support" OFF) +option(WITH_EMBREE "Enable building of Embree" OFF) set(MAKE_THREADS 1 CACHE STRING "Number of threads to run make with") if(NOT BUILD_MODE) @@ -143,7 +144,7 @@ else() set(PLATFORM_CXXFLAGS "-std=c++11 -fPIC") set(PLATFORM_LDFLAGS) set(PLATFORM_BUILD_TARGET) - set(PLATFORM_CMAKE_FLAGS) + set(PLATFORM_CMAKE_FLAGS -DCMAKE_INSTALL_LIBDIR=lib) endif() if(WITH_OPTIMIZED_DEBUG) diff --git a/build_files/build_environment/cmake/python.cmake b/build_files/build_environment/cmake/python.cmake index c61a0084b6f..89cbe8c6ae2 100644 --- a/build_files/build_environment/cmake/python.cmake +++ b/build_files/build_environment/cmake/python.cmake @@ -89,11 +89,12 @@ else() set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl") set(PYTHON_CFLAGS "-I${LIBDIR}/sqlite/include -I${LIBDIR}/bzip2/include -I${LIBDIR}/lzma/include -I${LIBDIR}/zlib/include") - set(PYTHON_LDFLAGS "-L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib") + set(PYTHON_LDFLAGS "-L${LIBDIR}/ffi/lib -L${LIBDIR}/sqlite/lib -L${LIBDIR}/bzip2/lib -L${LIBDIR}/lzma/lib -L${LIBDIR}/zlib/lib") set(PYTHON_CONFIGURE_EXTRA_ENV export CFLAGS=${PYTHON_CFLAGS} && export CPPFLAGS=${PYTHON_CFLAGS} && - export LDFLAGS=${PYTHON_LDFLAGS}) + export LDFLAGS=${PYTHON_LDFLAGS} && + export PKG_CONFIG_PATH=${LIBDIR}/ffi/lib/pkgconfig) set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_linux.diff) ExternalProject_Add(external_python @@ -141,7 +142,7 @@ if(MSVC) COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/select${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/select${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/unicodedata${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/unicodedata${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/winsound${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/winsound${PYTHON_POSTFIX}.pyd - #xxlimited is an example extention module, we don't need to ship it and debug doesn't build it + #xxlimited is an example extension module, we don't need to ship it and debug doesn't build it #leaving it commented out, so I won't get confused again with the next update. #COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/xxlimited${PYTHON_POSTFIX}.pyd" ${BUILD_DIR}/python/src/external_python/redist/lib/xxlimited${PYTHON_POSTFIX}.pyd COMMAND ${CMAKE_COMMAND} -E copy "${PYTHON_OUTPUTDIR}/libssl-1_1${SSL_POSTFIX}.dll" ${BUILD_DIR}/python/src/external_python/redist/lib/libssl-1_1${SSL_POSTFIX}.dll diff --git a/build_files/build_environment/cmake/sdl.cmake b/build_files/build_environment/cmake/sdl.cmake index 8383c5a5a79..ab81ad130e8 100644 --- a/build_files/build_environment/cmake/sdl.cmake +++ b/build_files/build_environment/cmake/sdl.cmake @@ -25,6 +25,7 @@ else() -DSDL_STATIC=ON -DSDL_SHARED=OFF -DSDL_VIDEO=OFF + -DSNDIO=OFF ) endif() diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake index 7ede80a2be9..85f59762ef2 100644 --- a/build_files/build_environment/cmake/versions.cmake +++ b/build_files/build_environment/cmake/versions.cmake @@ -21,7 +21,7 @@ set(ZLIB_URI https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz) set(ZLIB_HASH 1c9f62f0778697a09d36121ead88e08e) set(OPENAL_VERSION 1.18.2) -set(OPENAL_URI http://kcat.strangesoft.net/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2) +set(OPENAL_URI http://openal-soft.org/openal-releases/openal-soft-${OPENAL_VERSION}.tar.bz2) set(OPENAL_HASH d4eeb0889812e2fdeaa1843523d76190) set(PNG_VERSION 1.6.35) @@ -298,3 +298,7 @@ set(SSL_HASH ebbfc844a8c8cc0ea5dc10b86c9ce97f401837f3fa08c17b2cdadc118253cf99) set(SQLITE_VERSION 3.24.0) set(SQLITE_URI https://www.sqlite.org/2018/sqlite-src-3240000.zip) set(SQLITE_HASH fb558c49ee21a837713c4f1e7e413309aabdd9c7) + +set(EMBREE_VERSION 3.2.4) +set(EMBREE_URI https://github.com/embree/embree/archive/v${EMBREE_VERSION}.zip) +set(EMBREE_HASH 3d4a1147002ff43939d45140aa9d6fb8) diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index 8c9105225f1..62e5181e039 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -26,17 +26,17 @@ ARGS=$( \ getopt \ -o s:i:t:h \ --long source:,install:,tmp:,info:,threads:,help,show-deps,no-sudo,no-build,no-confirm,use-cxx11,\ -with-all,with-opencollada,with-jack,\ +with-all,with-opencollada,with-jack,with-embree,\ ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,ver-osd:,ver-openvdb:,\ force-all,force-python,force-numpy,force-boost,\ force-ocio,force-openexr,force-oiio,force-llvm,force-osl,force-osd,force-openvdb,\ -force-ffmpeg,force-opencollada,force-alembic,\ +force-ffmpeg,force-opencollada,force-alembic,force-embree,\ build-all,build-python,build-numpy,build-boost,\ build-ocio,build-openexr,build-oiio,build-llvm,build-osl,build-osd,build-openvdb,\ -build-ffmpeg,build-opencollada,build-alembic,\ +build-ffmpeg,build-opencollada,build-alembic,build-embree,\ skip-python,skip-numpy,skip-boost,\ skip-ocio,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-osd,skip-openvdb,\ -skip-ffmpeg,skip-opencollada,skip-alembic \ +skip-ffmpeg,skip-opencollada,skip-alembic,skip-embree \ -- "$@" \ ) @@ -54,8 +54,9 @@ SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) # Do not install some optional, potentially conflicting libs by default... WITH_ALL=false -# Do not yet enable opencollada, use --with-opencollada (or --with-all) option to try it. +# Do not yet enable opencollada or embree, use --with-opencollada/--with-embree (or --with-all) option to try it. WITH_OPENCOLLADA=false +WITH_EMBREE=false THREADS=$(nproc) @@ -67,6 +68,7 @@ or use --source/--install options, if you want to use other paths! Number of threads for building: \$THREADS (automatically detected, use --threads=<nbr> to override it). Full install: \$WITH_ALL (use --with-all option to enable it). Building OpenCOLLADA: \$WITH_OPENCOLLADA (use --with-opencollada option to enable it). +Building Embree: \$WITH_EMBREE (use --with-embree option to enable it). Example: Full install without OpenCOLLADA: --with-all --skip-opencollada @@ -118,6 +120,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS: --with-opencollada Build and install the OpenCOLLADA libraries. + --with-embree + Build and install the Embree libraries. + --with-jack Install the jack libraries. @@ -182,6 +187,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS: --build-opencollada Force the build of OpenCOLLADA. + --build-embree + Force the build of Embree. + --build-ffmpeg Force the build of FFMpeg. @@ -234,6 +242,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS: --force-opencollada Force the rebuild of OpenCOLLADA. + --force-embree + Force the rebuild of Embree. + --force-ffmpeg Force the rebuild of FFMpeg. @@ -279,6 +290,9 @@ ARGUMENTS_INFO="\"COMMAND LINE ARGUMENTS: --skip-opencollada Unconditionally skip OpenCOLLADA installation/building. + --skip-Embree + Unconditionally skip Embree installation/building. + --skip-ffmpeg Unconditionally skip FFMpeg installation/building.\"" @@ -374,6 +388,12 @@ OPENCOLLADA_FORCE_BUILD=false OPENCOLLADA_FORCE_REBUILD=false OPENCOLLADA_SKIP=false + +EMBREE_VERSION="3.2.4" +EMBREE_FORCE_BUILD=false +EMBREE_FORCE_REBUILD=false +EMBREE_SKIP=false + FFMPEG_VERSION="4.0.2" FFMPEG_VERSION_MIN="2.8.4" FFMPEG_FORCE_BUILD=false @@ -507,6 +527,9 @@ while true; do --with-opencollada) WITH_OPENCOLLADA=true; shift; continue ;; + --with-embree) + WITH_EMBREE=true; shift; continue + ;; --with-jack) WITH_JACK=true; shift; continue; ;; @@ -552,6 +575,7 @@ while true; do OSD_FORCE_BUILD=true OPENVDB_FORCE_BUILD=true OPENCOLLADA_FORCE_BUILD=true + EMBREE_FORCE_BUILD=true FFMPEG_FORCE_BUILD=true ALEMBIC_FORCE_BUILD=true shift; continue @@ -593,6 +617,9 @@ while true; do --build-opencollada) OPENCOLLADA_FORCE_BUILD=true; shift; continue ;; + --build-embree) + EMBREE_FORCE_BUILD=true; shift; continue + ;; --build-ffmpeg) FFMPEG_FORCE_BUILD=true; shift; continue ;; @@ -611,6 +638,7 @@ while true; do OSD_FORCE_REBUILD=true OPENVDB_FORCE_REBUILD=true OPENCOLLADA_FORCE_REBUILD=true + EMBREE_FORCE_REBUILD=true FFMPEG_FORCE_REBUILD=true ALEMBIC_FORCE_REBUILD=true shift; continue @@ -650,6 +678,9 @@ while true; do --force-opencollada) OPENCOLLADA_FORCE_REBUILD=true; shift; continue ;; + --force-embree) + EMBREE_FORCE_REBUILD=true; shift; continue + ;; --force-ffmpeg) FFMPEG_FORCE_REBUILD=true; shift; continue ;; @@ -689,6 +720,9 @@ while true; do --skip-opencollada) OPENCOLLADA_SKIP=true; shift; continue ;; + --skip-embree) + EMBREE_SKIP=true; shift; continue + ;; --skip-ffmpeg) FFMPEG_SKIP=true; shift; continue ;; @@ -713,6 +747,9 @@ done if [ "$WITH_ALL" = true -a "$OPENCOLLADA_SKIP" = false ]; then WITH_OPENCOLLADA=true fi +if [ "$WITH_ALL" = true -a "$EMBREE_SKIP" = false ]; then + WITH_EMBREE=true +fi if [ "$WITH_ALL" = true ]; then WITH_JACK=true fi @@ -748,9 +785,10 @@ OCIO_SOURCE=( "https://github.com/imageworks/OpenColorIO/archive/v$OCIO_VERSION. #~ OCIO_SOURCE_REPO_UID="6de971097c7f552300f669ed69ca0b6cf5a70843" OPENEXR_USE_REPO=false -OPENEXR_SOURCE=( "https://github.com/openexr/openexr/releases/download/v$OPENEXR_VERSION/openexr-$OPENEXR_VERSION.tar.gz" ) +#~ OPENEXR_SOURCE=( "https://github.com/openexr/openexr/releases/download/v$OPENEXR_VERSION/openexr-$OPENEXR_VERSION.tar.gz" ) +OPENEXR_SOURCE_REPO_UID="0ac2ea34c8f3134148a5df4052e40f155b76f6fb" +OPENEXR_SOURCE=( "https://github.com/openexr/openexr/archive/$OPENEXR_SOURCE_REPO_UID.tar.gz" ) #~ OPENEXR_SOURCE_REPO=( "https://github.com/mont29/openexr.git" ) -#~ OPENEXR_SOURCE_REPO_UID="2787aa1cf652d244ed45ae124eb1553f6cff11ee" ILMBASE_SOURCE=( "https://github.com/openexr/openexr/releases/download/v$ILMBASE_VERSION/ilmbase-$ILMBASE_VERSION.tar.gz" ) OIIO_USE_REPO=false @@ -800,6 +838,13 @@ OPENCOLLADA_SOURCE=( "https://github.com/KhronosGroup/OpenCOLLADA/archive/v${OPE #~ OPENCOLLADA_REPO_UID="e937c3897b86fc0da53cde97257f5156" #~ OPENCOLLADA_REPO_BRANCH="master" +EMBREE_USE_REPO=false +EMBREE_SOURCE=( "https://github.com/embree/embree/archive/v${EMBREE_VERSION}.tar.gz" ) +#~ EMBREE_SOURCE_REPO=( "https://github.com/embree/embree.git" ) +#~ EMBREE_REPO_UID="4a12bfed63c90e85b6eab98b8cdd8dd2a3ba5809" +#~ EMBREE_REPO_BRANCH="master" + + FFMPEG_SOURCE=( "http://ffmpeg.org/releases/ffmpeg-$FFMPEG_VERSION.tar.bz2" ) # C++11 is required now @@ -840,6 +885,7 @@ You may also want to build them yourself (optional ones are [between brackets]): * [OpenSubDiv $OSD_VERSION_MIN] (from $OSD_SOURCE_REPO, branch $OSD_SOURCE_REPO_BRANCH, commit $OSD_SOURCE_REPO_UID). * [OpenVDB $OPENVDB_VERSION_MIN] (from $OPENVDB_SOURCE), [Blosc $OPENVDB_BLOSC_VERSION] (from $OPENVDB_BLOSC_SOURCE). * [OpenCollada $OPENCOLLADA_VERSION] (from $OPENCOLLADA_SOURCE). + * [Embree $EMBREE_VERSION] (from $EMBREE_SOURCE). * [Alembic $ALEMBIC_VERSION] (from $ALEMBIC_SOURCE).\"" if [ "$DO_SHOW_DEPS" = true ]; then @@ -1204,7 +1250,7 @@ compile_Boost() { if [ ! -d $_inst ]; then INFO "Building Boost-$BOOST_VERSION" - # Rebuild dependecies as well! + # Rebuild dependencies as well! OIIO_FORCE_BUILD=true OIIO_FORCE_REBUILD=true OSL_FORCE_BUILD=true @@ -1397,7 +1443,7 @@ compile_ILMBASE() { if [ ! -d $_openexr_inst ]; then INFO "Building ILMBase-$ILMBASE_VERSION" - # Rebuild dependecies as well! + # Rebuild dependencies as well! OPENEXR_FORCE_BUILD=true OPENEXR_FORCE_REBUILD=true @@ -1493,7 +1539,7 @@ compile_OPENEXR() { if [ ! -d $_inst ]; then INFO "Building OpenEXR-$OPENEXR_VERSION" - # Rebuild dependecies as well! + # Rebuild dependencies as well! OIIO_FORCE_BUILD=true OIIO_FORCE_REBUILD=true @@ -1607,7 +1653,7 @@ compile_OIIO() { if [ ! -d $_inst ]; then INFO "Building OpenImageIO-$OIIO_VERSION" - # Rebuild dependecies as well! + # Rebuild dependencies as well! OSL_FORCE_BUILD=true OSL_FORCE_REBUILD=true @@ -1749,7 +1795,7 @@ compile_LLVM() { if [ ! -d $_inst ]; then INFO "Building LLVM-$LLVM_VERSION (CLANG included!)" - # Rebuild dependecies as well! + # Rebuild dependencies as well! OSL_FORCE_BUILD=true OSL_FORCE_REBUILD=true @@ -2075,7 +2121,7 @@ compile_BLOSC() { if [ ! -d $_inst ]; then INFO "Building Blosc-$OPENVDB_BLOSC_VERSION" - # Rebuild dependecies as well! + # Rebuild dependencies as well! OPENVDB_FORCE_BUILD=true OPENVDB_FORCE_REBUILD=true @@ -2415,6 +2461,101 @@ compile_OpenCOLLADA() { fi } +#### Build Embree #### +_init_embree() { + _src=$SRC/embree-$EMBREE_VERSION + _git=true + _inst=$INST/embree-$EMBREE_VERSION + _inst_shortcut=$INST/embree +} + +clean_Embree() { + _init_embree + _clean +} + +compile_Embree() { + if [ "$NO_BUILD" = true ]; then + WARNING "--no-build enabled, Embree will not be compiled!" + return + fi + + # To be changed each time we make edits that would modify the compiled results! + embree_magic=9 + _init_embree + + # Clean install if needed! + magic_compile_check embree-$EMBREE_VERSION $embree_magic + if [ $? -eq 1 -o "$EMBREE_FORCE_REBUILD" = true ]; then + clean_Embree + fi + + if [ ! -d $_inst ]; then + INFO "Building Embree-$EMBREE_VERSION" + + prepare_opt + + if [ ! -d $_src ]; then + mkdir -p $SRC + if [ "EMBREE_USE_REPO" = true ]; then + git clone $EMBREE_SOURCE_REPO $_src + else + download EMBREE_SOURCE[@] "$_src.tar.gz" + INFO "Unpacking Embree-$EMBREE_VERSION" + tar -C $SRC -xf $_src.tar.gz + fi + fi + + cd $_src + + if [ "$EMBREE_USE_REPO" = true ]; then + git pull origin $EMBREE_REPO_BRANCH + + # Stick to same rev as windows' libs... + git checkout $EMBREE_REPO_UID + git reset --hard + fi + + # Always refresh the whole build! + if [ -d build ]; then + rm -rf build + fi + mkdir build + cd build + + cmake_d="-D CMAKE_BUILD_TYPE=Release" + cmake_d="$cmake_d -D CMAKE_INSTALL_PREFIX=$_inst" + cmake_d="$cmake_d -D EMBREE_ISPC_SUPPORT=OFF" + cmake_d="$cmake_d -D EMBREE_TUTORIALS=OFF" + cmake_d="$cmake_d -D EMBREE_STATIC_LIB=ON" + cmake_d="$cmake_d -D EMBREE_RAY_MASK=ON" + cmake_d="$cmake_d -D EMBREE_FILTER_FUNCTION=ON" + cmake_d="$cmake_d -D EMBREE_BACKFACE_CULLING=OFF" + cmake_d="$cmake_d -D EMBREE_TASKING_SYSTEM=INTERNAL" + cmake_d="$cmake_d -D EMBREE_MAX_ISA=AVX2" + + cmake $cmake_d ../ + + make -j$THREADS && make install + make clean + + if [ -d $_inst ]; then + _create_inst_shortcut + else + ERROR "Embree-$EMBREE_VERSION failed to compile, exiting" + exit 1 + fi + + magic_compile_set embree-$EMBREE_VERSION $embree_magic + + cd $CWD + INFO "Done compiling Embree-$EMBREE_VERSION!" + else + INFO "Own Embree-$EMBREE_VERSION is up to date, nothing to do!" + INFO "If you want to force rebuild of this lib, use the --force-embree option." + fi +} + #### Build FFMPEG #### _init_ffmpeg() { _src=$SRC/ffmpeg-$FFMPEG_VERSION @@ -2982,6 +3123,23 @@ install_DEB() { fi fi + if [ "$WITH_EMBREE" = true ]; then + _do_compile_embree=false + PRINT "" + if [ "$EMBREE_SKIP" = true ]; then + WARNING "Skipping Embree installation, as requested..." + elif [ "$EMBREE_FORCE_BUILD" = true ]; then + INFO "Forced Embree building, as requested..." + _do_compile_embree=true + else + # No package currently! + _do_compile_embree=true + fi + + if [ "$_do_compile_embree" = true ]; then + compile_Embree + fi + fi PRINT "" if [ "$FFMPEG_SKIP" = true ]; then @@ -3529,6 +3687,23 @@ install_RPM() { fi fi + if [ "$WITH_EMBREE" = true ]; then + PRINT "" + _do_compile_embree=false + if [ "$OPENCOLLADA_SKIP" = true ]; then + WARNING "Skipping Embree installation, as requested..." + elif [ "$EMBREE_FORCE_BUILD" = true ]; then + INFO "Forced Embree building, as requested..." + _do_compile_embree=true + else + # No package... + _do_compile_embree=true + fi + + if [ "$_do_compile_embree" = true ]; then + compile_Embree + fi + fi PRINT "" if [ "$FFMPEG_SKIP" = true ]; then @@ -3959,6 +4134,28 @@ install_ARCH() { fi fi + if [ "$WITH_EMBREE" = true ]; then + PRINT "" + _do_compile_embree=false + if [ "$EMBREE_SKIP" = true ]; then + WARNING "Skipping Embree installation, as requested..." + elif [ "$EMBREE_FORCE_BUILD" = true ]; then + INFO "Forced Embree building, as requested..." + _do_compile_embree=true + else + check_package_ARCH embree + if [ $? -eq 0 ]; then + install_packages_ARCH embree + clean_Embree + else + _do_compile_embree=true + fi + fi + + if [ "$_do_compile_embree" = true ]; then + compile_Embree + fi + fi PRINT "" if [ "$FFMPEG_SKIP" = true ]; then @@ -4130,6 +4327,21 @@ install_OTHER() { fi fi + if [ "$WITH_EMBREE" = true ]; then + _do_compile_embree=false + PRINT "" + if [ "$EMBREE_SKIP" = true ]; then + WARNING "Skipping Embree installation, as requested..." + elif [ "$EMBREE_FORCE_BUILD" = true ]; then + INFO "Forced Embree building, as requested..." + _do_compile_embree=true + fi + + if [ "$_do_compile_embree" = true ]; then + PRINT "" + compile_Embree + fi + fi PRINT "" if [ "$FFMPEG_SKIP" = true ]; then @@ -4325,6 +4537,12 @@ print_info() { _buildargs="$_buildargs $_1" fi + if [ "$WITH_EMBREE" = true ]; then + _1="-D WITH_CYCLES_EMBREE=ON" + PRINT " $_1" + _buildargs="$_buildargs $_1" + fi + if [ "$WITH_JACK" = true ]; then _1="-D WITH_JACK=ON" _2="-D WITH_JACK_DYNLOAD=ON" diff --git a/build_files/build_environment/patches/ffi.diff b/build_files/build_environment/patches/ffi.diff new file mode 100644 index 00000000000..84e7f0407e2 --- /dev/null +++ b/build_files/build_environment/patches/ffi.diff @@ -0,0 +1,11 @@ +--- Makefile.in 2014-11-12 06:59:58.000000000 -0500 ++++ Makefile.in 2018-09-17 13:36:10.974086554 -0400 +@@ -600,7 +600,7 @@ + target_os = @target_os@ + target_vendor = @target_vendor@ + toolexecdir = @toolexecdir@ +-toolexeclibdir = @toolexeclibdir@ ++toolexeclibdir = $(libdir) + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ diff --git a/build_files/build_environment/windows/build_deps.cmd b/build_files/build_environment/windows/build_deps.cmd index 500e689cdc8..bb9dda81435 100644 --- a/build_files/build_environment/windows/build_deps.cmd +++ b/build_files/build_environment/windows/build_deps.cmd @@ -68,6 +68,8 @@ goto usage setlocal ENABLEEXTENSIONS set CMAKE_DEBUG_OPTIONS=-DWITH_OPTIMIZED_DEBUG=On if "%3" == "debug" set CMAKE_DEBUG_OPTIONS=-DWITH_OPTIMIZED_DEBUG=Off +set dobuild=1 +if "%4" == "nobuild" set dobuild=0 set SOURCE_DIR=%~dp0\.. set BUILD_DIR=%cd%\build @@ -117,20 +119,24 @@ cd %Staging%\%BuildDir%%ARCH%R echo %DATE% %TIME% : Start > %StatusFile% cmake -G "%CMAKE_BUILDER%" %SOURCE_DIR% -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DBUILD_MODE=Release -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/ echo %DATE% %TIME% : Release Configuration done >> %StatusFile% -msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal -msbuild /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal -echo %DATE% %TIME% : Release Build done >> %StatusFile% -cmake --build . --target Harvest_Release_Results > Harvest_Release.txt +if "%dobuild%" == "1" ( + msbuild /m "ll.vcxproj" /p:Configuration=Release /fl /flp:logfile=BlenderDeps_llvm.log;Verbosity=normal + msbuild /m "BlenderDependencies.sln" /p:Configuration=Release /fl /flp:logfile=BlenderDeps.log;Verbosity=minimal /verbosity:minimal + echo %DATE% %TIME% : Release Build done >> %StatusFile% + cmake --build . --target Harvest_Release_Results > Harvest_Release.txt +) echo %DATE% %TIME% : Release Harvest done >> %StatusFile% cd %BUILD_DIR% mkdir %STAGING%\%BuildDir%%ARCH%D cd %Staging%\%BuildDir%%ARCH%D cmake -G "%CMAKE_BUILDER%" %SOURCE_DIR% -DDOWNLOAD_DIR=%BUILD_DIR%/downloads -DCMAKE_BUILD_TYPE=Debug -DBUILD_MODE=Debug -DHARVEST_TARGET=%HARVEST_DIR%/%HARVESTROOT%%VSVER_SHORT%/ %CMAKE_DEBUG_OPTIONS% echo %DATE% %TIME% : Debug Configuration done >> %StatusFile% -msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal -msbuild /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal -echo %DATE% %TIME% : Debug Build done >> %StatusFile% -cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt +if "%dobuild%" == "1" ( + msbuild /m "ll.vcxproj" /p:Configuration=Debug /fl /flp:logfile=BlenderDeps_llvm.log;;Verbosity=normal + msbuild /m "BlenderDependencies.sln" /p:Configuration=Debug /verbosity:n /fl /flp:logfile=BlenderDeps.log;;Verbosity=normal + echo %DATE% %TIME% : Debug Build done >> %StatusFile% + cmake --build . --target Harvest_Debug_Results> Harvest_Debug.txt +) echo %DATE% %TIME% : Debug Harvest done >> %StatusFile% cd %BUILD_DIR% |