使用C和Haskell的项目构建系统

9

我正在做一个使用C和Haskell的项目。目前,我正在使用CMake构建C共享库,使用cabal构建Haskell可执行文件。有没有更统一的方法来做到这一点?我能否从CMake生成的Makefile中调用cabal,或者是否有办法直接从Cabal构建C库?谢谢。


你真的需要一个C库吗?你可以通过Cabal直接指定C源文件,并将它们编译和链接到你的项目中。 - John L
1
我正在开发一种编程语言,它将源代码编译为C语言作为中间语言。解析器和C代码生成器是用Haskell编写的。C中间代码被传输到系统的C编译器,该编译器链接共享库。因此,库和可执行文件是分开的实体;我不需要将Haskell内容与库链接起来。 - spacepotato
你可以在cabal文件中指定自定义构建模式,并在cabal构建过程的适当时候运行cmake(可能是在Haskell包构建之前或之后)。请参阅 UserHooks 文档了解更多信息。 - user2407038
1
您只需要在CMake中创建自定义命令来调用Cabal。请参阅:http://www.cmake.org/cmake/help/v3.0/command/add_custom_command.html - Beanz
1个回答

1
CMake也可以实现你想要的功能。但是它复制了cabal的许多功能。因此,你可以从任何你选择使用的构建工具中调用cabal(对于cmake,使用自定义命令;对于makefiles,这是相当明显的),直接构建二进制文件(请参见cabal build -v)。
请参见是否可能在Haskell项目中使用cmake?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接