Automake Datadir и префикс в Python - PullRequest
2 голосов
/ 24 декабря 2011

Скажите, у меня есть my_application.py.in для automake, чтобы сгенерировать my_application.py. Как получить datadir в мое приложение с расширенным $ {prefix}? Сейчас лучшее, что я могу понять, это использовать replace() в моем приложении на Python, но, я полагаю, есть более подходящий способ.

if __name__ == "__main__":
    app = Application()
    app.VERSION = '@VERSION@'
    app.PACKAGE = '@PACKAGE@'
    # How should I get the DATA_DIR in this next line?
    app.DATA_DIR = "@datarootdir@".replace("${prefix}", "@prefix@")
    app.run()

Ответы [ 2 ]

3 голосов
/ 25 декабря 2011

Вам нужно сделать замену в make раз.Это проще в C, где вы можете установить #define, но для Python я бы попробовал что-то вроде этого:

foo.py: foo.py.in
        [ -f $@ ] && rm -f $@
        $(SED) -e "s:[@]datarootdir@:$(datarootdir):" $< > $@
        chmod a-w $@

(добавьте AC_PROG_SED к configure.ac)

0 голосов
/ 26 декабря 2011

Один из распространенных приемов - использовать adl_RECURSIVE_EVAL (из архива автоконфигурации) в файле configure.ac для получения полностью раскрытого пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...