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) ---
|
# --- COMPILACIÓ DE SHADERS GLSL → SPIR-V (headers C++ embedits) ---
|
||||||
# Compila els shaders .glsl a SPIR-V i els converteix en 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:
|
# (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
|
# així que glslc només és necessari quan canvien els .glsl o falten headers.
|
||||||
# és obligatori per regenerar els headers en cada canvi del GLSL.
|
|
||||||
#
|
#
|
||||||
# Per a macOS hi ha a més els headers MSL escrits a mà a source/core/rendering/gpu/msl/.
|
# 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")
|
set(SHADERS_DIR "${CMAKE_SOURCE_DIR}/shaders")
|
||||||
@@ -156,6 +155,13 @@ set(ALL_SHADER_SOURCES
|
|||||||
"${SHADERS_DIR}/postfx.frag.glsl"
|
"${SHADERS_DIR}/postfx.frag.glsl"
|
||||||
"${SHADERS_DIR}/bloom.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})
|
find_program(GLSLC_EXE NAMES glslc HINTS ${Vulkan_GLSLC_EXECUTABLE})
|
||||||
if(GLSLC_EXE)
|
if(GLSLC_EXE)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
@@ -172,10 +178,10 @@ if(GLSLC_EXE)
|
|||||||
add_custom_target(shaders DEPENDS ${ALL_SHADER_HEADERS})
|
add_custom_target(shaders DEPENDS ${ALL_SHADER_HEADERS})
|
||||||
add_dependencies(${PROJECT_NAME} shaders)
|
add_dependencies(${PROJECT_NAME} shaders)
|
||||||
message(STATUS "Shaders: glslc trobat (${GLSLC_EXE}); headers SPV es regeneraran si canvia el GLSL")
|
message(STATUS "Shaders: glslc trobat (${GLSLC_EXE}); headers SPV es regeneraran si canvia el GLSL")
|
||||||
elseif(APPLE)
|
elseif(ALL_SHADER_HEADERS_PRESENT)
|
||||||
message(STATUS "Shaders: glslc no trobat en macOS — s'usaran els headers SPV ja commiteats")
|
message(STATUS "Shaders: glslc no trobat — s'usaran els headers SPV ja commiteats al repo")
|
||||||
else()
|
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()
|
endif()
|
||||||
|
|
||||||
# --- STATIC ANALYSIS / FORMAT TARGETS ---
|
# --- STATIC ANALYSIS / FORMAT TARGETS ---
|
||||||
|
|||||||
Reference in New Issue
Block a user