From 69897ef36e0f8bf18e7260a16543932b04c01580 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 19 Oct 2016 11:09:00 +0200 Subject: [PATCH] feat(CMakeLists.txt): `check_qml` is executed before `update_translations` --- tests/CMakeLists.txt | 26 ++++++++++++++++++++++++++ tests/languages/CMakeLists.txt | 16 ---------------- tests/tools/check_qml | 2 +- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c8033fdeb..e1ffcac0c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -75,6 +75,30 @@ PREPEND(SOURCES "${CMAKE_SOURCE_DIR}/") PREPEND(HEADERS "${CMAKE_SOURCE_DIR}/") PREPEND(QRC_RESOURCES "${CMAKE_SOURCE_DIR}/") +# -------------------------------------------------------------------- +# Compute QML files list. +# -------------------------------------------------------------------- + +set(QML_SOURCES) +file(STRINGS ${QRC_RESOURCES} QRC_RESOURCES_CONTENT) +foreach (line ${QRC_RESOURCES_CONTENT}) + set(result) + string(REGEX REPLACE + "^[ \t]*<[ \t]*file[ \t]*>[ \t]*(.+\\.qml)[ \t]*<[ \t]*/[ \t]*file[ \t]*>[ \t]*$" + "\\1" + result + ${line}) + string(REGEX MATCH "qml$" isQml ${result}) + if (NOT ${isQml} STREQUAL "") + list(APPEND QML_SOURCES "${CMAKE_SOURCE_DIR}/${result}") + endif () +endforeach () + +add_custom_target( + check_qml DEPENDS ${QML_SOURCES} + COMMAND "${CMAKE_SOURCE_DIR}/tools/check_qml" +) + # -------------------------------------------------------------------- # Init git hooks. # -------------------------------------------------------------------- @@ -98,6 +122,8 @@ list(APPEND QRC_RESOURCES "${CMAKE_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FIL qt5_add_resources(RESOURCES ${QRC_RESOURCES}) # Build. +# Note: `update_translations` is provided by `languages/CMakeLists.txt`. add_executable(${LINPHONE_EXEC} ${SOURCES} ${HEADERS} ${RESOURCES}) add_dependencies(${LINPHONE_EXEC} update_translations) +add_dependencies(update_translations check_qml) target_link_libraries(${LINPHONE_EXEC} ${LIBS}) diff --git a/tests/languages/CMakeLists.txt b/tests/languages/CMakeLists.txt index 32fb153d5..b18eb1763 100644 --- a/tests/languages/CMakeLists.txt +++ b/tests/languages/CMakeLists.txt @@ -24,22 +24,6 @@ set(I18N_CONTENT "${I18N_CONTENT} \n\n") file(WRITE "${CMAKE_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FILENAME}" "${I18N_CONTENT}") -# Compute QML files list. -set(QML_SOURCES) -file(STRINGS ${QRC_RESOURCES} QRC_RESOURCES_CONTENT) -foreach (line ${QRC_RESOURCES_CONTENT}) - set(result) - string(REGEX REPLACE - "^[ \t]+[ \t]*(.+\\.qml)[ \t]*[ \t]*$" - "\\1" - result - ${line}) - string(REGEX MATCH "qml$" isQml ${result}) - if (NOT ${isQml} STREQUAL "") - list(APPEND QML_SOURCES "${CMAKE_SOURCE_DIR}/${result}") - endif () -endforeach () - # Create `qm` files from `ts` files. qt5_create_translation(QM_FILES ${TS_FILES} ${SOURCES} ${HEADERS} ${QML_SOURCES}) diff --git a/tests/tools/check_qml b/tests/tools/check_qml index f2a4a65ab..202d713ba 100755 --- a/tests/tools/check_qml +++ b/tests/tools/check_qml @@ -22,7 +22,7 @@ while read line do result=$( printf "$line" | - sed -n 's/^\s*<\s*file\s*>\s*\(.*\.\(qml\|js\)\)\s*<\s*\/file\s*>\s*$/\1/p' + sed -n 's/^\s*<\s*file\s*>\s*\(.*\.\(qml\|js\)\)\s*<\s*\/\s*file\s*>\s*$/\1/p' ) if [[ ! -z $result ]] && ! $LINTER "$result"; then so_far_so_good=1