mirror of
https://github.com/x-tools-author/x-tools.git
synced 2025-09-15 15:28:40 +08:00
chore: update the file
This commit is contained in:
parent
48c3fc26ce
commit
4a0ba8397c
190
cmake/x.cmake
190
cmake/x.cmake
@ -117,196 +117,6 @@ function(x_output_env flag)
|
||||
message(STATUS "[${flag}]CMAKE_CURRENT_FUNCTION_LIST_DIR: ${CMAKE_CURRENT_FUNCTION_LIST_DIR}")
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Generate translations files
|
||||
# cmake-format: off
|
||||
set(X_LANGUAGES "en" "zh_CN" "zh_TW" "ar" "cs" "da" "de" "es" "fa" "fi" "fr" "he" "uk" "it" "ja" "ko" "lt" "nl" "pl" "pt" "ru" "sk" "sl" "sv")
|
||||
# cmake-format: on
|
||||
|
||||
# Generate translations files for module
|
||||
function(x_generate_module_translations module_name dir recurse)
|
||||
if(QT_VERSION VERSION_LESS "6.7.0")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(ts_files "")
|
||||
foreach(lang IN LISTS X_LANGUAGES)
|
||||
set(ts_file ${CMAKE_CURRENT_LIST_DIR}/res/translations/${module_name}/${module_name}_${lang}.ts)
|
||||
list(APPEND ts_files ${ts_file})
|
||||
endforeach()
|
||||
|
||||
if(recurse)
|
||||
file(GLOB_RECURSE files ${dir}/*.h ${dir}/*.cpp ${dir}/*.ui)
|
||||
else()
|
||||
file(GLOB files ${dir}/*.h ${dir}/*.cpp ${dir}/*.ui)
|
||||
endif()
|
||||
qt_add_lupdate(TS_FILES ${ts_files} LUPDATE_TARGET ${module_name}_lupdate SOURCES ${files})
|
||||
set(out_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations/${module_name}")
|
||||
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${out_dir})
|
||||
qt_add_lrelease(TS_FILES ${ts_files} LRELEASE_TARGET ${module_name}_lrelease)
|
||||
set_property(TARGET ${module_name}_lupdate PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET ${module_name}_lrelease PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET update_translations PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET release_translations PROPERTY FOLDER "i18n")
|
||||
endfunction()
|
||||
|
||||
# Use xTools translations
|
||||
function(x_using_x_tools_translations target)
|
||||
file(GLOB_RECURSE ts_files ${CMAKE_SOURCE_DIR}/res/translations/*.ts)
|
||||
set(out_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations")
|
||||
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${out_dir})
|
||||
qt_add_lrelease(TS_FILES ${ts_files} LRELEASE_TARGET ${target}_lrelease)
|
||||
set_property(TARGET release_translations PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET ${target}_lrelease PROPERTY FOLDER "i18n")
|
||||
endfunction()
|
||||
|
||||
# Generate translations files for application
|
||||
function(x_generate_translations target)
|
||||
set(APP_TS_FILES "")
|
||||
foreach(lang IN LISTS X_LANGUAGES)
|
||||
set(ts_file ${CMAKE_CURRENT_LIST_DIR}/res/translations/${target}_${lang}.ts)
|
||||
list(APPEND APP_TS_FILES ${ts_file})
|
||||
endforeach()
|
||||
|
||||
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||
if(QT_VERSION VERSION_LESS "6.2.0")
|
||||
message(STATUS "[Linguist] Generating translations is ignored, because Qt version tool low")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# cmake-format: off
|
||||
if(NOT QT_VERSION VERSION_LESS "6.7.0")
|
||||
qt_add_lupdate(SOURCE_TARGETS ${target} TS_FILES ${APP_TS_FILES} LUPDATE_TARGET ${target}_lupdate NO_GLOBAL_TARGET)
|
||||
else()
|
||||
qt_add_lupdate( TS_FILES ${APP_TS_FILES})
|
||||
endif()
|
||||
# cmake-format: on
|
||||
|
||||
# set(out_dir "$<TARGET_FILE_DIR:${target}>/translations")
|
||||
set(out_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations")
|
||||
set_source_files_properties(${APP_TS_FILES} PROPERTIES OUTPUT_LOCATION ${out_dir})
|
||||
if(NOT QT_VERSION VERSION_LESS "6.7.0")
|
||||
qt_add_lrelease(TS_FILES ${APP_TS_FILES} LRELEASE_TARGET ${target}_lrelease NO_GLOBAL_TARGET)
|
||||
else()
|
||||
qt_add_lrelease(${target} TS_FILES ${APP_TS_FILES})
|
||||
endif()
|
||||
else()
|
||||
# cmake-format: off
|
||||
qt5_add_translation(QM_FILES ${APP_TS_FILES})
|
||||
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${APP_TS_FILES})
|
||||
# cmake-format: on
|
||||
endif()
|
||||
|
||||
add_custom_target(
|
||||
${target}_lupgrade
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${out_dir}/${target}_en.qm
|
||||
${CMAKE_CURRENT_LIST_DIR}/res/translations/${target}_en.qm
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${out_dir}/${target}_zh_CN.qm
|
||||
${CMAKE_CURRENT_LIST_DIR}/res/translations/${target}_zh_CN.qm
|
||||
DEPENDS ${target}_lrelease
|
||||
COMMENT "Generate translations for ${target}...")
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt for Windows
|
||||
function(x_deploy_qt_for_windows target)
|
||||
get_target_property(QT_TARGET_TYPE Qt${QT_VERSION_MAJOR}::Core TYPE)
|
||||
if(QT_TARGET_TYPE STREQUAL "STATIC_LIBRARY")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED WINDEPLOYQT_EXECUTABLE)
|
||||
set(WINDEPLOYQT_EXECUTABLE "${QT_DIR}/../../../bin/windeployqt.exe")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${WINDEPLOYQT_EXECUTABLE})
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/qml)
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:${target}> --no-compiler-runtime --qmldir
|
||||
"${CMAKE_CURRENT_LIST_DIR}/qml"
|
||||
COMMENT "Deploy Qt for Windows..."
|
||||
VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:${target}> --no-compiler-runtime
|
||||
COMMENT "Deploy Qt for Windows..."
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
if(MSVC AND NOT ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug"))
|
||||
cmake_path(GET CMAKE_CXX_COMPILER PARENT_PATH COMPILER_PATH)
|
||||
# add '-' to ignore error if the file does not exist
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD VERBATIM
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/vcruntime140.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/vcruntime140_1.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/msvcp140.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/msvcp140_1.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/msvcp140_2.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true)
|
||||
if(EXISTS "${QT_DIR}/../../../bin/libcrypto-3-x64.dll")
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD VERBATIM
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${QT_DIR}/../../../bin/libcrypto-3-x64.dll"
|
||||
$<TARGET_FILE_DIR:${target}>)
|
||||
endif()
|
||||
if(EXISTS "${QT_DIR}/../../../bin/libssl-3-x64.dll")
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD VERBATIM
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${QT_DIR}/../../../bin/libssl-3-x64.dll"
|
||||
$<TARGET_FILE_DIR:${target}>)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt for macOS
|
||||
function(x_deploy_qt_for_mac target)
|
||||
if(NOT DEFINED MACDEPLOYQT_EXECUTABLE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
message(STATUS "Target path of macOS is: $<TARGET_FILE_DIR:${target}>")
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${MACDEPLOYQT_EXECUTABLE} "${target}.app"
|
||||
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
||||
COMMENT "Making dmg...")
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt for linux
|
||||
function(x_deploy_qt_for_linux target)
|
||||
# Do nothing...
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt
|
||||
function(x_deploy_qt target)
|
||||
if(WIN32)
|
||||
x_deploy_qt_for_windows(${target})
|
||||
elseif(APPLE)
|
||||
x_deploy_qt_for_mac(${target})
|
||||
elseif(UNIX)
|
||||
x_deploy_qt_for_linux(${target})
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# 3rd party libraries(Using cmake for project management)
|
||||
function(x_setup_3rd_library zip_url package_name)
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/x_qt_deploy.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/x_qt_linguist.cmake)
|
||||
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/x_qt_charts.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/x_qt_serialbus.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/x_qt_serialport.cmake)
|
||||
|
||||
99
cmake/x_qt_deploy.cmake
Normal file
99
cmake/x_qt_deploy.cmake
Normal file
@ -0,0 +1,99 @@
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt for Windows
|
||||
function(x_deploy_qt_for_windows target)
|
||||
get_target_property(QT_TARGET_TYPE Qt${QT_VERSION_MAJOR}::Core TYPE)
|
||||
if(QT_TARGET_TYPE STREQUAL "STATIC_LIBRARY")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED WINDEPLOYQT_EXECUTABLE)
|
||||
set(WINDEPLOYQT_EXECUTABLE "${QT_DIR}/../../../bin/windeployqt.exe")
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${WINDEPLOYQT_EXECUTABLE})
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/qml)
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:${target}> --no-compiler-runtime --qmldir
|
||||
"${CMAKE_CURRENT_LIST_DIR}/qml"
|
||||
COMMENT "Deploy Qt for Windows..."
|
||||
VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${WINDEPLOYQT_EXECUTABLE} $<TARGET_FILE:${target}> --no-compiler-runtime
|
||||
COMMENT "Deploy Qt for Windows..."
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
if(MSVC AND NOT ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug"))
|
||||
cmake_path(GET CMAKE_CXX_COMPILER PARENT_PATH COMPILER_PATH)
|
||||
# add '-' to ignore error if the file does not exist
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD VERBATIM
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/vcruntime140.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/vcruntime140_1.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/msvcp140.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/msvcp140_1.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${COMPILER_PATH}/msvcp140_2.dll"
|
||||
$<TARGET_FILE_DIR:${target}> "||" ${CMAKE_COMMAND} -E true)
|
||||
if(EXISTS "${QT_DIR}/../../../bin/libcrypto-3-x64.dll")
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD VERBATIM
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${QT_DIR}/../../../bin/libcrypto-3-x64.dll"
|
||||
$<TARGET_FILE_DIR:${target}>)
|
||||
endif()
|
||||
if(EXISTS "${QT_DIR}/../../../bin/libssl-3-x64.dll")
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD VERBATIM
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${QT_DIR}/../../../bin/libssl-3-x64.dll"
|
||||
$<TARGET_FILE_DIR:${target}>)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt for macOS
|
||||
function(x_deploy_qt_for_mac target)
|
||||
if(NOT DEFINED MACDEPLOYQT_EXECUTABLE)
|
||||
return()
|
||||
endif()
|
||||
|
||||
message(STATUS "Target path of macOS is: $<TARGET_FILE_DIR:${target}>")
|
||||
add_custom_command(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${MACDEPLOYQT_EXECUTABLE} "${target}.app"
|
||||
WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
||||
COMMENT "Making dmg...")
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt for linux
|
||||
function(x_deploy_qt_for_linux target)
|
||||
# Do nothing...
|
||||
endfunction()
|
||||
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Deploy Qt
|
||||
function(x_deploy_qt target)
|
||||
if(WIN32)
|
||||
x_deploy_qt_for_windows(${target})
|
||||
elseif(APPLE)
|
||||
x_deploy_qt_for_mac(${target})
|
||||
elseif(UNIX)
|
||||
x_deploy_qt_for_linux(${target})
|
||||
endif()
|
||||
endfunction()
|
||||
89
cmake/x_qt_linguist.cmake
Normal file
89
cmake/x_qt_linguist.cmake
Normal file
@ -0,0 +1,89 @@
|
||||
# --------------------------------------------------------------------------------------------------
|
||||
# Generate translations files
|
||||
# cmake-format: off
|
||||
set(X_LANGUAGES "en" "zh_CN" "zh_TW" "ar" "cs" "da" "de" "es" "fa" "fi" "fr" "he" "uk" "it" "ja" "ko" "lt" "nl" "pl" "pt" "ru" "sk" "sl" "sv")
|
||||
# cmake-format: on
|
||||
|
||||
# Generate translations files for module
|
||||
function(x_generate_module_translations module_name dir recurse)
|
||||
if(QT_VERSION VERSION_LESS "6.7.0")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(ts_files "")
|
||||
foreach(lang IN LISTS X_LANGUAGES)
|
||||
set(ts_file ${CMAKE_CURRENT_LIST_DIR}/res/translations/${module_name}/${module_name}_${lang}.ts)
|
||||
list(APPEND ts_files ${ts_file})
|
||||
endforeach()
|
||||
|
||||
if(recurse)
|
||||
file(GLOB_RECURSE files ${dir}/*.h ${dir}/*.cpp ${dir}/*.ui)
|
||||
else()
|
||||
file(GLOB files ${dir}/*.h ${dir}/*.cpp ${dir}/*.ui)
|
||||
endif()
|
||||
qt_add_lupdate(TS_FILES ${ts_files} LUPDATE_TARGET ${module_name}_lupdate SOURCES ${files})
|
||||
set(out_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations/${module_name}")
|
||||
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${out_dir})
|
||||
qt_add_lrelease(TS_FILES ${ts_files} LRELEASE_TARGET ${module_name}_lrelease)
|
||||
set_property(TARGET ${module_name}_lupdate PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET ${module_name}_lrelease PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET update_translations PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET release_translations PROPERTY FOLDER "i18n")
|
||||
endfunction()
|
||||
|
||||
# Use xTools translations
|
||||
function(x_using_x_tools_translations target)
|
||||
file(GLOB_RECURSE ts_files ${CMAKE_SOURCE_DIR}/res/translations/*.ts)
|
||||
set(out_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations")
|
||||
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION ${out_dir})
|
||||
qt_add_lrelease(TS_FILES ${ts_files} LRELEASE_TARGET ${target}_lrelease)
|
||||
set_property(TARGET release_translations PROPERTY FOLDER "i18n")
|
||||
set_property(TARGET ${target}_lrelease PROPERTY FOLDER "i18n")
|
||||
endfunction()
|
||||
|
||||
# Generate translations files for application
|
||||
function(x_generate_translations target)
|
||||
set(APP_TS_FILES "")
|
||||
foreach(lang IN LISTS X_LANGUAGES)
|
||||
set(ts_file ${CMAKE_CURRENT_LIST_DIR}/res/translations/${target}_${lang}.ts)
|
||||
list(APPEND APP_TS_FILES ${ts_file})
|
||||
endforeach()
|
||||
|
||||
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
|
||||
if(QT_VERSION VERSION_LESS "6.2.0")
|
||||
message(STATUS "[Linguist] Generating translations is ignored, because Qt version tool low")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# cmake-format: off
|
||||
if(NOT QT_VERSION VERSION_LESS "6.7.0")
|
||||
qt_add_lupdate(SOURCE_TARGETS ${target} TS_FILES ${APP_TS_FILES} LUPDATE_TARGET ${target}_lupdate NO_GLOBAL_TARGET)
|
||||
else()
|
||||
qt_add_lupdate( TS_FILES ${APP_TS_FILES})
|
||||
endif()
|
||||
# cmake-format: on
|
||||
|
||||
# set(out_dir "$<TARGET_FILE_DIR:${target}>/translations")
|
||||
set(out_dir "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/translations")
|
||||
set_source_files_properties(${APP_TS_FILES} PROPERTIES OUTPUT_LOCATION ${out_dir})
|
||||
if(NOT QT_VERSION VERSION_LESS "6.7.0")
|
||||
qt_add_lrelease(TS_FILES ${APP_TS_FILES} LRELEASE_TARGET ${target}_lrelease NO_GLOBAL_TARGET)
|
||||
else()
|
||||
qt_add_lrelease(${target} TS_FILES ${APP_TS_FILES})
|
||||
endif()
|
||||
else()
|
||||
# cmake-format: off
|
||||
qt5_add_translation(QM_FILES ${APP_TS_FILES})
|
||||
qt5_create_translation(QM_FILES ${CMAKE_SOURCE_DIR} ${APP_TS_FILES})
|
||||
# cmake-format: on
|
||||
endif()
|
||||
|
||||
add_custom_target(
|
||||
${target}_lupgrade
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${out_dir}/${target}_en.qm
|
||||
${CMAKE_CURRENT_LIST_DIR}/res/translations/${target}_en.qm
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${out_dir}/${target}_zh_CN.qm
|
||||
${CMAKE_CURRENT_LIST_DIR}/res/translations/${target}_zh_CN.qm
|
||||
DEPENDS ${target}_lrelease
|
||||
COMMENT "Generate translations for ${target}...")
|
||||
endfunction()
|
||||
Loading…
Reference in New Issue
Block a user