Skip to content

Commit 1568f74

Browse files
Improved handling of DXC dlls (fix #95)
1 parent 7f35ac6 commit 1568f74

File tree

5 files changed

+28
-3
lines changed

5 files changed

+28
-3
lines changed

CMakeLists.txt

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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
3839
function(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)

Tutorials/Tutorial20_MeshShader/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,6 @@ add_sample_app(Tutorial20_MeshShader
1616
assets/structures.fxh
1717
ASSETS
1818
assets/DGLogo.png
19+
DXC_REQUIRED
20+
YES
1921
)

Tutorials/Tutorial21_RayTracing/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,6 @@ add_sample_app(Tutorial21_RayTracing
2828
assets/DGLogo2.png
2929
assets/DGLogo3.png
3030
assets/Ground.jpg
31+
DXC_REQUIRED
32+
YES
3133
)

Tutorials/Tutorial22_HybridRendering/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,6 @@ add_sample_app(Tutorial22_HybridRendering
2424
assets/DGLogo2.png
2525
assets/DGLogo3.png
2626
assets/Marble.jpg
27+
DXC_REQUIRED
28+
YES
2729
)

Tutorials/Tutorial24_VRS/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ add_sample_app(Tutorial24_VRS
4040
INCLUDES ${INCLUDE}
4141
SHADERS ${SHADERS}
4242
ASSETS ${ASSETS}
43+
DXC_REQUIRED YES
4344
)
4445

4546
if(NOT METAL_SUPPORTED)

0 commit comments

Comments
 (0)