You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/chalk/CMakeL10n.txt

113 lines
3.8 KiB

#################################################
#####
##### 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( )