[CMake] intltool and cmake?
Timothy M. Shead
tshead at k-3d.com
Sun Jan 13 23:00:04 EST 2008
On Sun, 2008-01-13 at 12:00 +0100, Christopher Lang wrote:
> Hi,
>
> I am just converting a mid size autotools project to cmake. It works very
> nicely so far, but: there are all kinds of files that I need intltool for
> (.glade files etc.) so gettext alone will not do.
>
> Is there some example on how to integrate intltool & cmake?
I've enclosed just such an example, from the K-3D "po" directory.
Should be fairly straightforward to adjust to your project.
Cheers,
Tim
-------------- next part --------------
PROJECT(po)
IF(K3D_BUILD_NLS)
FIND_PROGRAM(K3D_INTLTOOL_UPDATE intltool-update)
MARK_AS_ADVANCED(K3D_INTLTOOL_UPDATE)
FIND_PROGRAM(K3D_XGETTEXT xgettext)
MARK_AS_ADVANCED(K3D_XGETTEXT)
FIND_PROGRAM(K3D_MSGMERGE msgmerge)
MARK_AS_ADVANCED(K3D_MSGMERGE)
FIND_PROGRAM(K3D_MSGFMT msgfmt)
MARK_AS_ADVANCED(K3D_MSGFMT)
SET(K3D_CATALOGS
chef
)
SET(K3D_CATALOG_TARGETS
)
ADD_CUSTOM_TARGET(nls-update-sources
${K3D_INTLTOOL_UPDATE} -m
WORKING_DIRECTORY ${po_SOURCE_DIR}
)
ADD_CUSTOM_COMMAND(OUTPUT ${po_BINARY_DIR}/k3d.pot
COMMAND ${K3D_XGETTEXT} --files-from ${po_SOURCE_DIR}/POTFILES.in --keyword=_ -o ${po_BINARY_DIR}/k3d.pot --copyright-holder="Timothy M. Shead" --msgid-bugs-address="k3d-development at lists.sourceforge.net" --no-wrap --no-location
DEPENDS POTFILES.in
WORKING_DIRECTORY ${k3d_SOURCE_DIR}
)
FOREACH(catalog ${K3D_CATALOGS})
ADD_CUSTOM_TARGET(nls-update-${catalog}.po
${K3D_MSGMERGE} ${catalog} k3d -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/k3d.mo
COMMAND ${K3D_MSGFMT} -c -o ${po_BINARY_DIR}/${catalog}/LC_MESSAGES/k3d.mo ${po_SOURCE_DIR}/${catalog}.po
DEPENDS ${po_SOURCE_DIR}/${catalog}.po
)
INSTALL(FILES ${po_BINARY_DIR}/${catalog}/LC_MESSAGES/k3d.mo
DESTINATION share/k3d/locale/${catalog}/LC_MESSAGES
)
SET(K3D_CATALOG_TARGETS ${K3D_CATALOG_TARGETS} ${po_BINARY_DIR}/${catalog}/LC_MESSAGES/k3d.mo)
ENDFOREACH(catalog)
ADD_CUSTOM_TARGET(nls ALL
DEPENDS ${po_BINARY_DIR}/k3d.pot ${K3D_CATALOG_TARGETS}
)
ENDIF(K3D_BUILD_NLS)
More information about the CMake
mailing list