@@ -42,6 +42,7 @@ option(MATERIALX_BUILD_GEN_GLSL "Build the GLSL shader generator back-end." ON)
4242option (MATERIALX_BUILD_GEN_OSL "Build the OSL shader generator back-ends." ON )
4343option (MATERIALX_BUILD_GEN_MDL "Build the MDL shader generator back-end." ON )
4444option (MATERIALX_BUILD_GEN_MSL "Build the MSL shader generator back-end." ON )
45+ option (MATERIALX_BUILD_GEN_SLANG "Build the Slang shader generator back-end." ON )
4546option (MATERIALX_BUILD_RENDER "Build the MaterialX Render modules." ON )
4647option (MATERIALX_BUILD_RENDER_PLATFORMS "Build platform-specific render modules for each shader generator." ON )
4748option (MATERIALX_BUILD_OIIO "Build OpenImageIO support for MaterialXRender." OFF )
@@ -86,6 +87,7 @@ if (CMAKE_SYSTEM_NAME MATCHES "iOS" OR CMAKE_SYSTEM_NAME MATCHES "tvOS" OR CMAKE
8687 set (MATERIALX_BUILD_GEN_GLSL OFF )
8788 set (MATERIALX_BUILD_GEN_OSL OFF )
8889 set (MATERIALX_BUILD_GEN_MDL OFF )
90+ set (MATERIALX_BUILD_GEN_SLANG OFF )
8991 set (MATERIALX_BUILD_OSOS OFF )
9092 set (MATERIALX_BUILD_TESTS OFF )
9193endif ()
@@ -133,6 +135,9 @@ set(MATERIALX_OSL_BINARY_OSLC "" CACHE FILEPATH "Full path to the OSL compiler b
133135set (MATERIALX_OSL_BINARY_TESTRENDER "" CACHE FILEPATH "Full path to the OSL test render binary." )
134136set (MATERIALX_OSL_INCLUDE_PATH "" CACHE PATH "Full path to OSL shader includes (e.g. 'stdosl.h')." )
135137
138+ # Helpers for Slang validation
139+ set (MATERIALX_SLANG_RHI_SOURCE_DIR "" CACHE PATH "Full path to the Slang RHI build directory." )
140+
136141set (MATERIALX_PYTHON_FOLDER_NAME "python/MaterialX" CACHE INTERNAL "Folder name to user for installing the Python library." )
137142
138143if (SKBUILD)
@@ -166,6 +171,7 @@ set(MATERIALX_LIBNAME_SUFFIX "" CACHE STRING "Specify a suffix to all libraries
166171
167172mark_as_advanced (MATERIALX_BUILD_DOCS )
168173mark_as_advanced (MATERIALX_BUILD_GEN_GLSL )
174+ mark_as_advanced (MATERIALX_BUILD_GEN_SLANG )
169175mark_as_advanced (MATERIALX_BUILD_GEN_OSL )
170176mark_as_advanced (MATERIALX_BUILD_GEN_MDL )
171177mark_as_advanced (MATERIALX_BUILD_GEN_MSL )
@@ -205,6 +211,7 @@ mark_as_advanced(MATERIALX_BUILD_APPLE_FRAMEWORK)
205211mark_as_advanced (MATERIALX_MDL_BINARY_MDLC )
206212mark_as_advanced (MATERIALX_MDL_MODULE_PATHS )
207213mark_as_advanced (MATERIALX_MDL_SDK_DIR )
214+ mark_as_advanced (MATERIALX_SLANG_RHI_SOURCE_DIR )
208215
209216if (MATERIALX_BUILD_USE_CCACHE)
210217 # Setup CCache for C/C++ compilation
@@ -330,7 +337,7 @@ function(assign_source_group prefix)
330337endfunction (assign_source_group )
331338
332339function (mx_add_library MATERIALX_MODULE_NAME )
333- set (options ADD_OBJECTIVE_C_CODE)
340+ set (options ADD_OBJECTIVE_C_CODE SKIP_INSTALL )
334341 set (oneValueArgs EXPORT_DEFINE)
335342 set (multiValueArgs
336343 SOURCE_FILES
@@ -415,7 +422,7 @@ function(mx_add_library MATERIALX_MODULE_NAME)
415422
416423 target_compile_definitions (${TARGET_NAME} PRIVATE "-D${args_EXPORT_DEFINE} " )
417424
418- if (NOT SKBUILD)
425+ if (NOT SKBUILD AND NOT args_SKIP_INSTALL )
419426 if (NOT MATERIALX_BUILD_MONOLITHIC)
420427 install (TARGETS ${MATERIALX_MODULE_NAME}
421428 EXPORT MaterialX
@@ -459,15 +466,18 @@ add_subdirectory(source/MaterialXFormat)
459466
460467# Add shader generation subdirectories
461468add_subdirectory (source /MaterialXGenShader )
462- if (MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_MDL OR MATERIALX_BUILD_GEN_MSL)
463- if (MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_MSL)
469+ if (MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_MDL OR MATERIALX_BUILD_GEN_MSL OR MATERIALX_BUILD_GEN_SLANG )
470+ if (MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_MSL OR MATERIALX_BUILD_GEN_SLANG )
464471 add_subdirectory (source /MaterialXGenHw )
465472 endif ()
466-
467473 if (MATERIALX_BUILD_GEN_GLSL)
468474 add_definitions (-DMATERIALX_BUILD_GEN_GLSL )
469475 add_subdirectory (source /MaterialXGenGlsl )
470476 endif ()
477+ if (MATERIALX_BUILD_GEN_SLANG)
478+ add_definitions (-DMATERIALX_BUILD_GEN_SLANG )
479+ add_subdirectory (source /MaterialXGenSlang )
480+ endif ()
471481 if (MATERIALX_BUILD_GEN_OSL)
472482 add_definitions (-DMATERIALX_BUILD_GEN_OSL )
473483 add_subdirectory (source /MaterialXGenOsl )
@@ -505,6 +515,9 @@ if(MATERIALX_BUILD_RENDER)
505515 if (MATERIALX_BUILD_GEN_OSL)
506516 add_subdirectory (source /MaterialXRenderOsl )
507517 endif ()
518+ if (MATERIALX_BUILD_GEN_SLANG AND MATERIALX_SLANG_RHI_SOURCE_DIR )
519+ add_subdirectory (source /MaterialXRenderSlang )
520+ endif ()
508521 endif ()
509522 if (MATERIALX_BUILD_VIEWER)
510523 add_subdirectory (source /MaterialXView )
0 commit comments