diff options
author | Aleix Pol <aleixpol@kde.org> | 2018-08-03 00:44:59 +0200 |
---|---|---|
committer | Aleix Pol <aleixpol@kde.org> | 2018-08-06 16:22:28 +0200 |
commit | 02881711cfce2281d35984469fb361120824bfb3 (patch) | |
tree | dba6edc82e847612af51bf86036e95cd55f1f6fc /kde-modules | |
parent | e5077dd490dbca798e06607fa0ddaec633a7e6c3 (diff) | |
download | extra-cmake-modules-02881711cfce2281d35984469fb361120824bfb3.tar.gz extra-cmake-modules-02881711cfce2281d35984469fb361120824bfb3.tar.bz2 |
Make it possible for ECM to detect po files at configure time
Summary:
ECMPoQmTools will need to have the translations downloaded at configure time instead of on build time, otherwise it needs an awkward second configure.
To that end we introduce a KDE_L10N_SYNC_TRANSLATIONS variable that allows it to do so.
ECMPoTools will download the translations in the build directory, because cmake shouldn't touch the sources. Have it check the build directory too when the macro is called.
Test Plan: Built analitza translations.
Reviewers: #frameworks, cgiboudeaux
Reviewed By: cgiboudeaux
Subscribers: cgiboudeaux, kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D14569
Diffstat (limited to 'kde-modules')
-rw-r--r-- | kde-modules/KDECMakeSettings.cmake | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/kde-modules/KDECMakeSettings.cmake b/kde-modules/KDECMakeSettings.cmake index 8029ed90..2d20c60d 100644 --- a/kde-modules/KDECMakeSettings.cmake +++ b/kde-modules/KDECMakeSettings.cmake @@ -91,6 +91,13 @@ # should be downloaded when building the project. # # Since 5.34.0 +# +# ``KDE_L10N_SYNC_TRANSLATIONS`` (OFF by default) will download the translations at configuration +# time instead of build time. +# +# Since 5.50.0 +# +# #============================================================================= # Copyright 2014 Alex Merry <alex.merry@kde.org> @@ -312,9 +319,10 @@ endfunction() if(NOT EXISTS ${CMAKE_SOURCE_DIR}/po AND NOT TARGET fetch-translations) option(KDE_L10N_AUTO_TRANSLATIONS "Automatically 'make fetch-translations`" OFF) + option(KDE_L10N_SYNC_TRANSLATIONS "Fetch translations when KDECMakeSettings.cmake is processed." OFF) set(KDE_L10N_BRANCH "trunk" CACHE STRING "Branch from l10n.kde.org to fetch from: trunk | stable | lts | trunk_kde4 | stable_kde4") - if(KDE_L10N_AUTO_TRANSLATIONS) + if(KDE_L10N_AUTO_TRANSLATIONS AND NOT KDE_L10N_SYNC_TRANSLATIONS) set(_EXTRA_ARGS "ALL") else() set(_EXTRA_ARGS) @@ -323,9 +331,12 @@ if(NOT EXISTS ${CMAKE_SOURCE_DIR}/po AND NOT TARGET fetch-translations) set(_reponame "") _repository_name(_reponame "${CMAKE_SOURCE_DIR}") + set(releaseme_clone_commands + COMMAND git clone --depth 1 https://anongit.kde.org/releaseme.git + ) add_custom_command( OUTPUT "${CMAKE_BINARY_DIR}/releaseme" - COMMAND git clone --depth 1 "https://anongit.kde.org/releaseme.git" + ${releaseme_clone_commands} COMMENT "Fetching releaseme scripts to download translations..." ) @@ -336,18 +347,27 @@ if(NOT EXISTS ${CMAKE_SOURCE_DIR}/po AND NOT TARGET fetch-translations) set(extra BYPRODUCTS ${_l10n_po_dir} ${_l10n_poqm_dir}) endif() - add_custom_target(fetch-translations ${_EXTRA_ARGS} - COMMENT "Downloading translations for ${_reponame} branch ${KDE_L10N_BRANCH}..." - COMMAND git -C "${CMAKE_BINARY_DIR}/releaseme" pull - COMMAND cmake -E remove_directory ${_l10n_po_dir} - COMMAND cmake -E remove_directory ${_l10n_poqm_dir} + set(fetch_commands COMMAND ruby "${CMAKE_BINARY_DIR}/releaseme/fetchpo.rb" --origin ${KDE_L10N_BRANCH} --project "${_reponame}" --output-dir "${_l10n_po_dir}" --output-poqm-dir "${_l10n_poqm_dir}" "${CMAKE_CURRENT_SOURCE_DIR}" + ) + + add_custom_target(fetch-translations ${_EXTRA_ARGS} + COMMENT "Downloading translations for ${_reponame} branch ${KDE_L10N_BRANCH}..." + COMMAND git -C "${CMAKE_BINARY_DIR}/releaseme" pull + COMMAND cmake -E remove_directory ${_l10n_po_dir} + COMMAND cmake -E remove_directory ${_l10n_poqm_dir} + ${fetch_commands} ${extra} DEPENDS "${CMAKE_BINARY_DIR}/releaseme" ) + + if (KDE_L10N_SYNC_TRANSLATIONS AND (NOT EXISTS ${_l10n_po_dir} OR NOT EXISTS ${_l10n_poqm_dir})) + execute_process(${releaseme_clone_commands}) + execute_process(${fetch_commands}) + endif() endif() |