自制公式中的x11依赖?

时间:2018-05-02 20:32:42

标签: homebrew x11

在自制软件公式中指定x11依赖项的正确方法是什么? 默认的superenv从其参数中删除/ opt / X11 / lib。

我正在编写一个程序包的公式,我可以使用通常的configure,make install在homebrew之外构建。

所以我有这个安装功能:

  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 :(得分:0)

在编写Hombrew公式时,了解如何做某事的最简单方法是查看现有公式。对于您的情况,您可以根据X11查看MuPDF轻量级PDF和XPS查看器。在其公式中,您将找到解决方案:

draw.rectangle(centerx, centery, width, height, angle, value, 'filled')