diff --git a/cmake/KF5I18NMacros.cmake b/cmake/KF5I18NMacros.cmake --- a/cmake/KF5I18NMacros.cmake +++ b/cmake/KF5I18NMacros.cmake @@ -123,6 +123,8 @@ if (NOT TARGET pofiles) add_custom_target(pofiles) + endif() + if (NOT TARGET tsfiles) add_custom_target(tsfiles) endif() add_dependencies(pofiles pofiles-${pathmd5}) @@ -132,7 +134,49 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dirname} DESTINATION ${destname}) endfunction() -function(ki18n_install_ts_files _lang) - message(AUTHOR_WARNING "KI18N_INSTALL_TS_FILES is deprecated!") - ki18n_install(${_lang}) +#install the scripts for a given language in the target folder +#usage: KI18N_INSTALL_TS_FILES("ja" ${scripts_dir}) +function(KI18N_INSTALL_TS_FILES lang scripts_dir) + file(GLOB_RECURSE ts_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${scripts_dir}/*) + set(pmapc_files) + foreach(ts_file ${ts_files}) + string(REGEX MATCH "\\.svn/" in_svn ${ts_file}) + if(NOT in_svn) + # If ts_file is "path/to/foo/bar.js" + # We want subpath to contain "foo" + get_filename_component(subpath ${ts_file} DIRECTORY) + get_filename_component(subpath ${subpath} NAME) + install(FILES ${ts_file} + DESTINATION ${LOCALE_INSTALL_DIR}/${lang}/LC_SCRIPTS/${subpath}) + # If current file is a pmap, also install the compiled version. + get_filename_component(ts_ext ${ts_file} EXT) + if(ts_ext STREQUAL ".pmap") + set(pmap_file ${ts_file}) + get_filename_component(pmap_basename ${ts_file} NAME) + set(pmapc_basename "${pmap_basename}c") + set(pmapc_file "${lang}-${subpath}-${pmapc_basename}") + add_custom_command(OUTPUT ${pmapc_file} + COMMAND ${PYTHON_EXECUTABLE} + ARGS + -B + ${_ki18n_pmap_compile_script} + ${CMAKE_CURRENT_SOURCE_DIR}/${pmap_file} + ${pmapc_file} + DEPENDS ${pmap_file}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pmapc_file} + DESTINATION ${LOCALE_INSTALL_DIR}/${lang}/LC_SCRIPTS/${subpath} + RENAME ${pmapc_basename}) + list(APPEND pmapc_files ${pmapc_file}) + endif() + endif() + endforeach() + if(pmapc_files) + if(NOT TARGET pmapfiles) + add_custom_target(pmapfiles) + endif() + set(pmapc_target "pmapfiles-${lang}") + string(REPLACE "@" "_" pmapc_target ${pmapc_target}) + add_custom_target(${pmapc_target} ALL DEPENDS ${pmapc_files}) + add_dependencies(pmapfiles ${pmapc_target}) + endif() endfunction()