使用configure
Cabal 中的样式,您可以编写一个小配置脚本,用一个变量替换 sdl-config 命令的输出。然后这些值将在 $foo.buildinfo.in 文件中替换,产生一个 $foo.buildinfo 文件,Cabal 将包含在构建过程中。
通用解决方案:配置脚本
#!/bin/sh
SDLFLAGS=`sdl-config --cflags`
echo Found "$SDLFLAGS"
sed 's,@SDLFLAGS@,'"$SDLFLAGS"',' z.buildinfo.in > z.buildinfo
$foo.builinfo.in 文件
cc-options: @SDLFLAGS@
.cabal 文件
Build-type: Configure
当您运行“cabal configure”时,将创建 z.buildinfo 中的“cc-options”字段以保存:
cc-options: -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
哪个阴谋集团将包括在构建中。
完毕。
pkg-config工具的具体解决方案
对于支持pkg-config 配置风格的工具,例如sdl
orcairo
和其他,Cabal 已经有特定的支持:
pkgconfig-depends:包列表
构建此软件包所需的 pkg-config 软件包列表。它们可以用版本注释,例如 gtk+-2.0 >= 2.10, cairo >= 1.0。如果未指定版本约束,则假定任何版本都是可接受的。Cabal 使用 pkg-config 来查找软件包是否在系统上可用,并查找使用这些软件包所需的额外编译和链接器选项。
如果您需要绑定到支持 pkg-config 的 C 库(使用 pkg-config --list-all 来确定它是否受支持),那么最好使用此字段而不是硬编码选项到其他字段中.
所以sdl
你只需要:
pkgconfig-depends: sdl