diff options
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/CMakeLists.txt | 70 | ||||
-rw-r--r-- | intern/cycles/app/CMakeLists.txt | 11 | ||||
-rw-r--r-- | intern/cycles/cmake/external_libs.cmake | 132 | ||||
-rw-r--r-- | intern/cycles/cmake/macros.cmake | 14 | ||||
-rw-r--r-- | intern/cycles/hydra/CMakeLists.txt | 128 | ||||
-rw-r--r-- | intern/cycles/hydra/resources/apple_symbols.map | 1 | ||||
-rw-r--r-- | intern/cycles/hydra/resources/linux_symbols.map | 8 | ||||
-rw-r--r-- | intern/cycles/scene/CMakeLists.txt | 5 |
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() |