fix(cmake): glslc opcional si els headers SPV ja estan commiteats al repo
This commit is contained in:
+12
-6
@@ -135,9 +135,8 @@ add_dependencies(${PROJECT_NAME} resource_pack)
|
||||
|
||||
# --- COMPILACIÓ DE SHADERS GLSL → SPIR-V (headers C++ embedits) ---
|
||||
# Compila els shaders .glsl a SPIR-V i els converteix en headers C++ embedits
|
||||
# (source/core/rendering/gpu/spv/*.h). Aquests headers es commiteen al repo:
|
||||
# en macOS no cal glslc (els headers ja existeixen). En Linux/Windows glslc
|
||||
# és obligatori per regenerar els headers en cada canvi del GLSL.
|
||||
# (source/core/rendering/gpu/spv/*.h). Aquests headers es commiteen al repo,
|
||||
# així que glslc només és necessari quan canvien els .glsl o falten headers.
|
||||
#
|
||||
# Per a macOS hi ha a més els headers MSL escrits a mà a source/core/rendering/gpu/msl/.
|
||||
set(SHADERS_DIR "${CMAKE_SOURCE_DIR}/shaders")
|
||||
@@ -156,6 +155,13 @@ set(ALL_SHADER_SOURCES
|
||||
"${SHADERS_DIR}/postfx.frag.glsl"
|
||||
"${SHADERS_DIR}/bloom.frag.glsl"
|
||||
)
|
||||
set(ALL_SHADER_HEADERS_PRESENT TRUE)
|
||||
foreach(_spv_header IN LISTS ALL_SHADER_HEADERS)
|
||||
if(NOT EXISTS "${_spv_header}")
|
||||
set(ALL_SHADER_HEADERS_PRESENT FALSE)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
find_program(GLSLC_EXE NAMES glslc HINTS ${Vulkan_GLSLC_EXECUTABLE})
|
||||
if(GLSLC_EXE)
|
||||
add_custom_command(
|
||||
@@ -172,10 +178,10 @@ if(GLSLC_EXE)
|
||||
add_custom_target(shaders DEPENDS ${ALL_SHADER_HEADERS})
|
||||
add_dependencies(${PROJECT_NAME} shaders)
|
||||
message(STATUS "Shaders: glslc trobat (${GLSLC_EXE}); headers SPV es regeneraran si canvia el GLSL")
|
||||
elseif(APPLE)
|
||||
message(STATUS "Shaders: glslc no trobat en macOS — s'usaran els headers SPV ja commiteats")
|
||||
elseif(ALL_SHADER_HEADERS_PRESENT)
|
||||
message(STATUS "Shaders: glslc no trobat — s'usaran els headers SPV ja commiteats al repo")
|
||||
else()
|
||||
message(FATAL_ERROR "glslc no trobat: instal·la 'shaderc' o 'vulkan-sdk' per compilar shaders SPIR-V (obligatori a Linux/Windows)")
|
||||
message(FATAL_ERROR "glslc no trobat i falten headers SPV: instal·la 'shaderc' o 'vulkan-sdk' per generar-los")
|
||||
endif()
|
||||
|
||||
# --- STATIC ANALYSIS / FORMAT TARGETS ---
|
||||
|
||||
Reference in New Issue
Block a user