Я перемещаю проект от автоинструментов до cmake. У меня есть вопрос о поддержке gettext.
Существует существующие модули FindGettext.cmake, который обеспечивает хорошую функцию:
GETTEXT_CREATE_TRANSLATIONS(foo.pot ALL fr.po de.po)
где Вы обеспечиваете файл горшка и перевели почтовый fil; функция заботится о превращении почтовых файлов в файлы ГМО, и добавьте, что надлежащая установка предназначается удостоверяться, что файлы могут быть найдены во времени выполнения. Вся польза и хорошо.
Теперь прибывает вопрос: как Вы обновляете свои файлы горшка и Вас почтовые файлы, когда Вы добавляете новые сообщения?
Для этого автоинструменты генерировали бы "почтовую обновлением" цель, это (от того, что я понимаю), читает POTFILES.in со списками всех файлов, содержащих переведенные строки, смешивает его с другой информацией и заканчивает тем, что назвал xgetext для генерации почтового. Я думаю, что соответствующей задачей Make-файла является та, которая содержит что-то как:
case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
'' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
--msgid-bugs-address="$$msgid_bugs_address" \
;; \
*) \
$(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
--add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
--files-from=$(srcdir)/POTFILES.in \
--copyright-holder='$(COPYRIGHT_HOLDER)' \
--package-name="$${package_gnu}ube" \
--package-version='0.4.0-dev' \
--msgid-bugs-address="$$msgid_bugs_address" \
;; \
esac
Так, прежде чем я изобрету велосипед, там существующая функция cmake, чтобы сделать то же самое? Или я должен найти xgettext исполняемый файл, перечисляет файлы, и это вручную? Версия make-файла кажется довольно сложной (хотя это, кажется, обрабатывает много случаев); я не возражал бы не иметь необходимость записать cmake эквивалент ;)
Спасибо
PH