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/hydra/CMakeLists.txt')
-rw-r--r--intern/cycles/hydra/CMakeLists.txt174
1 files changed, 174 insertions, 0 deletions
diff --git a/intern/cycles/hydra/CMakeLists.txt b/intern/cycles/hydra/CMakeLists.txt
new file mode 100644
index 00000000000..679aa80550b
--- /dev/null
+++ b/intern/cycles/hydra/CMakeLists.txt
@@ -0,0 +1,174 @@
+# SPDX-License-Identifier: Apache-2.0
+# Copyright 2022 Blender Foundation
+
+#####################################################################
+# Cycles Hydra render delegate
+#####################################################################
+
+set(INC
+ ..
+)
+set(INC_SYS
+ ${USD_INCLUDE_DIRS}
+ ${GLEW_INCLUDE_DIR}
+)
+
+set(INC_HD_CYCLES
+ attribute.h
+ camera.h
+ config.h
+ curves.h
+ display_driver.h
+ field.h
+ geometry.h
+ geometry.inl
+ instancer.h
+ light.h
+ material.h
+ mesh.h
+ node_util.h
+ output_driver.h
+ pointcloud.h
+ render_buffer.h
+ render_delegate.h
+ render_pass.h
+ session.h
+ volume.h
+)
+
+set(SRC_HD_CYCLES
+ attribute.cpp
+ curves.cpp
+ camera.cpp
+ display_driver.cpp
+ field.cpp
+ instancer.cpp
+ light.cpp
+ material.cpp
+ mesh.cpp
+ node_util.cpp
+ output_driver.cpp
+ pointcloud.cpp
+ render_buffer.cpp
+ render_delegate.cpp
+ render_pass.cpp
+ session.cpp
+ volume.cpp
+)
+
+add_definitions(${GL_DEFINITIONS})
+
+if(WITH_OPENVDB)
+ add_definitions(-DWITH_OPENVDB ${OPENVDB_DEFINITIONS})
+ list(APPEND INC_SYS
+ ${OPENVDB_INCLUDE_DIRS}
+ )
+ list(APPEND LIB
+ ${OPENVDB_LIBRARIES}
+ )
+endif()
+
+include_directories(${INC})
+include_directories(SYSTEM ${INC_SYS})
+
+add_library(hdCyclesStatic STATIC
+ ${SRC_HD_CYCLES}
+ ${INC_HD_CYCLES}
+)
+
+target_compile_options(hdCyclesStatic
+ PRIVATE
+ $<$<CXX_COMPILER_ID:MSVC>:/wd4003 /wd4244 /wd4506>
+ $<$<CXX_COMPILER_ID:GNU>:-Wno-float-conversion -Wno-double-promotion -Wno-deprecated>
+)
+
+target_compile_definitions(hdCyclesStatic
+ PRIVATE
+ GLOG_NO_ABBREVIATED_SEVERITIES=1
+ OSL_DEBUG=$<CONFIG:DEBUG>
+ TBB_USE_DEBUG=$<CONFIG:DEBUG>
+ $<$<CXX_COMPILER_ID:MSVC>:NOMINMAX=1>
+)
+
+target_link_libraries(hdCyclesStatic
+ PRIVATE
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}hd${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}plug${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}tf${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}trace${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}vt${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}work${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}sdf${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}cameraUtil${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}hf${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}pxOsd${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}gf${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}arch${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}hgi${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}glf${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}hdx${CMAKE_LINK_LIBRARY_SUFFIX}
+ ${USD_LIBRARY_DIR}/${USD_LIBRARY_PREFIX}usdGeom${CMAKE_LINK_LIBRARY_SUFFIX}
+ cycles_scene
+ cycles_session
+ cycles_graph
+)
+
+if (USD_PYTHON_LIBRARIES)
+ target_link_libraries(hdCyclesStatic
+ PRIVATE
+ ${USD_PYTHON_LIBRARIES}
+ )
+endif()
+
+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
+)
+
+target_link_directories(${HdCyclesPluginName}
+ BEFORE
+ PRIVATE
+ ${USD_LIBRARY_DIR}
+)
+
+cycles_target_link_libraries(${HdCyclesPluginName})
+
+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()
+
+delayed_install("" $<TARGET_FILE:${HdCyclesPluginName}> ${CYCLES_HYDRA_INSTALL_PATH})
+
+set(PLUG_INFO_ROOT "..")
+set(PLUG_INFO_LIBRARY_PATH "../${HdCyclesPluginName}${CMAKE_SHARED_LIBRARY_SUFFIX}")
+set(PLUG_INFO_RESOURCE_PATH "resources")
+
+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")