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')
-rw-r--r--intern/cycles/CMakeLists.txt70
-rw-r--r--intern/cycles/app/CMakeLists.txt11
-rw-r--r--intern/cycles/cmake/external_libs.cmake132
-rw-r--r--intern/cycles/cmake/macros.cmake14
-rw-r--r--intern/cycles/hydra/CMakeLists.txt128
-rw-r--r--intern/cycles/hydra/resources/apple_symbols.map1
-rw-r--r--intern/cycles/hydra/resources/linux_symbols.map8
-rw-r--r--intern/cycles/scene/CMakeLists.txt5
8 files changed, 208 insertions, 161 deletions
diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index 003f75267ce..f5d717e70fc 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -18,8 +18,10 @@ endif()
# External Libraries
-include(cmake/external_libs.cmake)
-include(cmake/macros.cmake)
+if(NOT CYCLES_STANDALONE_REPOSITORY)
+ include(cmake/external_libs.cmake)
+ include(cmake/macros.cmake)
+endif()
# Build Flags
# todo: this code could be refactored a bit to avoid duplication
@@ -221,7 +223,6 @@ include_directories(
${OPENIMAGEIO_INCLUDE_DIRS}
${OPENEXR_INCLUDE_DIRS}
${PUGIXML_INCLUDE_DIR}
- ${TBB_INCLUDE_DIRS}
)
if(WITH_CYCLES_DEBUG)
@@ -270,6 +271,49 @@ if(WITH_CYCLES_EMBREE)
)
endif()
+if(WITH_OPENIMAGEDENOISE)
+ add_definitions(-DWITH_OPENIMAGEDENOISE)
+ include_directories(
+ SYSTEM
+ ${OPENIMAGEDENOISE_INCLUDE_DIRS}
+ )
+endif()
+
+# Logging capabilities using GLog library.
+if(WITH_CYCLES_LOGGING)
+ add_definitions(-DWITH_CYCLES_LOGGING)
+ add_definitions(${GLOG_DEFINES})
+ add_definitions(-DCYCLES_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
+ include_directories(
+ SYSTEM
+ ${GLOG_INCLUDE_DIRS}
+ ${GFLAGS_INCLUDE_DIRS}
+ )
+endif()
+
+if(WITH_ALEMBIC)
+ add_definitions(-DWITH_ALEMBIC)
+ include_directories(
+ SYSTEM
+ ${ALEMBIC_INCLUDE_DIRS}
+ )
+endif()
+
+# Includes that might be overrides by USD last, to avoid compiling
+# against the wrong versions of other libraries.
+include_directories(
+ SYSTEM
+ ${TBB_INCLUDE_DIRS}
+)
+
+if(WITH_OPENVDB)
+ add_definitions(-DWITH_OPENVDB ${OPENVDB_DEFINITIONS})
+ include_directories(
+ SYSTEM
+ ${OPENVDB_INCLUDE_DIRS}
+ )
+endif()
+
if(WITH_NANOVDB)
add_definitions(-DWITH_NANOVDB)
include_directories(
@@ -286,23 +330,11 @@ if(WITH_OPENSUBDIV)
)
endif()
-if(WITH_OPENIMAGEDENOISE)
- add_definitions(-DWITH_OPENIMAGEDENOISE)
- include_directories(
- SYSTEM
- ${OPENIMAGEDENOISE_INCLUDE_DIRS}
- )
-endif()
-
-# Logging capabilities using GLog library.
-if(WITH_CYCLES_LOGGING)
- add_definitions(-DWITH_CYCLES_LOGGING)
- add_definitions(${GLOG_DEFINES})
- add_definitions(-DCYCLES_GFLAGS_NAMESPACE=${GFLAGS_NAMESPACE})
+if(WITH_OPENCOLORIO)
+ add_definitions(-DWITH_OCIO)
include_directories(
SYSTEM
- ${GLOG_INCLUDE_DIRS}
- ${GFLAGS_INCLUDE_DIRS}
+ ${OPENCOLORIO_INCLUDE_DIRS}
)
endif()
@@ -395,7 +427,7 @@ if(WITH_GTESTS)
add_subdirectory(test)
endif()
-if(WITH_CYCLES_HYDRA_RENDER_DELEGATE)
+if(WITH_CYCLES_HYDRA_RENDER_DELEGATE OR (WITH_CYCLES_STANDALONE AND WITH_USD))
add_subdirectory(hydra)
endif()
diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt
index 872a95ed5a6..6aea962eab5 100644
--- a/intern/cycles/app/CMakeLists.txt
+++ b/intern/cycles/app/CMakeLists.txt
@@ -83,13 +83,6 @@ if(WITH_CYCLES_STANDALONE)
target_link_libraries(cycles PRIVATE ${LIB})
if(APPLE)
- if(WITH_OPENCOLORIO)
- set_property(TARGET cycles APPEND_STRING PROPERTY LINK_FLAGS " -framework IOKit -framework Carbon")
- endif()
- if(WITH_OPENIMAGEDENOISE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
- # OpenImageDenoise uses BNNS from the Accelerate framework.
- set_property(TARGET cycles APPEND_STRING PROPERTY LINK_FLAGS " -framework Accelerate")
- endif()
if(WITH_CYCLES_STANDALONE_GUI)
set_property(TARGET cycles APPEND_STRING PROPERTY LINK_FLAGS
" -framework Cocoa -framework CoreAudio -framework AudioUnit -framework AudioToolbox -framework ForceFeedback -framework CoreVideo")
@@ -103,6 +96,10 @@ if(WITH_CYCLES_STANDALONE)
if(CYCLES_STANDALONE_REPOSITORY)
cycles_install_libraries(cycles)
endif()
+
+ install(PROGRAMS
+ $<TARGET_FILE:cycles>
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
endif()
#####################################################################
diff --git a/intern/cycles/cmake/external_libs.cmake b/intern/cycles/cmake/external_libs.cmake
index 05c0980bdfb..f4186374d10 100644
--- a/intern/cycles/cmake/external_libs.cmake
+++ b/intern/cycles/cmake/external_libs.cmake
@@ -24,6 +24,9 @@ if(CYCLES_STANDALONE_REPOSITORY)
else()
set(_cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/darwin_arm64")
endif()
+
+ # Always use system zlib
+ find_package(ZLIB REQUIRED)
elseif(WIN32)
if(CMAKE_CL_64)
set(_cycles_lib_dir "${CMAKE_SOURCE_DIR}/../lib/win64_vc15")
@@ -66,10 +69,12 @@ if(CYCLES_STANDALONE_REPOSITORY)
_set_default(BOOST_ROOT "${_cycles_lib_dir}/boost")
_set_default(BLOSC_ROOT_DIR "${_cycles_lib_dir}/blosc")
_set_default(EMBREE_ROOT_DIR "${_cycles_lib_dir}/embree")
+ _set_default(IMATH_ROOT_DIR "${_cycles_lib_dir}/imath")
_set_default(GLEW_ROOT_DIR "${_cycles_lib_dir}/glew")
_set_default(JPEG_ROOT "${_cycles_lib_dir}/jpeg")
_set_default(LLVM_ROOT_DIR "${_cycles_lib_dir}/llvm")
_set_default(CLANG_ROOT_DIR "${_cycles_lib_dir}/llvm")
+ _set_default(NANOVDB_ROOT_DIR "${_cycles_lib_dir}/openvdb")
_set_default(OPENCOLORIO_ROOT_DIR "${_cycles_lib_dir}/opencolorio")
_set_default(OPENEXR_ROOT_DIR "${_cycles_lib_dir}/openexr")
_set_default(OPENIMAGEDENOISE_ROOT_DIR "${_cycles_lib_dir}/openimagedenoise")
@@ -80,8 +85,11 @@ if(CYCLES_STANDALONE_REPOSITORY)
_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(SDL2_ROOT_DIR "${_cycles_lib_dir}/sdl")
_set_default(TBB_ROOT_DIR "${_cycles_lib_dir}/tbb")
_set_default(TIFF_ROOT "${_cycles_lib_dir}/tiff")
+ _set_default(USD_ROOT_DIR "${_cycles_lib_dir}/usd")
+ _set_default(WEBP_ROOT_DIR "${_cycles_lib_dir}/webp")
_set_default(ZLIB_ROOT "${_cycles_lib_dir}/zlib")
# Ignore system libraries
@@ -92,23 +100,6 @@ 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
###########################################################################
@@ -189,6 +180,7 @@ if(CYCLES_STANDALONE_REPOSITORY)
find_package(JPEG REQUIRED)
find_package(TIFF REQUIRED)
+ find_package(WebP)
if(EXISTS ${_cycles_lib_dir})
set(PNG_NAMES png16 libpng16 png libpng)
@@ -277,20 +269,22 @@ endif()
if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OPENCOLORIO)
set(WITH_OPENCOLORIO ON)
- 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)
+ if(NOT USD_OVERRIDE_OPENCOLORIO)
+ 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()
endif()
@@ -366,7 +360,7 @@ if(CYCLES_STANDALONE_REPOSITORY)
set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
endif()
- set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
+ set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB ${BOOST_DEFINITIONS}")
endif()
###########################################################################
@@ -414,26 +408,10 @@ endif()
# OpenSubdiv
###########################################################################
-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(NOT USD_OVERRIDE_OPENSUBDIV)
if(MSVC AND EXISTS ${_cycles_lib_dir})
set(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_ROOT_DIR}/include)
set(OPENSUBDIV_LIBRARIES
@@ -452,19 +430,11 @@ endif()
# OpenVDB
###########################################################################
-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)
+ if(NOT USD_OVERRIDE_OPENVDB)
find_package(OpenVDB REQUIRED)
if(MSVC AND EXISTS ${_cycles_lib_dir})
@@ -479,6 +449,20 @@ if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_OPENVDB)
endif()
###########################################################################
+# NanoVDB
+###########################################################################
+
+if(CYCLES_STANDALONE_REPOSITORY AND WITH_CYCLES_NANOVDB)
+ set(WITH_NANOVDB ON)
+
+ if(MSVC AND EXISTS ${_cycles_lib_dir})
+ set(NANOVDB_INCLUDE_DIR ${NANOVDB_ROOT_DIR}/include)
+ else()
+ find_package(NanoVDB REQUIRED)
+ endif()
+endif()
+
+###########################################################################
# OpenImageDenoise
###########################################################################
@@ -504,20 +488,8 @@ endif()
# TBB
###########################################################################
-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()
-
if(CYCLES_STANDALONE_REPOSITORY)
- if(NOT TBB_LIBRARY_RELEASE_PXR)
+ if(NOT USD_OVERRIDE_TBB)
if(MSVC AND EXISTS ${_cycles_lib_dir})
set(TBB_INCLUDE_DIRS ${TBB_ROOT_DIR}/include)
set(TBB_LIBRARIES
@@ -586,7 +558,8 @@ endif()
# OpenGL
###########################################################################
-if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI)
+if((WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) OR
+ WITH_CYCLES_HYDRA_RENDER_DELEGATE)
if(CYCLES_STANDALONE_REPOSITORY)
if(NOT DEFINED OpenGL_GL_PREFERENCE)
set(OpenGL_GL_PREFERENCE "LEGACY")
@@ -624,7 +597,7 @@ endif()
# CUDA
###########################################################################
-if(WITH_CYCLES_CUDA_BINARIES OR NOT WITH_CUDA_DYNLOAD)
+if(WITH_CYCLES_DEVICE_CUDA AND (WITH_CYCLES_CUDA_BINARIES OR NOT WITH_CUDA_DYNLOAD))
find_package(CUDA) # Try to auto locate CUDA toolkit
if(CUDA_FOUND)
message(STATUS "Found CUDA ${CUDA_NVCC_EXECUTABLE} (${CUDA_VERSION})")
@@ -674,16 +647,3 @@ if(WITH_CYCLES_DEVICE_METAL)
message(STATUS "Found Metal: ${METAL_LIBRARY}")
endif()
endif()
-
-###########################################################################
-# macOS
-###########################################################################
-
-if(CYCLES_STANDALONE_REPOSITORY)
- # On macOS, always use zlib from system.
- if(APPLE)
- set(ZLIB_ROOT /usr)
- find_package(ZLIB REQUIRED)
- find_package(PNG REQUIRED)
- endif()
-endif()
diff --git a/intern/cycles/cmake/macros.cmake b/intern/cycles/cmake/macros.cmake
index cd1db8e95a9..abadfc2c1ac 100644
--- a/intern/cycles/cmake/macros.cmake
+++ b/intern/cycles/cmake/macros.cmake
@@ -74,6 +74,19 @@ macro(cycles_add_library target library_deps)
endmacro()
macro(cycles_external_libraries_append libraries)
+ if(APPLE)
+ list(APPEND ${libraries} "-framework Foundation")
+ if(WITH_USD)
+ list(APPEND ${libraries} "-framework CoreVideo -framework Cocoa")
+ endif()
+ if(WITH_CYCLES_STANDALONE_GUI OR WITH_USD)
+ list(APPEND ${libraries} "-framework OpenGL")
+ endif()
+ elseif(UNIX)
+ if(WITH_USD)
+ list(APPEND ${libraries} "X11")
+ endif()
+ endif()
if(WITH_CYCLES_LOGGING)
list(APPEND ${libraries} ${GLOG_LIBRARIES} ${GFLAGS_LIBRARIES})
endif()
@@ -90,6 +103,7 @@ macro(cycles_external_libraries_append libraries)
list(APPEND ${libraries} ${OPENCOLORIO_LIBRARIES})
if(APPLE)
list(APPEND ${libraries} "-framework IOKit")
+ list(APPEND ${libraries} "-framework Carbon")
endif()
endif()
if(WITH_OPENVDB)
diff --git a/intern/cycles/hydra/CMakeLists.txt b/intern/cycles/hydra/CMakeLists.txt
index 7b7ea43cfe5..17a7f897ac6 100644
--- a/intern/cycles/hydra/CMakeLists.txt
+++ b/intern/cycles/hydra/CMakeLists.txt
@@ -81,18 +81,18 @@ endif()
include_directories(${INC})
include_directories(SYSTEM ${INC_SYS})
-add_library(hdCyclesStatic STATIC
+add_library(cycles_hydra STATIC
${SRC_HD_CYCLES}
${INC_HD_CYCLES}
)
-target_compile_options(hdCyclesStatic
+target_compile_options(cycles_hydra
PRIVATE
$<$<CXX_COMPILER_ID:MSVC>:/wd4003 /wd4244 /wd4506>
$<$<CXX_COMPILER_ID:GNU>:-Wno-float-conversion -Wno-double-promotion -Wno-deprecated>
)
-target_compile_definitions(hdCyclesStatic
+target_compile_definitions(cycles_hydra
PRIVATE
GLOG_NO_ABBREVIATED_SEVERITIES=1
OSL_DEBUG=$<CONFIG:DEBUG>
@@ -100,57 +100,93 @@ target_compile_definitions(hdCyclesStatic
$<$<CXX_COMPILER_ID:MSVC>:NOMINMAX=1>
)
-target_link_libraries(hdCyclesStatic
+target_link_libraries(cycles_hydra
PUBLIC
- hd
- hgi
- hgiGL
+ ${USD_LIBRARIES}
PRIVATE
${LIB}
)
-set(HdCyclesPluginName hdCycles)
-add_library(${HdCyclesPluginName} SHARED
- plugin.h
- plugin.cpp
-)
-
-set_target_properties(${HdCyclesPluginName}
- PROPERTIES PREFIX ""
-)
-
-target_compile_definitions(${HdCyclesPluginName}
- PRIVATE
- MFB_PACKAGE_NAME=${HdCyclesPluginName}
- MFB_ALT_PACKAGE_NAME=${HdCyclesPluginName}
- GLOG_NO_ABBREVIATED_SEVERITIES=1
- OSL_DEBUG=$<CONFIG:DEBUG>
- TBB_USE_DEBUG=$<CONFIG:DEBUG>
- $<$<CXX_COMPILER_ID:MSVC>:NOMINMAX=1>
-)
-
-target_link_libraries(${HdCyclesPluginName}
- hdCyclesStatic
-)
+if(WITH_CYCLES_HYDRA_RENDER_DELEGATE)
+ set(HdCyclesPluginName hdCycles)
+ add_library(${HdCyclesPluginName} SHARED
+ plugin.h
+ plugin.cpp
+ )
-if(WITH_CYCLES_BLENDER)
- set(CYCLES_HYDRA_INSTALL_PATH "../")
-else()
- set(CYCLES_HYDRA_INSTALL_PATH ${CMAKE_INSTALL_PREFIX})
- # Put the root plugInfo.json one level up
- delayed_install("${CMAKE_CURRENT_SOURCE_DIR}" "plugInfo.json" ${CMAKE_INSTALL_PREFIX})
-endif()
+ set_target_properties(${HdCyclesPluginName}
+ PROPERTIES PREFIX ""
+ )
-delayed_install("" $<TARGET_FILE:${HdCyclesPluginName}> ${CYCLES_HYDRA_INSTALL_PATH})
+ target_compile_definitions(${HdCyclesPluginName}
+ PRIVATE
+ MFB_PACKAGE_NAME=${HdCyclesPluginName}
+ MFB_ALT_PACKAGE_NAME=${HdCyclesPluginName}
+ GLOG_NO_ABBREVIATED_SEVERITIES=1
+ OSL_DEBUG=$<CONFIG:DEBUG>
+ TBB_USE_DEBUG=$<CONFIG:DEBUG>
+ $<$<CXX_COMPILER_ID:MSVC>:NOMINMAX=1>
+ )
-set(PLUG_INFO_ROOT "..")
+ target_link_libraries(${HdCyclesPluginName}
+ cycles_hydra
+ )
-file(RELATIVE_PATH PLUG_INFO_LIBRARY_PATH "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}" "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}${CMAKE_SHARED_LIBRARY_SUFFIX}")
-file(RELATIVE_PATH PLUG_INFO_RESOURCE_PATH "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}" "${CYCLES_INSTALL_PATH}")
+ if(APPLE)
+ set_property(
+ TARGET
+ ${HdCyclesPluginName}
+ APPEND_STRING PROPERTY LINK_FLAGS
+ " -Wl,-exported_symbols_list,'${CMAKE_CURRENT_SOURCE_DIR}/resources/apple_symbols.map'"
+ )
+ elseif(UNIX)
+ set_property(
+ TARGET
+ ${HdCyclesPluginName}
+ APPEND_STRING PROPERTY LINK_FLAGS
+ " -Wl,--version-script='${CMAKE_CURRENT_SOURCE_DIR}/resources/linux_symbols.map'"
+ )
+ endif()
+
+
+ if(WITH_CYCLES_BLENDER)
+ # Install inside add-on
+ set(CYCLES_HYDRA_INSTALL_PATH ${CYCLES_INSTALL_PATH}/hydra)
+ else()
+ # Install next to cycles executable
+ set(CYCLES_HYDRA_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/hydra)
+ endif()
-configure_file(resources/plugInfo.json
- ${CMAKE_CURRENT_BINARY_DIR}/resources/plugInfo.json
- @ONLY
-)
+ # Put the root plugInfo.json one level up
+ delayed_install("${CMAKE_CURRENT_SOURCE_DIR}" "plugInfo.json" ${CYCLES_HYDRA_INSTALL_PATH})
+ delayed_install("" $<TARGET_FILE:${HdCyclesPluginName}> ${CYCLES_HYDRA_INSTALL_PATH})
+
+ set_target_properties(${HdCyclesPluginName}
+ PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+
+ set(PLUG_INFO_ROOT "..")
+
+ if(WITH_CYCLES_BLENDER)
+ # Full path not yet know at this point and RELATIVE_PATH requires
+ # absolute path as input. So just set manually.
+ set(PLUG_INFO_LIBRARY_PATH "../${HdCyclesPluginName}${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ set(PLUG_INFO_RESOURCE_PATH "../..")
+ else()
+ file(RELATIVE_PATH
+ PLUG_INFO_LIBRARY_PATH
+ "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}"
+ "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}${CMAKE_SHARED_LIBRARY_SUFFIX}")
+ file(RELATIVE_PATH PLUG_INFO_RESOURCE_PATH
+ "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}"
+ "${CYCLES_INSTALL_PATH}")
+ endif()
+
+ configure_file(resources/plugInfo.json
+ ${CMAKE_CURRENT_BINARY_DIR}/resources/plugInfo.json
+ @ONLY
+ )
-delayed_install("${CMAKE_CURRENT_BINARY_DIR}/resources" "plugInfo.json" "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}/resources")
+ delayed_install("${CMAKE_CURRENT_BINARY_DIR}/resources" "plugInfo.json" "${CYCLES_HYDRA_INSTALL_PATH}/${HdCyclesPluginName}/resources")
+endif()
diff --git a/intern/cycles/hydra/resources/apple_symbols.map b/intern/cycles/hydra/resources/apple_symbols.map
new file mode 100644
index 00000000000..85be5ae55fe
--- /dev/null
+++ b/intern/cycles/hydra/resources/apple_symbols.map
@@ -0,0 +1 @@
+*PXR*
diff --git a/intern/cycles/hydra/resources/linux_symbols.map b/intern/cycles/hydra/resources/linux_symbols.map
new file mode 100644
index 00000000000..397422c9854
--- /dev/null
+++ b/intern/cycles/hydra/resources/linux_symbols.map
@@ -0,0 +1,8 @@
+/* Hide everything except USD / Hydra symbols, to avoid conflicts with other
+ * application using different library versions. */
+{
+global:
+ PXR*;
+local:
+ *;
+};
diff --git a/intern/cycles/scene/CMakeLists.txt b/intern/cycles/scene/CMakeLists.txt
index ddb7ff6f906..4904bf247ba 100644
--- a/intern/cycles/scene/CMakeLists.txt
+++ b/intern/cycles/scene/CMakeLists.txt
@@ -108,14 +108,13 @@ endif()
if(WITH_OPENCOLORIO)
add_definitions(-DWITH_OCIO)
- include_directories(
- SYSTEM
+ list(APPEND INC_SYS
${OPENCOLORIO_INCLUDE_DIRS}
)
list(APPEND LIB
${OPENCOLORIO_LIBRARIES}
)
- if(WIN32)
+ if(WIN32 AND NOT USD_OVERRIDE_OPENCOLORIO)
add_definitions(-DOpenColorIO_SKIP_IMPORTS)
endif()
endif()