mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-08-03 22:59:53 +00:00
Adding translation support to build system
This commit is contained in:
parent
2c92a98555
commit
4a53460aaf
1 changed files with 80 additions and 0 deletions
|
@ -1,3 +1,57 @@
|
||||||
|
function(copy_base_translations target)
|
||||||
|
get_target_property(MOC_EXECUTABLE_LOCATION Qt6::moc IMPORTED_LOCATION)
|
||||||
|
get_filename_component(QT_BINARY_DIRECTORY "${MOC_EXECUTABLE_LOCATION}" DIRECTORY)
|
||||||
|
find_program(LCONVERT_EXE lconvert HINTS "${QT_BINARY_DIRECTORY}")
|
||||||
|
set(BASE_TRANSLATIONS_DIR "${QT_BINARY_DIRECTORY}/../translations")
|
||||||
|
|
||||||
|
if(NOT APPLE)
|
||||||
|
add_custom_command(TARGET ${target} POST_BUILD
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "$<TARGET_FILE_DIR:${target}>/translations")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
file(GLOB qmFiles "${BASE_TRANSLATIONS_DIR}/qt_*.qm")
|
||||||
|
foreach(path IN LISTS qmFiles)
|
||||||
|
get_filename_component(file ${path} NAME)
|
||||||
|
|
||||||
|
# qt_help_<lang> just has to ruin everything.
|
||||||
|
if(file MATCHES "qt_help_" OR NOT file MATCHES "qt_([^.]+).qm")
|
||||||
|
continue()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# If qtbase_<lang>.qm exists, merge all qms for that language into a single qm.
|
||||||
|
set(lang "${CMAKE_MATCH_1}")
|
||||||
|
set(baseQmPath "${BASE_TRANSLATIONS_DIR}/qtbase_${lang}.qm")
|
||||||
|
if(EXISTS "${baseQmPath}")
|
||||||
|
set(outPath "${CMAKE_CURRENT_BINARY_DIR}/qt_${lang}.qm")
|
||||||
|
set(srcQmFiles)
|
||||||
|
file(GLOB langQmFiles "${BASE_TRANSLATIONS_DIR}/qt*${lang}.qm")
|
||||||
|
foreach(qmFile IN LISTS langQmFiles)
|
||||||
|
get_filename_component(file ${qmFile} NAME)
|
||||||
|
if(file STREQUAL "qt_${lang}.qm")
|
||||||
|
continue()
|
||||||
|
endif()
|
||||||
|
LIST(APPEND srcQmFiles "${qmFile}")
|
||||||
|
endforeach()
|
||||||
|
add_custom_command(OUTPUT ${outPath}
|
||||||
|
COMMAND "${LCONVERT_EXE}" -verbose -of qm -o "${outPath}" ${srcQmFiles}
|
||||||
|
DEPENDS ${srcQmFiles}
|
||||||
|
)
|
||||||
|
set(path "${outPath}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_sources(${target} PRIVATE ${path})
|
||||||
|
if(APPLE)
|
||||||
|
set_source_files_properties(${path} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/translations)
|
||||||
|
elseif(ALLOW_INSTALL)
|
||||||
|
install(FILES "${path}" DESTINATION "${CMAKE_INSTALL_BINDIR}/translations")
|
||||||
|
else()
|
||||||
|
add_custom_command(TARGET ${target} POST_BUILD
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${path}" "$<TARGET_FILE_DIR:${target}>/translations")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
add_library(rpcs3_ui STATIC
|
add_library(rpcs3_ui STATIC
|
||||||
about_dialog.cpp
|
about_dialog.cpp
|
||||||
auto_pause_settings_dialog.cpp
|
auto_pause_settings_dialog.cpp
|
||||||
|
@ -126,6 +180,11 @@ add_library(rpcs3_ui STATIC
|
||||||
"../resources.qrc"
|
"../resources.qrc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set(TS_FILES
|
||||||
|
translations/rpcs3_sv.ts
|
||||||
|
translations/rpcs3_pl.ts
|
||||||
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
target_sources(rpcs3_ui PUBLIC "../windows.qrc")
|
target_sources(rpcs3_ui PUBLIC "../windows.qrc")
|
||||||
target_compile_definitions(rpcs3_ui PRIVATE UNICODE _UNICODE)
|
target_compile_definitions(rpcs3_ui PRIVATE UNICODE _UNICODE)
|
||||||
|
@ -162,3 +221,24 @@ target_link_libraries(rpcs3_ui
|
||||||
3rdparty::opencv
|
3rdparty::opencv
|
||||||
3rdparty::fusion
|
3rdparty::fusion
|
||||||
3rdparty::rtmidi)
|
3rdparty::rtmidi)
|
||||||
|
|
||||||
|
# Translation setup.
|
||||||
|
qt_add_lrelease(rpcs3 TS_FILES ${TS_FILES} QM_FILES_OUTPUT_VARIABLE QM_FILES)
|
||||||
|
if(NOT APPLE)
|
||||||
|
set(QM_OUTPUT_DIR "$<TARGET_FILE_DIR:rpcs3>/translations")
|
||||||
|
add_custom_command(TARGET rpcs3 POST_BUILD COMMAND "${CMAKE_COMMAND}" -E make_directory "${QM_OUTPUT_DIR}")
|
||||||
|
foreach (QM_FILE IN LISTS QM_FILES)
|
||||||
|
get_filename_component(QM_FILE_NAME ${QM_FILE} NAME)
|
||||||
|
add_custom_command(TARGET rpcs3 POST_BUILD COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${QM_FILE}" "${QM_OUTPUT_DIR}/${QM_FILE_NAME}")
|
||||||
|
if(ALLOW_INSTALL)
|
||||||
|
install(FILES "${QM_FILE}" DESTINATION "${CMAKE_INSTALL_BINDIR}/translations")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
else()
|
||||||
|
foreach (QM_FILE IN LISTS QM_FILES)
|
||||||
|
target_sources(rpcs3 PRIVATE ${QM_FILE})
|
||||||
|
set_source_files_properties(${QM_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/translations)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
copy_base_translations(rpcs3)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue