blob: 18426154e5f0eb6d66c73d50d6a5fe74935469d6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
set(TRANSLATIONS
"de"
"de_CH"
"en"
)
foreach(LANG IN LISTS TRANSLATIONS)
set(BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${LANG}/LC_MESSAGES/turns.mo")
set(SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/po/${LANG}.po")
list(APPEND TRANSLATION_BINARIES "${BINARY_FILE}")
add_custom_command(OUTPUT "${BINARY_FILE}"
COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}"
ARGS
"-o"
"${BINARY_FILE}"
"${SOURCE_FILE}"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS
"${SOURCE_FILE}"
COMMENT "Processing translation ${LANG}"
)
install(FILES "${BINARY_FILE}"
DESTINATION "${CMAKE_INSTALL_FULL_LOCALEDIR}/${LANG}/LC_MESSAGES"
)
endforeach()
add_custom_target("mofiles" DEPENDS ${TRANSLATION_BINARIES})
add_library("lang" INTERFACE)
add_library("turns::lang" ALIAS "lang")
if(TURNS_USE_INSTALLED_TRANSLATIONS)
target_compile_definitions("lang" INTERFACE
"LOCALEDIR=\"${CMAKE_INSTALL_FULL_LOCALEDIR}\""
)
else()
target_compile_definitions("lang" INTERFACE
"LOCALEDIR=\"${CMAKE_CURRENT_BINARY_DIR}\""
)
endif()
target_include_directories("lang" INTERFACE
"include"
)
add_dependencies("lang" "mofiles")
# Tests
add_executable("lang-tests"
"tests/intl_test_init.cpp"
"tests/messages.cpp"
)
target_link_libraries("lang-tests" PRIVATE
"Catch2::Catch2WithMain"
"Intl::Intl"
"turns::lang"
)
target_compile_definitions("lang-tests" PRIVATE
"TESTLOCALEDIR=\"${CMAKE_CURRENT_BINARY_DIR}\""
)
enable_coverage("lang-tests")
target_link_options("lang-tests" PRIVATE
"$<$<AND:$<CXX_COMPILER_ID:GNU,Clang>,$<CONFIG:Debug>>:--coverage>"
)
catch_discover_tests("lang-tests")
|