Warning, /sdk/pology/cmake/GettextTools.cmake is written in an unsupported language. File is not indexed.
0001 # TODO: Add doc comments for all this stuff.
0002
0003 if(NOT MSGFMT_EXECUTABLE)
0004 find_package(Msgfmt)
0005 endif()
0006 if(NOT MSGMERGE_EXECUTABLE)
0007 find_package(Msgmerge)
0008 endif()
0009
0010 if(NOT gtxt_target_count)
0011 set(gtxt_target_count 1)
0012 endif()
0013
0014
0015 macro(INSTALL_PO_DOMAIN podomain linguas localedir)
0016
0017 if(NOT MSGFMT_EXECUTABLE)
0018 message(FATAL_ERROR "MSGFMT_EXECUTABLE is not set.")
0019 endif()
0020
0021 set(alinguas ${linguas})
0022 if(NOT IS_ABSOLUTE ${linguas})
0023 set(alinguas ${CMAKE_CURRENT_SOURCE_DIR}/${linguas})
0024 endif()
0025 if(NOT EXISTS ${alinguas})
0026 message(FATAL_ERROR
0027 "The language list file '${alinguas}' is missing.")
0028 endif()
0029 file(READ ${alinguas} fc)
0030 string(REGEX REPLACE "#[^\n]*\n" " " fc ${fc})
0031 string(REGEX MATCHALL "[^ \t\n]+" langs ${fc})
0032
0033 string(REPLACE ${CMAKE_SOURCE_DIR}/ "" srcsubdir
0034 ${CMAKE_CURRENT_SOURCE_DIR})
0035 string(REPLACE "/" "-" targbase ${srcsubdir})
0036 set(target "${targbase}-gtxt${gtxt_target_count}-install-po-domain")
0037 math(EXPR gtxt_target_count "${gtxt_target_count} + 1")
0038
0039 set(mofiles)
0040 foreach(lang ${langs})
0041 set(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${lang}.po)
0042 if(NOT EXISTS ${pofile})
0043 message(FATAL_ERROR
0044 "The PO file '${pofile}' expected according to '${alinguas}' "
0045 "is missing.")
0046 endif()
0047 set(mofile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
0048 add_custom_command(
0049 OUTPUT ${mofile}
0050 COMMAND ${MSGFMT_EXECUTABLE} -c ${pofile} -o ${mofile}
0051 DEPENDS ${pofile} ${alinguas})
0052 install(FILES ${mofile} DESTINATION ${localedir}/${lang}/LC_MESSAGES
0053 RENAME ${podomain}.mo)
0054 set(mofiles ${mofiles} ${mofile})
0055 endforeach()
0056 add_custom_target(${target} ALL DEPENDS ${mofiles} ${alinguas})
0057
0058 endmacro()
0059