Skip to content

Commit 1dc7b0c

Browse files
committed
revert back to the simpler method that worked.
1 parent 422555b commit 1dc7b0c

File tree

1 file changed

+18
-35
lines changed

1 file changed

+18
-35
lines changed

attachments/CMakeLists.txt

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -64,60 +64,43 @@ find_program(SLANGC_EXECUTABLE slangc HINTS $ENV{VULKAN_SDK}/bin REQUIRED)
6464
function (add_shaders_target TARGET)
6565
cmake_parse_arguments ("SHADER" "" "CHAPTER_NAME" "SOURCES" ${ARGN})
6666
set (SHADERS_DIR ${SHADER_CHAPTER_NAME}/shaders)
67-
set (SHADERS_FULL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${SHADERS_DIR})
6867
add_custom_command (
69-
OUTPUT ${SHADERS_FULL_DIR}
70-
COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADERS_FULL_DIR}
68+
OUTPUT ${SHADERS_DIR}
69+
COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADERS_DIR}
7170
)
72-
# Create a list to store the output files
73-
set(SHADER_OUTPUTS "")
74-
75-
# Create separate commands for each shader file to ensure they are compiled to the correct location
76-
foreach(SHADER_SOURCE ${SHADER_SOURCES})
77-
get_filename_component(SHADER_NAME ${SHADER_SOURCE} NAME_WE)
78-
get_filename_component(SHADER_EXT ${SHADER_SOURCE} EXT)
79-
string(REPLACE "." "" SHADER_EXT ${SHADER_EXT})
80-
81-
# Add the output file to the list
82-
list(APPEND SHADER_OUTPUTS ${SHADERS_FULL_DIR}/${SHADER_EXT}.spv)
83-
84-
add_custom_command(
85-
OUTPUT ${SHADERS_FULL_DIR}/${SHADER_EXT}.spv
86-
COMMAND glslang::validator
87-
ARGS --target-env vulkan1.0 ${SHADER_SOURCE} --quiet -o ${SHADERS_FULL_DIR}/${SHADER_EXT}.spv
88-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
89-
DEPENDS ${SHADERS_FULL_DIR} ${SHADER_SOURCE}
90-
COMMENT "Compiling ${SHADER_EXT} Shader"
91-
VERBATIM
71+
add_custom_command (
72+
OUTPUT ${SHADERS_DIR}/frag.spv ${SHADERS_DIR}/vert.spv
73+
COMMAND glslang::validator
74+
ARGS --target-env vulkan1.0 ${SHADER_SOURCES} --quiet
75+
WORKING_DIRECTORY ${SHADERS_DIR}
76+
DEPENDS ${SHADERS_DIR} ${SHADER_SOURCES}
77+
COMMENT "Compiling Shaders"
78+
VERBATIM
9279
)
93-
endforeach()
94-
95-
# Create the custom target that depends on all output files
96-
add_custom_target (${TARGET} DEPENDS ${SHADER_OUTPUTS})
80+
add_custom_target (${TARGET} DEPENDS ${SHADERS_DIR}/frag.spv ${SHADERS_DIR}/vert.spv)
9781
endfunction ()
9882

9983
function (add_slang_shader_target TARGET)
10084
cmake_parse_arguments ("SHADER" "" "CHAPTER_NAME" "SOURCES" ${ARGN})
10185
set (SHADERS_DIR ${SHADER_CHAPTER_NAME}/shaders)
102-
set (SHADERS_FULL_DIR ${CMAKE_CURRENT_BINARY_DIR}/${SHADERS_DIR})
10386
file(GLOB HAS_COMPUTE ${CHAPTER_SHADER}.comp)
10487
set (ENTRY_POINTS -entry vertMain -entry fragMain)
10588
if(HAS_COMPUTE)
10689
list(APPEND ENTRY_POINTS -entry compMain)
10790
endif()
10891
add_custom_command (
109-
OUTPUT ${SHADERS_FULL_DIR}
110-
COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADERS_FULL_DIR}
92+
OUTPUT ${SHADERS_DIR}
93+
COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADERS_DIR}
11194
)
11295
add_custom_command (
113-
OUTPUT ${SHADERS_FULL_DIR}/slang.spv
114-
COMMAND ${CMAKE_COMMAND} -E make_directory ${SHADERS_FULL_DIR}
115-
COMMAND ${SLANGC_EXECUTABLE} ${SHADER_SOURCES} -target spirv -profile spirv_1_4 -emit-spirv-directly -fvk-use-entrypoint-name ${ENTRY_POINTS} -o ${CMAKE_CURRENT_BINARY_DIR}/${SHADERS_DIR}/slang.spv
116-
DEPENDS ${SHADER_SOURCES}
96+
OUTPUT ${SHADERS_DIR}/slang.spv
97+
COMMAND ${SLANGC_EXECUTABLE} ${SHADER_SOURCES} -target spirv -profile spirv_1_4 -emit-spirv-directly -fvk-use-entrypoint-name ${ENTRY_POINTS} -o slang.spv
98+
WORKING_DIRECTORY ${SHADERS_DIR}
99+
DEPENDS ${SHADERS_DIR} ${SHADER_SOURCES}
117100
COMMENT "Compiling Slang Shaders"
118101
VERBATIM
119102
)
120-
add_custom_target (${TARGET} DEPENDS ${SHADERS_FULL_DIR}/slang.spv)
103+
add_custom_target (${TARGET} DEPENDS ${SHADERS_DIR}/slang.spv)
121104
endfunction()
122105

123106
function (add_chapter CHAPTER_NAME)

0 commit comments

Comments
 (0)