@@ -18,6 +18,7 @@ option(DILIGENT_EMSCRIPTEN_INCLUDE_COI_SERVICE_WORKER "Include cross-origin isol
18
18
# SHADERS - List of shader files
19
19
# ASSETS - List of asset files
20
20
# IDE_FOLDER - Optional folder name for IDE
21
+ # DXC_REQUIRED - Indicates if DXC compiler is required for the sample (optional, default is OFF)
21
22
#
22
23
# Example:
23
24
#
@@ -38,9 +39,14 @@ option(DILIGENT_EMSCRIPTEN_INCLUDE_COI_SERVICE_WORKER "Include cross-origin isol
38
39
function (add_sample_app APP_NAME )
39
40
40
41
set (options )
41
- set (oneValueArgs IDE_FOLDER )
42
+ set (oneValueArgs IDE_FOLDER DXC_REQUIRED )
42
43
set (multiValueArgs SOURCES INCLUDES SHADERS ASSETS )
43
44
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 ()
44
50
45
51
set_source_files_properties (${arg_SHADERS} PROPERTIES VS_TOOL_OVERRIDE "None" )
46
52
set (ALL_ASSETS ${arg_ASSETS} ${arg_SHADERS} )
@@ -55,11 +61,11 @@ function(add_sample_app APP_NAME)
55
61
set_target_properties (${APP_NAME} PROPERTIES
56
62
VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR} /assets"
57
63
)
58
- copy_required_dlls (${APP_NAME} )
64
+ copy_required_dlls (${APP_NAME} DXC_REQUIRED ${DXC_REQUIRED} )
59
65
append_sample_base_win32_source (${APP_NAME} )
60
66
elseif (PLATFORM_UNIVERSAL_WINDOWS )
61
67
append_sample_base_uwp_source (${APP_NAME} )
62
- package_required_dlls (${APP_NAME} )
68
+ package_required_dlls (${APP_NAME} DXC_REQUIRED ${DXC_REQUIRED} )
63
69
endif ()
64
70
65
71
target_include_directories (${APP_NAME}
@@ -147,6 +153,18 @@ function(add_sample_app APP_NAME)
147
153
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR} /${TUTORIAL_REL_PATH} /$<CONFIG>"
148
154
LIBRARY DESTINATION "${CMAKE_INSTALL_BINDIR} /${TUTORIAL_REL_PATH} /$<CONFIG>"
149
155
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 ()
150
168
endif ()
151
169
152
170
if (PLATFORM_LINUX )
0 commit comments