@@ -66,24 +66,28 @@ endif()
6666# Find Slang shaders
6767file (GLOB SLANG_SHADER_SOURCES ${CMAKE_CURRENT_SOURCE_DIR} /shaders/*.slang)
6868
69- # Find slangc executable
70- find_program (SLANGC_EXECUTABLE slangc HINTS $ENV{VULKAN_SDK} /bin REQUIRED)
71-
72- # Compile Slang shaders using slangc
73- foreach (SHADER ${SLANG_SHADER_SOURCES} )
74- get_filename_component (SHADER_NAME ${SHADER} NAME )
75- get_filename_component (SHADER_NAME_WE ${SHADER_NAME} NAME_WE )
76- string (REGEX REPLACE "\. slang$" "" OUTPUT_NAME ${SHADER_NAME} )
77- add_custom_command (
78- OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /shaders/${OUTPUT_NAME} .spv
79- COMMAND ${SLANGC_EXECUTABLE} ${SHADER} -target spirv -profile spirv_1_4 -emit-spirv-directly -o ${CMAKE_CURRENT_BINARY_DIR} /shaders/${OUTPUT_NAME} .spv
80- DEPENDS ${SHADER}
81- COMMENT "Compiling Slang shader ${SHADER_NAME} with slangc"
82- )
83- list (APPEND SHADER_SPVS ${CMAKE_CURRENT_BINARY_DIR} /shaders/${OUTPUT_NAME} .spv)
84- endforeach ()
85-
86- add_custom_target (shaders DEPENDS ${SHADER_SPVS} )
69+ # Find slangc executable (optional)
70+ find_program (SLANGC_EXECUTABLE slangc HINTS $ENV{VULKAN_SDK} /bin)
71+
72+ # Compile Slang shaders using slangc if available
73+ if (SLANGC_EXECUTABLE)
74+ foreach (SHADER ${SLANG_SHADER_SOURCES} )
75+ get_filename_component (SHADER_NAME ${SHADER} NAME )
76+ get_filename_component (SHADER_NAME_WE ${SHADER_NAME} NAME_WE )
77+ string (REGEX REPLACE "\. slang$" "" OUTPUT_NAME ${SHADER_NAME} )
78+ add_custom_command (
79+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR} /shaders/${OUTPUT_NAME} .spv
80+ COMMAND ${SLANGC_EXECUTABLE} ${SHADER} -target spirv -profile spirv_1_4 -emit-spirv-directly -o ${CMAKE_CURRENT_BINARY_DIR} /shaders/${OUTPUT_NAME} .spv
81+ DEPENDS ${SHADER}
82+ COMMENT "Compiling Slang shader ${SHADER_NAME} with slangc"
83+ )
84+ list (APPEND SHADER_SPVS ${CMAKE_CURRENT_BINARY_DIR} /shaders/${OUTPUT_NAME} .spv)
85+ endforeach ()
86+ add_custom_target (shaders DEPENDS ${SHADER_SPVS} )
87+ else ()
88+ message (STATUS "slangc not found. Skipping shader compilation step." )
89+ add_custom_target (shaders)
90+ endif ()
8791
8892# Source files
8993set (SOURCES
@@ -131,7 +135,7 @@ target_link_libraries(SimpleEngine PRIVATE
131135 OpenAL::OpenAL
132136)
133137
134- if (NOT DEFINED ANDROID)
138+ if (NOT ANDROID)
135139 target_link_libraries (SimpleEngine PRIVATE glfw)
136140endif ()
137141
0 commit comments