Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/cmake/external_libs.cmake')
-rw-r--r--intern/cycles/cmake/external_libs.cmake440
1 files changed, 262 insertions, 178 deletions
diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake
index 6ad64d684c0..3ee92b7be88 100644
--- a/intern/cycles/cmake/external_libs.cmake
+++ b/intern/cycles/cmake/external_libs.cmake
@@ -69,6 +69,7 @@ if(CYCLES_STANDALONE_REPOSITORY)
_set_default(OPENVDB_ROOT_DIR "${_cycles_lib_dir}/openvdb")
_set_default(OSL_ROOT_DIR "${_cycles_lib_dir}/osl")
_set_default(PNG_ROOT "${_cycles_lib_dir}/png")
+ _set_default(PUGIXML_ROOT_DIR "${_cycles_lib_dir}/pugixml")
_set_default(TBB_ROOT_DIR "${_cycles_lib_dir}/tbb")
_set_default(TIFF_ROOT "${_cycles_lib_dir}/tiff")
_set_default(ZLIB_ROOT "${_cycles_lib_dir}/zlib")
@@ -81,6 +82,23 @@ if(CYCLES_STANDALONE_REPOSITORY)
endif()
###########################################################################
+# USD
+###########################################################################
+
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_HYDRA_RENDER_DELEGATE)
+ set(WITH_USD ON)
+endif()
+if(WITH_CYCLES_HYDRA_RENDER_DELEGATE)
+ find_package(pxr CONFIG REQUIRED PATHS ${PXR_ROOT} ${USD_ROOT} NO_DEFAULT_PATH)
+ if(pxr_FOUND)
+ set(PXR_LIBRARY_DIR ${PXR_CMAKE_DIR}/lib)
+ set(USD_INCLUDE_DIRS ${PXR_INCLUDE_DIRS})
+ else()
+ set(WITH_USD OFF)
+ endif()
+endif()
+
+###########################################################################
# Zlib
###########################################################################
@@ -126,31 +144,40 @@ if(CYCLES_STANDALONE_REPOSITORY)
-DOIIO_STATIC_DEFINE
)
+ set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO_ROOT_DIR}/include)
+ set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR} ${OPENIMAGEIO_INCLUDE_DIR}/OpenImageIO)
# Special exceptions for libraries which needs explicit debug version
- set(OPENIMAGEIO_LIBRARY
+ set(OPENIMAGEIO_LIBRARIES
optimized ${OPENIMAGEIO_ROOT_DIR}/lib/OpenImageIO.lib
optimized ${OPENIMAGEIO_ROOT_DIR}/lib/OpenImageIO_Util.lib
debug ${OPENIMAGEIO_ROOT_DIR}/lib/OpenImageIO_d.lib
debug ${OPENIMAGEIO_ROOT_DIR}/lib/OpenImageIO_Util_d.lib
)
- endif()
- find_package(OpenImageIO REQUIRED)
- if(OPENIMAGEIO_PUGIXML_FOUND)
- set(PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR/OpenImageIO}")
- set(PUGIXML_LIBRARIES "")
+ set(PUGIXML_INCLUDE_DIR ${PUGIXML_ROOT_DIR}/include)
+ set(PUGIXML_LIBRARIES
+ optimized ${PUGIXML_ROOT_DIR}/lib/pugixml.lib
+ debug ${PUGIXML_ROOT_DIR}/lib/pugixml_d.lib
+ )
else()
- find_package(PugiXML REQUIRED)
+ find_package(OpenImageIO REQUIRED)
+ if(OPENIMAGEIO_PUGIXML_FOUND)
+ set(PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR}/OpenImageIO")
+ set(PUGIXML_LIBRARIES "")
+ else()
+ find_package(PugiXML REQUIRED)
+ endif()
endif()
# Dependencies
if(MSVC AND EXISTS ${_cycles_lib_dir})
set(OPENJPEG_INCLUDE_DIR ${OPENJPEG}/include/openjpeg-2.3)
- set(OPENJPEG_LIBRARY ${_cycles_lib_dir}/openjpeg/lib/openjp2${CMAKE_STATIC_LIBRARY_SUFFIX})
+ set(OPENJPEG_LIBRARIES ${_cycles_lib_dir}/openjpeg/lib/openjp2${CMAKE_STATIC_LIBRARY_SUFFIX})
+ else()
+ find_package(OpenJPEG REQUIRED)
endif()
find_package(JPEG REQUIRED)
- find_package(OpenJPEG REQUIRED)
find_package(TIFF REQUIRED)
find_package(PNG REQUIRED)
endif()
@@ -161,76 +188,70 @@ endif()
if(CYCLES_STANDALONE_REPOSITORY)
if(MSVC AND EXISTS ${_cycles_lib_dir})
- set(OPENEXR_IEX_LIBRARY
+ set(OPENEXR_INCLUDE_DIR ${OPENEXR_ROOT_DIR}/include)
+ set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_ROOT_DIR}/include/OpenEXR)
+ set(OPENEXR_LIBRARIES
optimized ${OPENEXR_ROOT_DIR}/lib/Iex_s.lib
- debug ${OPENEXR_ROOT_DIR}/lib/Iex_s_d.lib
- )
- set(OPENEXR_HALF_LIBRARY
optimized ${OPENEXR_ROOT_DIR}/lib/Half_s.lib
- debug ${OPENEXR_ROOT_DIR}/lib/Half_s_d.lib
- )
- set(OPENEXR_ILMIMF_LIBRARY
optimized ${OPENEXR_ROOT_DIR}/lib/IlmImf_s.lib
- debug ${OPENEXR_ROOT_DIR}/lib/IlmImf_s_d.lib
- )
- set(OPENEXR_IMATH_LIBRARY
optimized ${OPENEXR_ROOT_DIR}/lib/Imath_s.lib
- debug ${OPENEXR_ROOT_DIR}/lib/Imath_s_d.lib
- )
- set(OPENEXR_ILMTHREAD_LIBRARY
optimized ${OPENEXR_ROOT_DIR}/lib/IlmThread_s.lib
+ debug ${OPENEXR_ROOT_DIR}/lib/Iex_s_d.lib
+ debug ${OPENEXR_ROOT_DIR}/lib/Half_s_d.lib
+ debug ${OPENEXR_ROOT_DIR}/lib/IlmImf_s_d.lib
+ debug ${OPENEXR_ROOT_DIR}/lib/Imath_s_d.lib
debug ${OPENEXR_ROOT_DIR}/lib/IlmThread_s_d.lib
)
+ else()
+ find_package(OpenEXR REQUIRED)
endif()
-
- find_package(OpenEXR REQUIRED)
endif()
###########################################################################
# OpenShadingLanguage & LLVM
###########################################################################
-if(WITH_CYCLES_OSL)
- if(CYCLES_STANDALONE_REPOSITORY)
- if(EXISTS ${_cycles_lib_dir})
- set(LLVM_STATIC ON)
- endif()
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OSL)
+ if(EXISTS ${_cycles_lib_dir})
+ set(LLVM_STATIC ON)
+ endif()
+ if(MSVC AND EXISTS ${_cycles_lib_dir})
+ # TODO(sergey): On Windows llvm-config doesn't give proper results for the
+ # library names, use hardcoded libraries for now.
+ file(GLOB _llvm_libs_release ${LLVM_ROOT_DIR}/lib/*.lib)
+ file(GLOB _llvm_libs_debug ${LLVM_ROOT_DIR}/debug/lib/*.lib)
+ set(_llvm_libs)
+ foreach(_llvm_lib_path ${_llvm_libs_release})
+ get_filename_component(_llvm_lib_name ${_llvm_lib_path} ABSOLUTE)
+ list(APPEND _llvm_libs optimized ${_llvm_lib_name})
+ endforeach()
+ foreach(_llvm_lib_path ${_llvm_libs_debug})
+ get_filename_component(_llvm_lib_name ${_llvm_lib_path} ABSOLUTE)
+ list(APPEND _llvm_libs debug ${_llvm_lib_name})
+ endforeach()
+ set(LLVM_LIBRARY ${_llvm_libs})
+ unset(_llvm_lib_name)
+ unset(_llvm_lib_path)
+ unset(_llvm_libs)
+ unset(_llvm_libs_debug)
+ unset(_llvm_libs_release)
+
+ set(OSL_INCLUDE_DIR ${OSL_ROOT_DIR}/include)
+ set(OSL_LIBRARIES
+ optimized ${OSL_ROOT_DIR}/lib/oslcomp.lib
+ optimized ${OSL_ROOT_DIR}/lib/oslexec.lib
+ optimized ${OSL_ROOT_DIR}/lib/oslquery.lib
+ debug ${OSL_ROOT_DIR}/lib/oslcomp_d.lib
+ debug ${OSL_ROOT_DIR}/lib/oslexec_d.lib
+ debug ${OSL_ROOT_DIR}/lib/oslquery_d.lib
+ ${PUGIXML_LIBRARIES}
+ )
+
+ find_program(OSL_COMPILER NAMES oslc PATHS ${OSL_ROOT_DIR}/bin)
+ else()
find_package(OSL REQUIRED)
find_package(LLVM REQUIRED)
-
- if(MSVC AND EXISTS ${_cycles_lib_dir})
- # TODO(sergey): On Windows llvm-config doesn't give proper results for the
- # library names, use hardcoded libraries for now.
- file(GLOB _llvm_libs_release ${LLVM_ROOT_DIR}/lib/*.lib)
- file(GLOB _llvm_libs_debug ${LLVM_ROOT_DIR}/debug/lib/*.lib)
- set(_llvm_libs)
- foreach(_llvm_lib_path ${_llvm_libs_release})
- get_filename_component(_llvm_lib_name ${_llvm_lib_path} ABSOLUTE)
- list(APPEND _llvm_libs optimized ${_llvm_lib_name})
- endforeach()
- foreach(_llvm_lib_path ${_llvm_libs_debug})
- get_filename_component(_llvm_lib_name ${_llvm_lib_path} ABSOLUTE)
- list(APPEND _llvm_libs debug ${_llvm_lib_name})
- endforeach()
- set(LLVM_LIBRARY ${_llvm_libs})
- unset(_llvm_lib_name)
- unset(_llvm_lib_path)
- unset(_llvm_libs)
- unset(_llvm_libs_debug)
- unset(_llvm_libs_release)
-
- set(OSL_LIBRARIES
- optimized ${OSL_ROOT_DIR}/lib/oslcomp.lib
- optimized ${OSL_ROOT_DIR}/lib/oslexec.lib
- optimized ${OSL_ROOT_DIR}/lib/oslquery.lib
- optimized ${OSL_ROOT_DIR}/lib/pugixml.lib
- debug ${OSL_ROOT_DIR}/lib/oslcomp_d.lib
- debug ${OSL_ROOT_DIR}/lib/oslexec_d.lib
- debug ${OSL_ROOT_DIR}/lib/oslquery_d.lib
- debug ${OSL_ROOT_DIR}/lib/pugixml_d.lib
- )
- endif()
endif()
endif()
@@ -238,22 +259,23 @@ endif()
# OpenColorIO
###########################################################################
-if(WITH_CYCLES_OPENCOLORIO)
- if(CYCLES_STANDALONE_REPOSITORY)
- find_package(OpenColorIO REQUIRED)
- set(WITH_OPENCOLORIO ON)
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OPENCOLORIO)
+ set(WITH_OPENCOLORIO ON)
- if(MSVC AND EXISTS ${_cycles_lib_dir})
- set(OPENCOLORIO_LIBPATH ${_cycles_lib_dir}/opencolorio/lib)
- set(OPENCOLORIO_LIBRARIES
- optimized ${OPENCOLORIO_LIBPATH}/OpenColorIO.lib
- optimized ${OPENCOLORIO_LIBPATH}/tinyxml.lib
- optimized ${OPENCOLORIO_LIBPATH}/libyaml-cpp.lib
- debug ${OPENCOLORIO_LIBPATH}/OpencolorIO_d.lib
- debug ${OPENCOLORIO_LIBPATH}/tinyxml_d.lib
- debug ${OPENCOLORIO_LIBPATH}/libyaml-cpp_d.lib
- )
- endif()
+ if(MSVC AND EXISTS ${_cycles_lib_dir})
+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO_ROOT_DIR}/include)
+ set(OPENCOLORIO_LIBRARIES
+ optimized ${OPENCOLORIO_ROOT_DIR}/lib/OpenColorIO.lib
+ optimized ${OPENCOLORIO_ROOT_DIR}/lib/libyaml-cpp.lib
+ optimized ${OPENCOLORIO_ROOT_DIR}/lib/libexpatMD.lib
+ optimized ${OPENCOLORIO_ROOT_DIR}/lib/pystring.lib
+ debug ${OPENCOLORIO_ROOT_DIR}/lib/OpencolorIO_d.lib
+ debug ${OPENCOLORIO_ROOT_DIR}/lib/libyaml-cpp_d.lib
+ debug ${OPENCOLORIO_ROOT_DIR}/lib/libexpatdMD.lib
+ debug ${OPENCOLORIO_ROOT_DIR}/lib/pystring_d.lib
+ )
+ else()
+ find_package(OpenColorIO REQUIRED)
endif()
endif()
@@ -274,22 +296,59 @@ if(CYCLES_STANDALONE_REPOSITORY)
endif()
endif()
- set(__boost_packages filesystem regex system thread date_time)
- if(WITH_CYCLES_OSL)
- list(APPEND __boost_packages wave)
- endif()
- find_package(Boost 1.48 COMPONENTS ${__boost_packages} REQUIRED)
- if(NOT Boost_FOUND)
- # Try to find non-multithreaded if -mt not found, this flag
- # doesn't matter for us, it has nothing to do with thread
- # safety, but keep it to not disturb build setups.
- set(Boost_USE_MULTITHREADED OFF)
- find_package(Boost 1.48 COMPONENTS ${__boost_packages})
+ if(MSVC AND EXISTS ${_cycles_lib_dir})
+ set(BOOST_INCLUDE_DIR ${BOOST_ROOT}/include)
+ set(BOOST_VERSION_HEADER ${BOOST_INCLUDE_DIR}/boost/version.hpp)
+ if(EXISTS ${BOOST_VERSION_HEADER})
+ file(STRINGS "${BOOST_VERSION_HEADER}" BOOST_LIB_VERSION REGEX "#define BOOST_LIB_VERSION ")
+ if(BOOST_LIB_VERSION MATCHES "#define BOOST_LIB_VERSION \"([0-9_]+)\"")
+ set(BOOST_VERSION "${CMAKE_MATCH_1}")
+ endif()
+ endif()
+ if(NOT BOOST_VERSION)
+ message(FATAL_ERROR "Unable to determine Boost version")
+ endif()
+ set(BOOST_POSTFIX "vc141-mt-x64-${BOOST_VERSION}.lib")
+ set(BOOST_DEBUG_POSTFIX "vc141-mt-gd-x64-${BOOST_VERSION}.lib")
+ set(BOOST_LIBRARIES
+ optimized ${BOOST_ROOT}/lib/libboost_date_time-${BOOST_POSTFIX}
+ optimized ${BOOST_ROOT}/lib/libboost_filesystem-${BOOST_POSTFIX}
+ optimized ${BOOST_ROOT}/lib/libboost_regex-${BOOST_POSTFIX}
+ optimized ${BOOST_ROOT}/lib/libboost_system-${BOOST_POSTFIX}
+ optimized ${BOOST_ROOT}/lib/libboost_thread-${BOOST_POSTFIX}
+ optimized ${BOOST_ROOT}/lib/libboost_chrono-${BOOST_POSTFIX}
+ debug ${BOOST_ROOT}/lib/libboost_date_time-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_ROOT}/lib/libboost_filesystem-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_ROOT}/lib/libboost_regex-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_ROOT}/lib/libboost_system-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_ROOT}/lib/libboost_thread-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_ROOT}/lib/libboost_chrono-${BOOST_DEBUG_POSTFIX}
+ )
+ if(WITH_CYCLES_OSL)
+ set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
+ optimized ${BOOST_ROOT}/lib/libboost_wave-${BOOST_POSTFIX}
+ debug ${BOOST_ROOT}/lib/libboost_wave-${BOOST_DEBUG_POSTFIX})
+ endif()
+ else()
+ set(__boost_packages filesystem regex system thread date_time)
+ if(WITH_CYCLES_OSL)
+ list(APPEND __boost_packages wave)
+ endif()
+ find_package(Boost 1.48 COMPONENTS ${__boost_packages} REQUIRED)
+ if(NOT Boost_FOUND)
+ # Try to find non-multithreaded if -mt not found, this flag
+ # doesn't matter for us, it has nothing to do with thread
+ # safety, but keep it to not disturb build setups.
+ set(Boost_USE_MULTITHREADED OFF)
+ find_package(Boost 1.48 COMPONENTS ${__boost_packages})
+ endif()
+ unset(__boost_packages)
+
+ set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
+ set(BOOST_LIBRARIES ${Boost_LIBRARIES})
+ set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
endif()
- unset(__boost_packages)
- set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
- set(BOOST_LIBRARIES ${Boost_LIBRARIES})
- set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
+
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
endif()
@@ -297,47 +356,30 @@ endif()
# Embree
###########################################################################
-if(WITH_CYCLES_EMBREE)
- if(CYCLES_STANDALONE_REPOSITORY)
- if(MSVC AND EXISTS ${_cycles_lib_dir})
- set(EMBREE_TASKING_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/tasking.lib
- debug ${EMBREE_ROOT_DIR}/lib/tasking_d.lib
- )
- set(EMBREE_EMBREE3_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/embree3.lib
- debug ${EMBREE_ROOT_DIR}/lib/embree3_d.lib
- )
- set(EMBREE_EMBREE_AVX_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/embree_avx.lib
- debug ${EMBREE_ROOT_DIR}/lib/embree_avx_d.lib
- )
- set(EMBREE_EMBREE_AVX2_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/embree_avx2.lib
- debug ${EMBREE_ROOT_DIR}/lib/embree_avx2_d.lib
- )
- set(EMBREE_EMBREE_SSE42_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/embree_sse42.lib
- debug ${EMBREE_ROOT_DIR}/lib/embree_sse42_d.lib
- )
- set(EMBREE_LEXERS_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/lexers.lib
- debug ${EMBREE_ROOT_DIR}/lib/lexers_d.lib
- )
- set(EMBREE_MATH_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/math.lib
- debug ${EMBREE_ROOT_DIR}/lib/math_d.lib
- )
- set(EMBREE_SIMD_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/simd.lib
- debug ${EMBREE_ROOT_DIR}/lib/simd_d.lib
- )
- set(EMBREE_SYS_LIBRARY
- optimized ${EMBREE_ROOT_DIR}/lib/sys.lib
- debug ${EMBREE_ROOT_DIR}/lib/sys_d.lib
- )
- endif()
-
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_EMBREE)
+ if(MSVC AND EXISTS ${_cycles_lib_dir})
+ set(EMBREE_INCLUDE_DIRS ${EMBREE_ROOT_DIR}/include)
+ set(EMBREE_LIBRARIES
+ optimized ${EMBREE_ROOT_DIR}/lib/embree3.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/embree_avx2.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/embree_avx.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/embree_sse42.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/lexers.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/math.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/simd.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/tasking.lib
+ optimized ${EMBREE_ROOT_DIR}/lib/sys.lib
+ debug ${EMBREE_ROOT_DIR}/lib/embree3_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/embree_avx2_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/embree_avx_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/embree_sse42_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/lexers_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/math_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/simd_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/sys_d.lib
+ debug ${EMBREE_ROOT_DIR}/lib/tasking_d.lib
+ )
+ else()
find_package(Embree 3.8.0 REQUIRED)
endif()
endif()
@@ -346,29 +388,45 @@ endif()
# Logging
###########################################################################
-if(WITH_CYCLES_LOGGING)
- if(CYCLES_STANDALONE_REPOSITORY)
- find_package(Glog REQUIRED)
- find_package(Gflags REQUIRED)
- endif()
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_LOGGING)
+ find_package(Glog REQUIRED)
+ find_package(Gflags REQUIRED)
endif()
###########################################################################
# OpenSubdiv
###########################################################################
-if(WITH_CYCLES_OPENSUBDIV)
- if(CYCLES_STANDALONE_REPOSITORY)
- find_package(OpenSubdiv REQUIRED)
- set(WITH_OPENSUBDIV ON)
+if(WITH_CYCLES_HYDRA_RENDER_DELEGATE AND PXR_LIBRARY_DIR AND (WITH_OPENSUBDIV OR WITH_CYCLES_OPENSUBDIV))
+ find_library(OPENSUBDIV_LIBRARY_CPU_DEBUG_PXR NAMES osdCPU_d osdCPU PATHS ${PXR_LIBRARY_DIR} NO_CACHE NO_DEFAULT_PATH)
+ find_library(OPENSUBDIV_LIBRARY_GPU_DEBUG_PXR NAMES osdGPU_d osdGPU PATHS ${PXR_LIBRARY_DIR} NO_CACHE NO_DEFAULT_PATH)
+ find_library(OPENSUBDIV_LIBRARY_CPU_RELEASE_PXR NAMES osdCPU PATHS ${PXR_LIBRARY_DIR} NO_CACHE NO_DEFAULT_PATH)
+ find_library(OPENSUBDIV_LIBRARY_GPU_RELEASE_PXR NAMES osdGPU PATHS ${PXR_LIBRARY_DIR} NO_CACHE NO_DEFAULT_PATH)
+ if(OPENSUBDIV_LIBRARY_CPU_RELEASE_PXR AND OPENSUBDIV_LIBRARY_GPU_RELEASE_PXR)
+ set(OPENSUBDIV_INCLUDE_DIRS ${PXR_INCLUDE_DIRS})
+ set(OPENSUBDIV_LIBRARIES
+ optimized ${OPENSUBDIV_LIBRARY_CPU_RELEASE_PXR}
+ optimized ${OPENSUBDIV_LIBRARY_GPU_RELEASE_PXR}
+ debug ${OPENSUBDIV_LIBRARY_CPU_DEBUG_PXR}
+ debug ${OPENSUBDIV_LIBRARY_GPU_DEBUG_PXR}
+ )
+ endif()
+endif()
+
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OPENSUBDIV)
+ set(WITH_OPENSUBDIV ON)
+ if(NOT OPENSUBDIV_LIBRARY_CPU_RELEASE_PXR OR NOT OPENSUBDIV_LIBRARY_GPU_RELEASE_PXR)
if(MSVC AND EXISTS ${_cycles_lib_dir})
+ set(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_ROOT_DIR}/include)
set(OPENSUBDIV_LIBRARIES
optimized ${OPENSUBDIV_ROOT_DIR}/lib/osdCPU.lib
optimized ${OPENSUBDIV_ROOT_DIR}/lib/osdGPU.lib
debug ${OPENSUBDIV_ROOT_DIR}/lib/osdCPU_d.lib
debug ${OPENSUBDIV_ROOT_DIR}/lib/osdGPU_d.lib
)
+ else()
+ find_package(OpenSubdiv REQUIRED)
endif()
endif()
endif()
@@ -377,18 +435,29 @@ endif()
# OpenVDB
###########################################################################
-if(WITH_CYCLES_OPENVDB)
- if(CYCLES_STANDALONE_REPOSITORY)
+if(WITH_CYCLES_HYDRA_RENDER_DELEGATE AND PXR_LIBRARY_DIR AND (WITH_OPENVDB OR WITH_CYCLES_OPENVDB))
+ find_library(OPENVDB_LIBRARY_PXR NAMES openvdb PATHS ${PXR_LIBRARY_DIR} NO_CACHE NO_DEFAULT_PATH)
+ if(OPENVDB_LIBRARY_PXR)
+ set(OPENVDB_INCLUDE_DIRS ${PXR_INCLUDE_DIRS})
+ set(OPENVDB_LIBRARIES ${OPENVDB_LIBRARY_PXR})
+ endif()
+endif()
+
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OPENVDB)
+ set(WITH_OPENVDB ON)
+ set(OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES)
+
+ if(NOT OPENVDB_LIBRARY_PXR)
+ find_package(OpenVDB REQUIRED)
+
if(MSVC AND EXISTS ${_cycles_lib_dir})
set(BLOSC_LIBRARY
- optimized ${BLOSC_ROOT_DIR}/lib/libblosc.lib
- debug ${BLOSC_ROOT_DIR}/lib/libblosc_d.lib)
+ optimized ${BLOSC_ROOT_DIR}/lib/libblosc.lib
+ debug ${BLOSC_ROOT_DIR}/lib/libblosc_d.lib
+ )
+ else()
+ find_package(Blosc REQUIRED)
endif()
-
- find_package(OpenVDB REQUIRED)
- find_package(Blosc REQUIRED)
- set(WITH_OPENVDB ON)
- set(OPENVDB_DEFINITIONS -DNOMINMAX -D_USE_MATH_DEFINES)
endif()
endif()
@@ -396,21 +465,21 @@ endif()
# OpenImageDenoise
###########################################################################
-if(WITH_CYCLES_OPENIMAGEDENOISE)
- if(CYCLES_STANDALONE_REPOSITORY)
- find_package(OpenImageDenoise REQUIRED)
- set(WITH_OPENIMAGEDENOISE ON)
-
- if(MSVC AND EXISTS ${_cycles_lib_dir})
- set(OPENIMAGEDENOISE_LIBRARIES
- optimized ${OPENIMAGEDENOISE_ROOT_DIR}/lib/OpenImageDenoise.lib
- optimized ${OPENIMAGEDENOISE_ROOT_DIR}/lib/common.lib
- optimized ${OPENIMAGEDENOISE_ROOT_DIR}/lib/dnnl.lib
- debug ${OPENIMAGEDENOISE_ROOT_DIR}/lib/OpenImageDenoise_d.lib
- debug ${OPENIMAGEDENOISE_ROOT_DIR}/lib/common_d.lib
- debug ${OPENIMAGEDENOISE_ROOT_DIR}/lib/dnnl_d.lib)
- endif()
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OPENIMAGEDENOISE)
+ set(WITH_OPENIMAGEDENOISE ON)
+ if(MSVC AND EXISTS ${_cycles_lib_dir})
+ set(OPENIMAGEDENOISE_INCLUDE_DIRS ${OPENIMAGEDENOISE_ROOT_DIR}/include)
+ set(OPENIMAGEDENOISE_LIBRARIES
+ optimized ${OPENIMAGEDENOISE_ROOT_DIR}/lib/OpenImageDenoise.lib
+ optimized ${OPENIMAGEDENOISE_ROOT_DIR}/lib/common.lib
+ optimized ${OPENIMAGEDENOISE_ROOT_DIR}/lib/dnnl.lib
+ debug ${OPENIMAGEDENOISE_ROOT_DIR}/lib/OpenImageDenoise_d.lib
+ debug ${OPENIMAGEDENOISE_ROOT_DIR}/lib/common_d.lib
+ debug ${OPENIMAGEDENOISE_ROOT_DIR}/lib/dnnl_d.lib
+ )
+ else()
+ find_package(OpenImageDenoise REQUIRED)
endif()
endif()
@@ -418,15 +487,30 @@ endif()
# TBB
###########################################################################
-if(CYCLES_STANDALONE_REPOSITORY)
- if(MSVC AND EXISTS ${_cycles_lib_dir})
- set(TBB_LIBRARY
- optimized ${TBB_ROOT_DIR}/lib/tbb.lib
- debug ${TBB_ROOT_DIR}/lib/debug/tbb_debug.lib
+if(WITH_CYCLES_HYDRA_RENDER_DELEGATE AND PXR_LIBRARY_DIR)
+ find_library(TBB_LIBRARY_DEBUG_PXR NAMES tbb_debug tbb PATHS ${PXR_LIBRARY_DIR} NO_CACHE NO_DEFAULT_PATH)
+ find_library(TBB_LIBRARY_RELEASE_PXR NAMES tbb PATHS ${PXR_LIBRARY_DIR} NO_CACHE NO_DEFAULT_PATH)
+ if(TBB_LIBRARY_RELEASE_PXR)
+ set(TBB_INCLUDE_DIRS ${PXR_INCLUDE_DIRS})
+ set(TBB_LIBRARIES
+ optimized ${TBB_LIBRARY_RELEASE_PXR}
+ debug ${TBB_LIBRARY_DEBUG_PXR}
)
endif()
+endif()
- find_package(TBB REQUIRED)
+if(CYCLES_STANDALONE_REPOSITORY)
+ if(NOT TBB_LIBRARY_RELEASE_PXR)
+ if(MSVC AND EXISTS ${_cycles_lib_dir})
+ set(TBB_INCLUDE_DIRS ${TBB_ROOT_DIR}/include)
+ set(TBB_LIBRARIES
+ optimized ${TBB_ROOT_DIR}/lib/tbb.lib
+ debug ${TBB_ROOT_DIR}/lib/tbb_debug.lib
+ )
+ else()
+ find_package(TBB REQUIRED)
+ endif()
+ endif()
endif()
###########################################################################
@@ -438,9 +522,9 @@ if(CYCLES_STANDALONE_REPOSITORY)
set(GLEW_LIBRARY "${_cycles_lib_dir}/opengl/lib/glew.lib")
set(GLEW_INCLUDE_DIR "${_cycles_lib_dir}/opengl/include")
add_definitions(-DGLEW_STATIC)
+ else()
+ find_package(GLEW REQUIRED)
endif()
-
- find_package(GLEW REQUIRED)
else()
# Workaround for unconventional variable name use in Blender.
set(GLEW_INCLUDE_DIR "${GLEW_INCLUDE_PATH}")
@@ -466,11 +550,11 @@ if(CYCLES_STANDALONE_REPOSITORY)
find_package(OpenGL REQUIRED)
- set(CYCLES_GL_LIBRARIES
- ${OPENGL_gl_LIBRARY}
- ${OPENGL_glu_LIBRARY}
- ${GLEW_LIBRARY}
- )
+ set(CYCLES_GL_LIBRARIES
+ ${OPENGL_gl_LIBRARY}
+ ${OPENGL_glu_LIBRARY}
+ ${GLEW_LIBRARY}
+ )
else()
set(CYCLES_GL_LIBRARIES
bf_intern_glew_mx