blob: 38e1fd447b56f12d1e8a5a2e791f4328ecb0252e [file] [log] [blame] [edit]
file(GLOB _files "${CMAKE_CURRENT_SOURCE_DIR}/*")
foreach (_dir ${_files})
if (IS_DIRECTORY "${_dir}" AND EXISTS "${_dir}/CMakeLists.txt")
add_subdirectory("${_dir}")
get_filename_component(_lang ${_dir} NAME)
list(APPEND _langs ${_lang})
endif ()
endforeach()
macro(UPDATE_POT_FILE input)
set(_potFile "${input}.pot")
foreach(_lang ${_langs})
set(_poFile "${CMAKE_CURRENT_SOURCE_DIR}/${_lang}/${input}.po")
list(APPEND _commands
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} --quiet --update --backup=none -F ${_poFile} "${CMAKE_CURRENT_SOURCE_DIR}/${_potFile}")
endforeach()
set(COPY_NEW_POTFILE ${CMAKE_COMMAND} -E copy po/${_potFile}.new po/${_potFile})
if (NOT (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows"))
# IF the new potfile carries changes other than an updated POT-creation-date (autogenerated) THEN proceed to use that new potfile
set(CM diff --brief --ignore-matching-lines="POT-Creation-Date.*" po/${_potFile} po/${_potFile}.new || ${COPY_NEW_POTFILE})
else ()
set(CM ${COPY_NEW_POTFILE})
endif ()
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/${_potFile}.new
COMMAND xgettext ${input}.cc --package-name=${input} --keyword=_ -F --output=po/${_potFile}.new
COMMAND ${CM}
${_commands}
DEPENDS ../${input}.cc
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..)
add_custom_target(update_pot_${input}
ALL
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_potFile}.new)
endmacro()
UPDATE_POT_FILE(pdfsig)