CMakeLists.txt 1.6 KB
project (po)

find_program (_intltool_update intltool-update)
if (NOT EXISTS "${_intltool_update}")
    message (SEND_ERROR "Missing intltool-update (try: sudo apt-get install intltool)")
endif ()

find_program (_xgettext xgettext)
mark_as_advanced (_xgettext)

find_program (_msgmerge msgmerge)
mark_as_advanced (_msgmerge)

find_program(_msgfmt msgfmt)
mark_as_advanced (k3d_msgfmt)

set (compiz_catalogs ${ALL_LINGUAS})

set (compiz_catalog_targets)

add_custom_target (nls-update-sources
    ${_intltool_update} -m
    WORKING_DIRECTORY ${po_SOURCE_DIR}
)

add_custom_command (
    OUTPUT ${po_SOURCE_DIR}/compiz.pot
    COMMAND ${_intltool_update} --gettext-package compiz --pot
    DEPENDS POTFILES.in
    WORKING_DIRECTORY ${po_SOURCE_DIR}
)

foreach(catalog ${compiz_catalogs})
    add_custom_target (nls-update-${catalog}.po
	${_msgmerge} ${catalog} compiz -o ${catalog}.po --no-wrap
	DEPENDS ${po_SOURCE_DIR}/${catalog}.po
	WORKING_DIRECTORY ${po_SOURCE_DIR}
    )

    file (MAKE_DIRECTORY "${po_BINARY_DIR}/${catalog}/LC_MESSAGES")

    add_custom_command (
	OUTPUT ${po_BINARY_DIR}/${catalog}/LC_MESSAGES/compiz.mo
	COMMAND ${_msgfmt} -c -o ${po_BINARY_DIR}/${catalog}/LC_MESSAGES/compiz.mo ${po_SOURCE_DIR}/${catalog}.po
	DEPENDS ${po_SOURCE_DIR}/${catalog}.po
    )

    install (
	FILES ${po_BINARY_DIR}/${catalog}/LC_MESSAGES/compiz.mo
	DESTINATION ${datadir}/locale/${catalog}/LC_MESSAGES
    )

    set (compiz_catalog_targets ${compiz_catalog_targets} ${po_BINARY_DIR}/${catalog}/LC_MESSAGES/compiz.mo)
endforeach(catalog)

add_custom_target(nls ALL
    DEPENDS ${po_SOURCE_DIR}/compiz.pot ${compiz_catalog_targets}
)