x11 зависимость в формуле доморощенного? - PullRequest
0 голосов
/ 02 мая 2018

Как правильно указать зависимость x11 в формуле доморощенного? По умолчанию superenv удаляет / opt / X11 / lib из своих аргументов.

Я пишу формулу для пакета, который я могу собрать вне homebrew с помощью обычного configure, make install.

Итак, у меня есть эта функция установки:

  def install
        ENV["PKG_CONFIG_PATH"] = "/usr/local/opt/qt/lib/pkgconfig"
        # ENV["PATH"] = "/usr/local/bin:/usr/bin:/bin" <--- work around
        Dir.chdir("codebase")
        system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
        system "make install"    
  end

Фаза связи, которая получает эхо, показывает

/bin/sh ../../../../libtool  --tag=CXX   --mode=link clang++ .... -I /opt/X11/include ..... -L/opt/X11/lib ...

Но ссылка не работает с

 ld: library not found for -lX11

Если я добавлю это в начало определения класса, сборка будет успешной env :std

Кроме того, я могу установить PATH внутри функции сборки, и сборка будет успешной.

Это имеет смысл, поскольку в контексте brew install, / usr / local / Homebrew / Library / Homebrew / shims / super появляется в начале PATH, и этот каталог содержит clang ++, который кроме всего прочего удаляет компоненты / opt / X11.

Я полагаю, что для такого поведения есть веская причина, и мне любопытно, как лучше всего указать эту библиотеку X11.

1 Ответ

0 голосов
/ 07 мая 2018

Самый простой способ узнать, как что-то сделать при написании формул Хомбрю, - это посмотреть на существующие формулы. Для вашего случая вы можете посмотреть MuPDF облегченный просмотрщик PDF и XPS в зависимости от X11. В его формуле вы найдете решение:

depends_on :x11
...