summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.73.0/cmake/GenerateTokenNames.cmake
blob: 02a6241a9c798ced11edaf3856efc62ad1d2aa12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#
# Generate token_names.h from token_enum.h
#
# This script is meant to be executed with `cmake -P` from a custom command,
# and expects the variables `src_file` and `dst_file` to be set.
#

function(generate_token_names src_file dst_file)
  set(tokens "")

  file(READ "${src_file}" token_lines)
  string(REGEX REPLACE ";|\\[|\\]" " " token_lines "${token_lines}")
  string(REPLACE "\n" ";" token_lines "${token_lines}")

  foreach(token_line ${token_lines})
    if(${token_line} MATCHES "^[ \t]*CT_([A-Z0-9_]+),.*$")
      list(APPEND tokens "   \"${CMAKE_MATCH_1}\",\n")
    endif()
  endforeach()

  file(WRITE "${dst_file}"
    "/*\n"
    " * Generated by CMake\n"
    " */\n"
    "#ifndef TOKEN_NAMES_H_INCLUDED\n"
    "#define TOKEN_NAMES_H_INCLUDED\n"
    "\n"
    "const char *token_names[] =\n"
    "{\n"
    ${tokens}
    "};\n"
    "\n"
    "#endif /* TOKEN_NAMES_H_INCLUDED */\n"
  )
endfunction()

generate_token_names("${src_file}" "${dst_file}")