diff options
author | Aleix Pol <aleixpol@kde.org> | 2017-04-08 16:05:41 +0200 |
---|---|---|
committer | Aleix Pol <aleixpol@kde.org> | 2017-04-10 15:01:16 +0200 |
commit | 16aabe1c24b5471d4dc6eb04ed6d0b654e40996d (patch) | |
tree | 51350303d52343a90b47111df2634c3b09f55cd1 | |
parent | 3d1d436da60a32e0ab5bec3e09173c4f865ec3f6 (diff) | |
download | extra-cmake-modules-16aabe1c24b5471d4dc6eb04ed6d0b654e40996d.tar.gz extra-cmake-modules-16aabe1c24b5471d4dc6eb04ed6d0b654e40996d.tar.bz2 |
Add a test for _repository_name() a function added for fetch-translations
Summary: It turns out it's more complex than it looks, it's always better to have tests.
Reviewers: sitter, aacid
Reviewed By: sitter
Subscribers: #frameworks, #build_system
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D5352
-rw-r--r-- | kde-modules/KDECMakeSettings.cmake | 19 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/KDEFetchTranslations/CMakeLists.txt | 27 |
3 files changed, 38 insertions, 9 deletions
diff --git a/kde-modules/KDECMakeSettings.cmake b/kde-modules/KDECMakeSettings.cmake index e5f2ca6b..d78b02ab 100644 --- a/kde-modules/KDECMakeSettings.cmake +++ b/kde-modules/KDECMakeSettings.cmake @@ -284,21 +284,21 @@ endif() ################################################################### # Download translations -function(_repository_name reponame) +function(_repository_name reponame dir) execute_process(COMMAND git config --get remote.origin.url OUTPUT_VARIABLE giturl RESULT_VARIABLE exitCode - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - ) + WORKING_DIRECTORY "${dir}") if(exitCode EQUAL 0) - string(REGEX MATCHALL ".+[:\\/]([A-Za-z\\-\\d]+)(.git)?\\s*" "" ${giturl}) - set(${reponame} ${CMAKE_MATCH_1} PARENT_SCOPE) + string(REGEX MATCHALL ".+[:\\/]([-A-Za-z\\d]+)(.git)?\\s*" "" ${giturl}) + set(${reponame} ${CMAKE_MATCH_1}) endif() if(NOT ${reponame}) - set(${reponame} ${CMAKE_PROJECT_NAME} PARENT_SCOPE) + set(${reponame} ${CMAKE_PROJECT_NAME}) endif() + set(${reponame} ${${reponame}} PARENT_SCOPE) endfunction() if(NOT EXISTS ${CMAKE_SOURCE_DIR}/po AND NOT TARGET fetch-translations) @@ -311,7 +311,8 @@ if(NOT EXISTS ${CMAKE_SOURCE_DIR}/po AND NOT TARGET fetch-translations) set(_EXTRA_ARGS) endif() - _repository_name(reponame) + set(_reponame "") + _repository_name(_reponame "${CMAKE_SOURCE_DIR}") add_custom_command( OUTPUT "${CMAKE_BINARY_DIR}/releaseme" @@ -324,10 +325,10 @@ if(NOT EXISTS ${CMAKE_SOURCE_DIR}/po AND NOT TARGET fetch-translations) endif() add_custom_target(fetch-translations ${_EXTRA_ARGS} - COMMENT "Downloading translations for ${reponame} branch ${KDE_L10N_BRANCH}..." + COMMENT "Downloading translations for ${_reponame} branch ${KDE_L10N_BRANCH}..." COMMAND git -C "${CMAKE_BINARY_DIR}/releaseme" pull COMMAND cmake -E remove_directory ${CMAKE_BINARY_DIR}/po - COMMAND ruby "${CMAKE_BINARY_DIR}/releaseme/fetchpo.rb" --origin ${KDE_L10N_BRANCH} --project "${reponame}" "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/po" + COMMAND ruby "${CMAKE_BINARY_DIR}/releaseme/fetchpo.rb" --origin ${KDE_L10N_BRANCH} --project "${_reponame}" "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_BINARY_DIR}/po" ${extra} DEPENDS "${CMAKE_BINARY_DIR}/releaseme" ) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 88975499..965defad 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -112,6 +112,7 @@ endif() add_test_macro(ExecuteCoreModules dummy) add_test_macro(ExecuteKDEModules dummy) +add_test_macro(KDEFetchTranslations dummy) add_test_macro(KDEInstallDirsTest.relative_or_absolute dummy) add_test_variant(KDEInstallDirsTest.vars_in_sync_no_args diff --git a/tests/KDEFetchTranslations/CMakeLists.txt b/tests/KDEFetchTranslations/CMakeLists.txt new file mode 100644 index 00000000..b5f4083b --- /dev/null +++ b/tests/KDEFetchTranslations/CMakeLists.txt @@ -0,0 +1,27 @@ +project(KDEFetchTranslations) +cmake_minimum_required(VERSION 2.8.12) + +# order is important (install dirs before cmake settings)! +set(all_kde_modules + KDEInstallDirs + KDECMakeSettings +) + +set(ECM_KDE_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../kde-modules) +set(ECM_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../modules) +set(CMAKE_MODULE_PATH "${ECM_KDE_MODULE_DIR}" "${ECM_MODULE_DIR}") + +foreach(module ${all_kde_modules}) + message(STATUS "module: ${module}") + include("${module}") +endforeach() + +_repository_name(name "${CMAKE_CURRENT_SOURCE_DIR}/../../") +if (NOT ${name} STREQUAL "extra-cmake-modules") + message(FATAL_ERROR "Wrong repository name: ${name}, should be 'extra-cmake-modules'") +endif() +add_executable(dummy ../ExecuteKDEModules/main.c) + +if(NOT TARGET fetch-translations) + message(FATAL_ERROR "should have a fetch-translations target") +endif() |