Skip to content

Commit 16019ca

Browse files
committed
CMake: use PLATFORM_* defines via ANDROID, fix glfw condition, make slangc optional per review
1 parent cdb01db commit 16019ca

File tree

1 file changed

+23
-19
lines changed

1 file changed

+23
-19
lines changed

attachments/simple_engine/CMakeLists.txt

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -66,24 +66,28 @@ endif()
6666
# Find Slang shaders
6767
file(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
8993
set(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)
136140
endif()
137141

0 commit comments

Comments
 (0)