@@ -18,6 +18,7 @@ option(DILIGENT_EMSCRIPTEN_INCLUDE_COI_SERVICE_WORKER "Include cross-origin isol
1818# SHADERS - List of shader files
1919# ASSETS - List of asset files
2020# IDE_FOLDER - Optional folder name for IDE
21+ # DXC_REQUIRED - Indicates if DXC compiler is required for the sample (optional, default is OFF)
2122#
2223# Example:
2324#
@@ -38,9 +39,14 @@ option(DILIGENT_EMSCRIPTEN_INCLUDE_COI_SERVICE_WORKER "Include cross-origin isol
3839function (add_sample_app APP_NAME)
3940
4041 set (options )
41- set (oneValueArgs IDE_FOLDER)
42+ set (oneValueArgs IDE_FOLDER DXC_REQUIRED )
4243 set (multiValueArgs SOURCES INCLUDES SHADERS ASSETS)
4344 cmake_parse_arguments (PARSE_ARGV 1 arg "${options} " "${oneValueArgs} " "${multiValueArgs} " )
45+ if (arg_DXC_REQUIRED)
46+ set (DXC_REQUIRED ${arg_DXC_REQUIRED} )
47+ else ()
48+ set (DXC_REQUIRED NO )
49+ endif ()
4450
4551 set_source_files_properties (${arg_SHADERS} PROPERTIES VS_TOOL_OVERRIDE "None" )
4652 set (ALL_ASSETS ${arg_ASSETS} ${arg_SHADERS} )
@@ -55,11 +61,11 @@ function(add_sample_app APP_NAME)
5561 set_target_properties (${APP_NAME} PROPERTIES
5662 VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} /assets"
5763 )
58- copy_required_dlls(${APP_NAME} )
64+ copy_required_dlls(${APP_NAME} DXC_REQUIRED ${DXC_REQUIRED} )
5965 append_sample_base_win32_source(${APP_NAME} )
6066 elseif (PLATFORM_UNIVERSAL_WINDOWS)
6167 append_sample_base_uwp_source(${APP_NAME} )
62- package_required_dlls(${APP_NAME} )
68+ package_required_dlls(${APP_NAME} DXC_REQUIRED ${DXC_REQUIRED} )
6369 endif ()
6470
6571 target_include_directories (${APP_NAME}
@@ -147,6 +153,18 @@ function(add_sample_app APP_NAME)
147153 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR} /${TUTORIAL_REL_PATH} /$<CONFIG>"
148154 LIBRARY DESTINATION "${CMAKE_INSTALL_BINDIR} /${TUTORIAL_REL_PATH} /$<CONFIG>"
149155 ARCHIVE DESTINATION "${CMAKE_INSTALL_BINDIR} /${TUTORIAL_REL_PATH} /$<CONFIG>" )
156+
157+ if (DXC_REQUIRED)
158+ if (D3D12_SUPPORTED AND DXC_COMPILER_PATH AND DXIL_SIGNER_PATH)
159+ install (FILES ${DXC_COMPILER_PATH} ${DXIL_SIGNER_PATH}
160+ DESTINATION "${CMAKE_INSTALL_BINDIR} /${TUTORIAL_REL_PATH} /$<CONFIG>" )
161+ endif ()
162+ if (VULKAN_SUPPORTED AND DILIGENT_DXCOMPILER_FOR_SPIRV_PATH AND EXISTS ${DILIGENT_DXCOMPILER_FOR_SPIRV_PATH} )
163+ install (FILES ${DILIGENT_DXCOMPILER_FOR_SPIRV_PATH}
164+ DESTINATION "${CMAKE_INSTALL_BINDIR} /${TUTORIAL_REL_PATH} /$<CONFIG>"
165+ RENAME spv_dxcompiler.dll)
166+ endif ()
167+ endif ()
150168 endif ()
151169
152170 if (PLATFORM_LINUX)
0 commit comments