Check if lrelease is working before trying to use it
On some systems, there is a /usr/bin/lrelease wrapper even if the real lrelease program is not installed. So let's try to execute lrelease after it has been found by find_program to see if it is really working.
This commit is contained in:
parent
a529f0a6c9
commit
64f36300fb
@ -35,14 +35,21 @@ if(LRELEASE STREQUAL "LRELEASE-NOTFOUND")
|
|||||||
set(ts_files "")
|
set(ts_files "")
|
||||||
message(WARNING "lrelease program not found, translation files not built")
|
message(WARNING "lrelease program not found, translation files not built")
|
||||||
else()
|
else()
|
||||||
file(GLOB ts_files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" *.ts)
|
execute_process(COMMAND ${LRELEASE} -version
|
||||||
foreach(ts_file ${ts_files})
|
RESULT_VARIABLE lrelease_ret)
|
||||||
string(REPLACE ".ts" ".qm" qm_file "${ts_file}")
|
if(NOT lrelease_ret EQUAL "0")
|
||||||
add_custom_command(TARGET generate_translations_header
|
set(ts_files "")
|
||||||
PRE_BUILD
|
message(WARNING "lrelease program not working, translation files not built")
|
||||||
COMMAND ${LRELEASE} "${CMAKE_CURRENT_SOURCE_DIR}/${ts_file}" -qm "${qm_file}"
|
else()
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BIN_DIR}")
|
file(GLOB ts_files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" *.ts)
|
||||||
endforeach()
|
foreach(ts_file ${ts_files})
|
||||||
|
string(REPLACE ".ts" ".qm" qm_file "${ts_file}")
|
||||||
|
add_custom_command(TARGET generate_translations_header
|
||||||
|
PRE_BUILD
|
||||||
|
COMMAND ${LRELEASE} "${CMAKE_CURRENT_SOURCE_DIR}/${ts_file}" -qm "${qm_file}"
|
||||||
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BIN_DIR}")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
string(REPLACE ".ts" ".qm" qm_files "${ts_files}")
|
string(REPLACE ".ts" ".qm" qm_files "${ts_files}")
|
||||||
|
Loading…
Reference in New Issue
Block a user