diff options
Diffstat (limited to 'cmake/opentrack-i18n.cmake')
-rw-r--r-- | cmake/opentrack-i18n.cmake | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/cmake/opentrack-i18n.cmake b/cmake/opentrack-i18n.cmake index 297307b9..fca83248 100644 --- a/cmake/opentrack-i18n.cmake +++ b/cmake/opentrack-i18n.cmake @@ -1,21 +1,23 @@ include_guard(GLOBAL) +if(POLICY CMP0177) + cmake_policy(SET CMP0177 NEW) +endif() + add_custom_target(i18n-lupdate) -set_property(TARGET i18n-lupdate PROPERTY FOLDER "i18n") add_custom_target(i18n-lrelease DEPENDS i18n-lupdate) -set_property(TARGET i18n-lrelease PROPERTY FOLDER "i18n") add_custom_target(i18n ALL DEPENDS i18n-lrelease) function(otr_i18n_for_target_directory n) set(k "opentrack-${n}") - get_property(lupdate-binary TARGET "Qt6::lupdate" PROPERTY IMPORTED_LOCATION) + get_property(lupdate-binary TARGET Qt6::lupdate PROPERTY IMPORTED_LOCATION) #make_directory("${CMAKE_CURRENT_BINARY_DIR}/lang") set(ts-files "") foreach(k ${opentrack_all-translations}) - list(APPEND ts-files "lang/${k}.ts") + list(APPEND ts-files "${CMAKE_CURRENT_SOURCE_DIR}/lang/${k}.ts") set_property(GLOBAL APPEND PROPERTY "opentrack-ts-files-${k}" "${CMAKE_CURRENT_SOURCE_DIR}/lang/${k}.ts") endforeach() set(stamp "${CMAKE_CURRENT_BINARY_DIR}/lupdate.stamp") @@ -26,6 +28,7 @@ function(otr_i18n_for_target_directory n) if (NOT EXISTS "${t}") file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/lang") file(READ "${CMAKE_SOURCE_DIR}/cmake/translation-stub.ts" stub) + string(REPLACE "@LANG@" "${i}" stub "${stub}") file(WRITE "${t}" "${stub}") endif() endforeach() @@ -48,22 +51,23 @@ function(otr_i18n_for_target_directory n) -ts ${ts-files} ${to-null} COMMAND "${CMAKE_COMMAND}" -E touch "${stamp}" - DEPENDS ${${k}-cc} ${${k}-hh} ${${k}-uih} ${${k}-moc} + #BYPRODUCTS ${ts-files} + DEPENDS "opentrack-${n}" COMMENT "Running lupdate for ${n}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") set(target-name "i18n-module-${n}") add_custom_target(${target-name} DEPENDS "${stamp}" COMMENT "") - set_property(TARGET ${target-name} PROPERTY FOLDER "i18n") add_dependencies(i18n-lupdate ${target-name}) endfunction() function(otr_merge_translations) otr_escape_string(i18n-pfx "${opentrack-i18n}") - install(CODE "file(REMOVE_RECURSE \"\${CMAKE_INSTALL_PREFIX}/${i18n-pfx}\")") + #install(CODE "message(FATAL_ERROR \"foo \${CMAKE_INSTALL_PREFIX}\")") + #install(CODE "file(REMOVE_RECURSE \"\${CMAKE_INSTALL_PREFIX}/${i18n-pfx}\")") foreach(i ${opentrack_all-translations}) get_property(ts-files GLOBAL PROPERTY "opentrack-ts-files-${i}") - get_property(lrelease-binary TARGET "Qt6::lrelease" PROPERTY IMPORTED_LOCATION) + get_property(lrelease-binary TARGET Qt6::lrelease PROPERTY IMPORTED_LOCATION) set(qm-output "${CMAKE_BINARY_DIR}/${i}.qm") @@ -82,17 +86,16 @@ function(otr_merge_translations) ${ts-files} -qm "${qm-output}" ${to-null} - DEPENDS ${ts-files} i18n-lupdate + DEPENDS i18n-lupdate ${ts-files} COMMENT "Running lrelease for ${i}" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}") set(target-name i18n-qm-${i}) add_custom_target(${target-name} DEPENDS "${qm-output}") - set_property(TARGET ${target-name} PROPERTY FOLDER "i18n") add_dependencies(i18n-lrelease ${target-name}) install(FILES "${qm-output}" - DESTINATION "${CMAKE_INSTALL_PREFIX}/${opentrack-i18n}" + DESTINATION "${opentrack-i18n}" PERMISSIONS ${opentrack-perms-file}) endforeach() endfunction() |