summaryrefslogtreecommitdiffstats
path: root/tests/auto/cmake/linguist/test_i18n_source_language/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/cmake/linguist/test_i18n_source_language/CMakeLists.txt')
-rw-r--r--tests/auto/cmake/linguist/test_i18n_source_language/CMakeLists.txt69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/auto/cmake/linguist/test_i18n_source_language/CMakeLists.txt b/tests/auto/cmake/linguist/test_i18n_source_language/CMakeLists.txt
new file mode 100644
index 000000000..72b5e5cde
--- /dev/null
+++ b/tests/auto/cmake/linguist/test_i18n_source_language/CMakeLists.txt
@@ -0,0 +1,69 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(test_i18n_source_language)
+
+# Set up the project structure.
+find_package(Qt6 REQUIRED COMPONENTS Core Gui LinguistTools)
+qt_standard_project_setup()
+set(native_ts_files "")
+
+function(my_add_library target)
+ add_library("${target}" STATIC lib.cpp)
+ target_link_libraries("${target}" PRIVATE Qt6::Core)
+endfunction()
+
+# qt_add_lupdate with just the native translation.
+my_add_library(lib1 STATIC lib.cpp)
+qt_add_lupdate(
+ SOURCE_TARGETS lib1
+ PLURALS_TS_FILE "${CMAKE_CURRENT_BINARY_DIR}/lib1_en.ts"
+)
+
+# qt_add_lupdate with just the native translation which has already been translated.
+# check_ts_files.cmake checks that the numerus translations are preserved.
+my_add_library(lib2 STATIC lib.cpp)
+configure_file(lib2_en.ts.in lib2_en.ts COPYONLY)
+qt_add_lupdate(
+ SOURCE_TARGETS lib2
+ PLURALS_TS_FILE "${CMAKE_CURRENT_BINARY_DIR}/lib2_en.ts"
+)
+
+# qt_add_lupdate with regular translations and the native translation.
+my_add_library(lib3 STATIC lib.cpp)
+qt_add_lupdate(
+ SOURCE_TARGETS lib3
+ TS_FILES "${CMAKE_CURRENT_BINARY_DIR}/lib3_hi.ts" "${CMAKE_CURRENT_BINARY_DIR}/lib3_ho.ts"
+ PLURALS_TS_FILE "${CMAKE_CURRENT_BINARY_DIR}/lib3_en.ts"
+)
+
+# qt_add_translations with just the native translation.
+my_add_library(lib4 STATIC lib.cpp)
+qt_add_translations(
+ TARGETS lib4
+ SOURCE_TARGETS lib4
+ PLURALS_TS_FILE "${CMAKE_CURRENT_BINARY_DIR}/lib4_en.ts"
+)
+
+# qt_add_translations with regular translations and the native translation.
+my_add_library(lib5 STATIC lib.cpp)
+qt_add_translations(
+ TARGETS lib5
+ SOURCE_TARGETS lib5
+ TS_FILES "${CMAKE_CURRENT_BINARY_DIR}/lib5_hi.ts" "${CMAKE_CURRENT_BINARY_DIR}/lib5_ho.ts"
+ PLURALS_TS_FILE "${CMAKE_CURRENT_BINARY_DIR}/lib5_en.ts"
+)
+
+# Find out how many targets we created above.
+get_directory_property(targets BUILDSYSTEM_TARGETS)
+list(FILTER targets INCLUDE REGEX "^lib[0-9]+$")
+list(LENGTH targets targets_length)
+
+# Build the 'update_translations' target by default and check the native language .ts files.
+string(REPLACE ";" "\\\\;" native_ts_files "${native_ts_files}")
+add_custom_target(force_ts_update ALL
+ COMMAND "${CMAKE_COMMAND}" -DNR_OF_TARGETS=${targets_length}
+ -P "${CMAKE_CURRENT_SOURCE_DIR}/check_ts_files.cmake"
+)
+add_dependencies(force_ts_update update_translations)