From 77eab970fde3ecbc259d6deff61fce4f360b05a7 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Mon, 3 Jul 2017 17:30:21 +0200 Subject: Make sure that the tsfiles target is generated Summary: I'm not sure how it's possible that pofiles is defined but tsfiles isn't, but this does fix the issue reported by Luigi: CMake Error at /usr/lib64/cmake/KF5I18n/KF5I18NMacros.cmake:129 (add_dependencies): Cannot add target-level dependencies to non-existent target "tsfiles". Test Plan: Built `svn+ssh://svn@svn.kde.org/home/kde/trunk/l10n-kf5/fr` by doing `./scripts/autogen.sh fr; mkdir build; cd build; cmake ../fr` Reviewers: #frameworks, ltoscano, lueck, aacid Reviewed By: ltoscano Subscribers: aacid, asturmlechner Tags: #frameworks Differential Revision: https://phabricator.kde.org/D6331 --- cmake/KF5I18NMacros.cmake | 50 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/cmake/KF5I18NMacros.cmake b/cmake/KF5I18NMacros.cmake index 022de52..6168b2a 100644 --- a/cmake/KF5I18NMacros.cmake +++ b/cmake/KF5I18NMacros.cmake @@ -123,6 +123,8 @@ function(KI18N_INSTALL podir) 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 @@ function(KI18N_INSTALL podir) 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() -- cgit v0.11.2