set(TRANSLATIONS "de" "de_CH" "en_US" ) foreach(LANG IN LISTS TRANSLATIONS) set(BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${LANG}/LC_MESSAGES/turns.mo") file(GLOB_RECURSE PARTS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*/${LANG}.po") list(APPEND TRANSLATION_BINARIES "${BINARY_FILE}") add_custom_command(OUTPUT "${BINARY_FILE}" COMMAND "${GETTEXT_MSGFMT_EXECUTABLE}" ARGS "-o" "${BINARY_FILE}" ${PARTS} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" DEPENDS ${PARTS} 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/buttons.cpp" "tests/labels.cpp" "tests/menu_items.cpp" "tests/tooltips.cpp" ) target_link_libraries("lang-tests" PRIVATE "Catch2::Catch2" "turns::intl-test-main" ) catch_discover_tests("lang-tests")