afegida compilació de shaders y detecció en data/ per a reconstruir resources.pack
This commit is contained in:
@@ -117,9 +117,39 @@ set(DEBUG_SOURCES
|
||||
find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
|
||||
message(STATUS "SDL3 encontrado: ${SDL3_INCLUDE_DIRS}")
|
||||
|
||||
# --- SHADER COMPILATION ---
|
||||
find_program(GLSLC_EXE NAMES glslc)
|
||||
|
||||
set(SHADER_VERT_SRC "${CMAKE_SOURCE_DIR}/data/shaders/postfx.vert")
|
||||
set(SHADER_FRAG_SRC "${CMAKE_SOURCE_DIR}/data/shaders/postfx.frag")
|
||||
set(SHADER_VERT_H "${CMAKE_SOURCE_DIR}/source/core/rendering/sdl3gpu/postfx_vert_spv.h")
|
||||
set(SHADER_FRAG_H "${CMAKE_SOURCE_DIR}/source/core/rendering/sdl3gpu/postfx_frag_spv.h")
|
||||
|
||||
if(GLSLC_EXE)
|
||||
add_custom_command(
|
||||
OUTPUT "${SHADER_VERT_H}" "${SHADER_FRAG_H}"
|
||||
COMMAND "${CMAKE_SOURCE_DIR}/tools/shaders/compile_spirv.sh"
|
||||
DEPENDS "${SHADER_VERT_SRC}" "${SHADER_FRAG_SRC}"
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
COMMENT "Compilando shaders SPIR-V..."
|
||||
)
|
||||
add_custom_target(shaders DEPENDS "${SHADER_VERT_H}" "${SHADER_FRAG_H}")
|
||||
message(STATUS "glslc encontrado: shaders se compilarán automáticamente")
|
||||
else()
|
||||
message(STATUS "glslc no encontrado - usando headers SPIR-V precompilados")
|
||||
if(NOT EXISTS "${SHADER_VERT_H}" OR NOT EXISTS "${SHADER_FRAG_H}")
|
||||
message(WARNING "glslc no disponible y headers SPIR-V no encontrados. Ejecuta tools/shaders/compile_spirv.sh manualmente.")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# --- 2. AÑADIR EJECUTABLE ---
|
||||
add_executable(${PROJECT_NAME} ${APP_SOURCES} ${RENDERING_SOURCES})
|
||||
|
||||
# Shaders deben compilarse antes que el ejecutable (si glslc disponible)
|
||||
if(GLSLC_EXE)
|
||||
add_dependencies(${PROJECT_NAME} shaders)
|
||||
endif()
|
||||
|
||||
# Añadir fuentes de debug solo en modo Debug
|
||||
target_sources(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:${DEBUG_SOURCES}>)
|
||||
|
||||
@@ -233,11 +263,17 @@ set_target_properties(pack_tool PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/tools/pack_resources
|
||||
)
|
||||
|
||||
add_custom_target(pack
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tools/pack_resources/pack_tool
|
||||
${CMAKE_SOURCE_DIR}/data
|
||||
${CMAKE_SOURCE_DIR}/resources.pack
|
||||
DEPENDS pack_tool
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
file(GLOB_RECURSE DATA_FILES "${CMAKE_SOURCE_DIR}/data/*")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_SOURCE_DIR}/resources.pack"
|
||||
COMMAND $<TARGET_FILE:pack_tool>
|
||||
"${CMAKE_SOURCE_DIR}/data"
|
||||
"${CMAKE_SOURCE_DIR}/resources.pack"
|
||||
DEPENDS pack_tool ${DATA_FILES}
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
COMMENT "Generando resources.pack desde data/..."
|
||||
)
|
||||
|
||||
add_custom_target(pack DEPENDS "${CMAKE_SOURCE_DIR}/resources.pack")
|
||||
add_dependencies(${PROJECT_NAME} pack)
|
||||
|
||||
Reference in New Issue
Block a user