diff options
Diffstat (limited to 'tests/auto/cmake/linguist/test_i18n_auto_ts_file_names/CMakeLists.txt')
-rw-r--r-- | tests/auto/cmake/linguist/test_i18n_auto_ts_file_names/CMakeLists.txt | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/tests/auto/cmake/linguist/test_i18n_auto_ts_file_names/CMakeLists.txt b/tests/auto/cmake/linguist/test_i18n_auto_ts_file_names/CMakeLists.txt new file mode 100644 index 000000000..04e84edd4 --- /dev/null +++ b/tests/auto/cmake/linguist/test_i18n_auto_ts_file_names/CMakeLists.txt @@ -0,0 +1,115 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +cmake_minimum_required(VERSION 3.16) +project(test_i18n_auto_ts_file_names) + +# Set up the project structure. +find_package(Qt6 REQUIRED COMPONENTS Core Gui LinguistTools) +qt_standard_project_setup() + +function(my_add_library target) + qt6_add_library("${target}" ${ARGN}) + target_link_libraries("${target}" PRIVATE Qt6::Core) +endfunction() + +# Remove .ts files from older test runs. +file(GLOB_RECURSE old_ts_files "${CMAKE_CURRENT_SOURCE_DIR}/*.ts") +foreach(f IN LISTS old_ts_files) + message("Removing: ${f}") + file(REMOVE "${f}") +endforeach() + +set(expected_files "") +set(unexpected_files "") + +# Check defaults for the deferred call. +my_add_library(lib1 STATIC lib.cpp) +set(QT_I18N_TRANSLATED_LANGUAGES te st) +qt_add_translations(TARGETS lib1) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_en.ts" # plurals-only file + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_te.ts" + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_st.ts") + +# Check defaults for the immediate call. +my_add_library(lib2 STATIC lib.cpp) +set(QT_I18N_SOURCE_LANGUAGE hu) +set(QT_I18N_TRANSLATED_LANGUAGES hi ho) +qt_add_translations(TARGETS lib2 IMMEDIATE_CALL) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_hu.ts" # plurals-only file + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_hi.ts" + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_ho.ts") + +# Check defaults for deferred/immediate call in a subdir. +add_subdirectory(subdir) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/subdir/test_i18n_auto_ts_file_names_eo.ts" # plurals-only file + "${CMAKE_CURRENT_SOURCE_DIR}/subdir/test_i18n_auto_ts_file_names_de.ts" + "${CMAKE_CURRENT_SOURCE_DIR}/subdir/test_i18n_auto_ts_file_names_ee.ts" # plurals-only file + "${CMAKE_CURRENT_SOURCE_DIR}/subdir/test_i18n_auto_ts_file_names_da.ts" +) + +# Check whether TS_FILE_BASE works. +my_add_library(lib5 STATIC lib.cpp) +set(QT_I18N_SOURCE_LANGUAGE ne) +set(QT_I18N_TRANSLATED_LANGUAGES no) +qt_add_translations(TARGETS lib5 TS_FILE_BASE lib5) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/lib5_ne.ts" # plurals-only file + "${CMAKE_CURRENT_SOURCE_DIR}/lib5_no.ts") + +# Check whether TS_FILE_DIR works. +my_add_library(lib6 STATIC lib.cpp) +set(QT_I18N_SOURCE_LANGUAGE so) # plurals-only file +set(QT_I18N_TRANSLATED_LANGUAGES sv) +qt_add_translations(TARGETS lib6 TS_FILE_DIR translations) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/translations/test_i18n_auto_ts_file_names_sv.ts") + +# Check whether TS_FILE_BASE and TS_FILE_DIR work together. +my_add_library(lib7 STATIC lib.cpp) +set(QT_I18N_SOURCE_LANGUAGE fy) +set(QT_I18N_TRANSLATED_LANGUAGES fi) +qt_add_translations(TARGETS lib7 TS_FILE_BASE lib7 TS_FILE_DIR translations) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/translations/lib7_fy.ts" # plurals-only file + "${CMAKE_CURRENT_SOURCE_DIR}/translations/lib7_fi.ts") + +# Check defaults for the deferred call with just the native language set. +my_add_library(lib8 STATIC lib.cpp) +set(QT_I18N_TRANSLATED_LANGUAGES "") +set(QT_I18N_SOURCE_LANGUAGE nl) +qt_add_translations(TARGETS lib8) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_nl.ts") + +# Check whether we can turn off the generation of the plurals-only file. +my_add_library(lib10 STATIC lib.cpp) +set(QT_I18N_TRANSLATED_LANGUAGES cy) +set(QT_I18N_SOURCE_LANGUAGE an) +qt_add_translations(TARGETS lib10 NO_GENERATE_PLURALS_TS_FILE) +list(APPEND expected_files + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_cy.ts") +list(APPEND unexpected_files + "${CMAKE_CURRENT_SOURCE_DIR}/test_i18n_auto_ts_file_names_an.ts") + +function(check_ts_file_paths) + foreach(filepath IN LISTS expected_files) + if(NOT EXISTS "${filepath}") + message(FATAL_ERROR "Expected file '${filepath}' does not exist.") + endif() + endforeach() + foreach(filepath IN LISTS unexpected_files) + if(EXISTS "${filepath}") + message(FATAL_ERROR "File '${filepath}' unexpectedly exists.") + endif() + endforeach() +endfunction() + +if(CMAKE_VERSION VERSION_LESS "3.19") + check_ts_file_paths() +else() + cmake_language(DEFER CALL check_ts_file_paths) +endif() |