1
0

xxd.cmake 641 B

12345678910111213141516
  1. # CMake equivalent of `xxd -i ${INPUT} ${OUTPUT}`
  2. # Usage: cmake -DINPUT=tools/server/public/index.html -DOUTPUT=tools/server/index.html.hpp -P scripts/xxd.cmake
  3. SET(INPUT "" CACHE STRING "Input File")
  4. SET(OUTPUT "" CACHE STRING "Output File")
  5. get_filename_component(filename "${INPUT}" NAME)
  6. string(REGEX REPLACE "\\.|-" "_" name "${filename}")
  7. file(READ "${INPUT}" hex_data HEX)
  8. string(REGEX REPLACE "([0-9a-f][0-9a-f])" "0x\\1," hex_sequence "${hex_data}")
  9. string(LENGTH ${hex_data} hex_len)
  10. math(EXPR len "${hex_len} / 2")
  11. file(WRITE "${OUTPUT}" "unsigned char ${name}[] = {${hex_sequence}};\nunsigned int ${name}_len = ${len};\n")