Files
vibe3_physics/cmake/spv_to_header.cmake
Sergio Valor d76c7f75a2 fix(cmake): afegir cmake/spv_to_header.cmake per convertir SPIR-V a headers C++
El fitxer era referenciat per CMakeLists.txt però mai no s'havia creat,
causant error de build immediat. Genera arrays uint8_t embeguts a partir
dels binaris .spv compilats per glslc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 11:36:52 +01:00

21 lines
763 B
CMake

# Converts a SPIR-V binary to a C++ header with an embedded uint8_t array.
# cmake -DINPUT=<spv> -DOUTPUT=<h> -DVAR_NAME=<name> -P spv_to_header.cmake
if(NOT DEFINED INPUT OR NOT DEFINED OUTPUT OR NOT DEFINED VAR_NAME)
message(FATAL_ERROR "Usage: -DINPUT=x.spv -DOUTPUT=x.h -DVAR_NAME=kname -P spv_to_header.cmake")
endif()
file(READ "${INPUT}" raw_hex HEX)
string(REGEX REPLACE "([0-9a-fA-F][0-9a-fA-F])" "0x\\1," hex_bytes "${raw_hex}")
string(REGEX REPLACE ",$" "" hex_bytes "${hex_bytes}")
string(LENGTH "${raw_hex}" hex_len)
math(EXPR byte_count "${hex_len} / 2")
file(WRITE "${OUTPUT}"
"#pragma once
#include <cstdint>
#include <cstddef>
static const uint8_t ${VAR_NAME}[] = { ${hex_bytes} };
static const size_t ${VAR_NAME}_size = ${byte_count};
")