blob: c82289f83e941ffac63d172fac5fbfe619934902 (
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
#################################################
#####
##### from_hex( HEX DEC )
#####
function( from_hex HEX DEC )
string(SUBSTRING "${HEX}" 2 -1 HEX)
string(TOUPPER "${HEX}" HEX)
set(_res 0)
string(LENGTH "${HEX}" _strlen)
while(_strlen GREATER 0)
math(EXPR _res "${_res} * 16")
string(SUBSTRING "${HEX}" 0 1 NIBBLE)
string(SUBSTRING "${HEX}" 1 -1 HEX)
if(NIBBLE STREQUAL "A")
math(EXPR _res "${_res} + 10")
elseif(NIBBLE STREQUAL "B")
math(EXPR _res "${_res} + 11")
elseif(NIBBLE STREQUAL "C")
math(EXPR _res "${_res} + 12")
elseif(NIBBLE STREQUAL "D")
math(EXPR _res "${_res} + 13")
elseif(NIBBLE STREQUAL "E")
math(EXPR _res "${_res} + 14")
elseif(NIBBLE STREQUAL "F")
math(EXPR _res "${_res} + 15")
else()
math(EXPR _res "${_res} + ${NIBBLE}")
endif()
string(LENGTH "${HEX}" _strlen)
endwhile()
set(${DEC} ${_res} PARENT_SCOPE)
endfunction()
##### prepare strings from data files ###########
file( GLOB_RECURSE _chalk_data_files
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/data/*.ggr
${CMAKE_CURRENT_SOURCE_DIR}/data/*.gpl
${CMAKE_CURRENT_SOURCE_DIR}/data/*.gih
${CMAKE_CURRENT_SOURCE_DIR}/data/*.gbr
${CMAKE_CURRENT_SOURCE_DIR}/data/*.pat
)
list( SORT _chalk_data_files )
unset( _chalk_data_l10n )
foreach( _chalk_file ${_chalk_data_files} )
if( "${_chalk_file}" MATCHES "\\.(ggr|gpl)" )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file} _file_data )
string( REGEX REPLACE "(^|\n)Name: ([^\n]+).*" "\\1i18n(\"\\2\");\\n" _file_l10n "${_file_data}" )
file( WRITE ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}.tde_l10n "${_file_l10n}" )
endif( )
if( "${_chalk_file}" MATCHES "\\.gih" )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file} _file_data )
string( REGEX REPLACE "^([^\n]+).*" "i18n(\"\\1\");\\n" _file_l10n "${_file_data}" )
file( WRITE ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}.tde_l10n "${_file_l10n}" )
endif( )
if( "${_chalk_file}" MATCHES "\\.gbr" )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}
_file_head LIMIT 4 HEX )
from_hex( "0x${_file_head}" _file_head_size )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}
_file_head LIMIT 4 OFFSET 4 HEX )
from_hex( "0x${_file_head}" _file_head_version )
if( "${_file_head_version}" EQUAL "1" )
math( EXPR _file_head_len "${_file_head_size} - 21" )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}
_file_head LIMIT ${_file_head_len} OFFSET 20 )
else( )
math( EXPR _file_head_len "${_file_head_size} - 29" )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}
_file_head LIMIT ${_file_head_len} OFFSET 28 )
endif( )
string( STRIP "${_file_head}" _file_head )
file( WRITE ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}.tde_l10n
"i18n(\"${_file_head}\");\n" )
endif( )
if( "${_chalk_file}" MATCHES "\\.pat" )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}
_file_head LIMIT 4 HEX )
from_hex( "0x${_file_head}" _file_head_size )
math( EXPR _file_head_len "${_file_head_size} - 25" )
file( READ ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}
_file_head LIMIT ${_file_head_len} OFFSET 24 )
string( STRIP "${_file_head}" _file_head )
file( WRITE ${CMAKE_CURRENT_SOURCE_DIR}/${_chalk_file}.tde_l10n
"i18n(\"${_file_head}\");\n" )
endif( )
list( APPEND _chalk_data_l10n "${_chalk_file}.tde_l10n" )
endforeach( )
##### create translation templates ##############
tde_l10n_create_template(
CATALOG "chalk"
SOURCES
${_chalk_data_l10n}
"."
)
tde_l10n_auto_add_subdirectories( )
|