@@ -40,6 +40,7 @@ option(MATERIALX_BUILD_DOCS "Create HTML documentation using Doxygen. Requires t
4040
4141option (MATERIALX_BUILD_GEN_GLSL "Build the GLSL shader generator back-end." ON )
4242option (MATERIALX_BUILD_GEN_OSL "Build the OSL shader generator back-end." ON )
43+ option (MATERIALX_BUILD_GEN_OSL_NODES "Build the OSL nodes shader generator back-end." ON )
4344option (MATERIALX_BUILD_GEN_MDL "Build the MDL shader generator back-end." ON )
4445option (MATERIALX_BUILD_GEN_MSL "Build the MSL shader generator back-end." ON )
4546option (MATERIALX_BUILD_RENDER "Build the MaterialX Render modules." ON )
@@ -84,6 +85,7 @@ if (CMAKE_SYSTEM_NAME MATCHES "iOS" OR CMAKE_SYSTEM_NAME MATCHES "tvOS" OR CMAKE
8485 set (MATERIALX_BUILD_GRAPH_EDITOR OFF )
8586 set (MATERIALX_BUILD_GEN_GLSL OFF )
8687 set (MATERIALX_BUILD_GEN_OSL OFF )
88+ set (MATERIALX_BUILD_GEN_OSL_NODES OFF )
8789 set (MATERIALX_BUILD_GEN_MDL OFF )
8890 set (MATERIALX_BUILD_TESTS OFF )
8991endif ()
@@ -103,6 +105,7 @@ if (MATERIALX_BUILD_APPLE_FRAMEWORK)
103105endif ()
104106
105107if (MATERIALX_BUILD_JS)
108+ set (MATERIALX_BUILD_GEN_OSL_NODES OFF )
106109 set (MATERIALX_BUILD_RENDER OFF )
107110 set (MATERIALX_BUILD_TESTS OFF )
108111endif ()
@@ -136,6 +139,12 @@ if(SKBUILD)
136139 set (MATERIALX_PYTHON_FOLDER_NAME "MaterialX" )
137140endif ()
138141
142+ if (MATERIALX_BUILD_GEN_OSL_NODES)
143+ set (MATERIALX_BUILD_GEN_OSL ON )
144+ set (MATERIALX_BUILD_RENDER ON )
145+ set (MATERIALX_BUILD_RENDER_PLATFORMS ON )
146+ endif ()
147+
139148# Helpers for MDL validation
140149if (MATERIALX_BUILD_GEN_MDL)
141150 set (MATERIALX_MDLC_EXECUTABLE "" CACHE FILEPATH "Full path to the mdlc binary." )
@@ -162,6 +171,7 @@ set(MATERIALX_LIBNAME_SUFFIX "" CACHE STRING "Specify a suffix to all libraries
162171mark_as_advanced (MATERIALX_BUILD_DOCS)
163172mark_as_advanced (MATERIALX_BUILD_GEN_GLSL)
164173mark_as_advanced (MATERIALX_BUILD_GEN_OSL)
174+ mark_as_advanced (MATERIALX_BUILD_GEN_OSL_NODES)
165175mark_as_advanced (MATERIALX_BUILD_GEN_MDL)
166176mark_as_advanced (MATERIALX_BUILD_GEN_MSL)
167177mark_as_advanced (MATERIALX_BUILD_RENDER)
@@ -215,7 +225,7 @@ endif()
215225
216226# Allow the OSL CMake package to provide binary locations for render tests.
217227# This will not override explicitly provided oslc, testrender, and include paths.
218- if (MATERIALX_BUILD_RENDER AND MATERIALX_BUILD_GEN_OSL AND MATERIALX_BUILD_TESTS)
228+ if (( MATERIALX_BUILD_RENDER AND MATERIALX_BUILD_GEN_OSL AND MATERIALX_BUILD_TESTS) OR MATERIALX_BUILD_GEN_OSL_NODES )
219229 find_package (OSL QUIET )
220230 if (OSL_FOUND)
221231 if (NOT MATERIALX_OSL_BINARY_OSLC)
@@ -225,6 +235,10 @@ if(MATERIALX_BUILD_RENDER AND MATERIALX_BUILD_GEN_OSL AND MATERIALX_BUILD_TESTS)
225235 # OSL does not yet export a CMake target for testrender.
226236 set (MATERIALX_OSL_BINARY_TESTRENDER $<TARGET_FILE_DIR:OSL::oslc>/testrender)
227237 endif ()
238+ if (NOT MATERIALX_OSL_INCLUDE_PATH)
239+ # OSL does not yet export a CMake target for testrender.
240+ set (MATERIALX_OSL_INCLUDE_PATH $<TARGET_FILE_DIR:OSL::oslc>/../include )
241+ endif ()
228242 endif ()
229243endif ()
230244
@@ -244,6 +258,10 @@ if (MATERIALX_BUILD_GEN_MDL)
244258 add_definitions (-DMATERIALX_INSTALL_MDL_MODULE_PATH=\"${MATERIALX_INSTALL_MDL_MODULE_PATH} \")
245259endif ()
246260
261+ if (MATERIALX_BUILD_GEN_OSL_NODES)
262+ set (MATERIALX_BUILD_DATA_LIBRARY ON )
263+ endif ()
264+
247265# Adjust the default installation path
248266if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
249267 set (CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR} /installed" CACHE PATH "Default install path" FORCE)
@@ -449,7 +467,7 @@ add_subdirectory(source/MaterialXFormat)
449467
450468# Add shader generation subdirectories
451469add_subdirectory (source /MaterialXGenShader)
452- if (MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_MDL OR MATERIALX_BUILD_GEN_MSL)
470+ if (MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_OSL_NODES OR MATERIALX_BUILD_GEN_MDL OR MATERIALX_BUILD_GEN_MSL)
453471 if (MATERIALX_BUILD_GEN_GLSL)
454472 add_definitions (-DMATERIALX_BUILD_GEN_GLSL)
455473 add_subdirectory (source /MaterialXGenGlsl)
@@ -458,6 +476,10 @@ if(MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_MD
458476 add_definitions (-DMATERIALX_BUILD_GEN_OSL)
459477 add_subdirectory (source /MaterialXGenOsl)
460478 endif ()
479+ if (MATERIALX_BUILD_GEN_OSL_NODES)
480+ add_definitions (-DMATERIALX_BUILD_GEN_OSL_NODES)
481+ add_subdirectory (source /MaterialXGenOslNodes)
482+ endif ()
461483 if (MATERIALX_BUILD_GEN_MDL)
462484 add_definitions (-DMATERIALX_BUILD_GEN_MDL)
463485 add_subdirectory (source /MaterialXGenMdl)
0 commit comments