aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleix Pol <aleixpol@kde.org>2017-04-08 16:05:41 +0200
committerAleix Pol <aleixpol@kde.org>2017-04-10 15:01:16 +0200
commit16aabe1c24b5471d4dc6eb04ed6d0b654e40996d (patch)
tree51350303d52343a90b47111df2634c3b09f55cd1
parent3d1d436da60a32e0ab5bec3e09173c4f865ec3f6 (diff)
downloadextra-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.cmake19
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/KDEFetchTranslations/CMakeLists.txt27
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()