Как проверить обязательное условие системной библиотеки в Build.PL - PullRequest
2 голосов
/ 09 декабря 2011

Учитывая, что я использую Module :: Build для сборки моего модуля perl, я хотел бы проверить наличие определенных предварительных требований к системной библиотеке в моем Build.PL и выйти с ошибкой, если они не найдены. Похоже, это лучший способ обеспечить выполнение необходимых предварительных условий при вызове компилятора. Я мог бы просто позволить сборке завершиться неудачно, когда она скомпонована, но я думаю, что обнаружение перед сборкой лучше. Вероятно, это просто вопрос поиска в тех же каталогах lib, которые система сборки будет использовать при компиляции, но я надеюсь, что в Module :: Build есть некоторые функциональные возможности, которые могут помочь в этом разобраться.

Если говорить точнее, в моем случае я хочу убедиться, что libicu установлен и доступен в libpath, используемом компилятором.

Ответы [ 2 ]

5 голосов
/ 09 декабря 2011

Звучит так, будто вы ищете Devel :: CheckLib . (Также есть ExtUtils :: PkgConfig для библиотек, которые используют pkg-config для отчета о конфигурации.)

Кстати, стандартный способ для Build.PL, чтобы сообщить, что обязательное условие не для Perl-модуля недоступно, состоит в том, чтобы напечатать сообщение, объясняющее, что отсутствует, а затем exit 0 звонит create_build_script. Devel :: CheckLib предоставляет для этого check_lib_or_exit функцию.

0 голосов
/ 30 марта 2012

Мой обычный подход - использовать ExtUtils :: PkgConfig , если это библиотека на основе pkg-config, или ExtUtils :: CChecker для проверки более сложных вещей, таких как старые библиотекикоторые не используют pkg-config или более тонкие функции и возможности ОС.

...