把Rake嵌入到C++应用程序中?还是有适用于LUA的Lake?

我找到了一些关于在 C++ 应用程序中嵌入 Ruby 的问题。几乎所有排名靠前的回答都建议使用 Lua。

考虑到我心目中的这个项目更适合使用已经在 Rake 中表达的语法(它是一个规则引擎),是否有任何简单的方法将 Rake 嵌入到 C++ 应用程序中,或者是否有类似于 Rake 的 Lua 模块?

要澄清的是:如果可能的话,我希望这是一个自包含的应用程序。它应该具有最小的先决条件,因为它将在一个相当基础的(Windows)操作系统上运行。

原文链接 https://stackoverflow.com/questions/882764

点赞
stackoverflow用户41661
stackoverflow用户41661

至少有两个名为“Lua Make”的不同项目(您可以在 Google 上搜索),并且还与Lua Rocks相关联一种构建系统。不清楚Lua Rocks是否有任何用处,但是其他两种似乎值得一看。

2009-05-19 23:20:28
stackoverflow用户68204
stackoverflow用户68204

有许多构建系统可以使用 Lua,它们要么是基于 Lua 的,要么甚至是使用 Lua 实现的。其中一些在 Lua 用户维基 上列出。

在维基上列出的这些构建系统中,Bou 明确受到了 Rake 的启发。它的作者观察到“lake”这个名字在项目启动时已经被另一个构建系统使用,但没有提供链接,因此我不知道那个构建系统可能与之有关。自那时以来,Bou 已被重命名为 Lake,并搬到了新家。

Lake 是 Lua 社区的常规贡献者 Stevedonovan 的作品。与 Bou 一样,它几乎纯粹地使用 Lua 实现(其确实依赖于 LuaFileSystem 来进行文件系统访问)。它不像过滤器那样创建 Makefile 或 IDE 项目文件,而是根据用 Lua 编写的项目描述直接驱动编译器。构建项目是用 DSL(领域特定语言)描述的,其中包括访问 Lua 处理特殊情况的所有内容。

Lua 的“官方”二进制版本都来自一个名为 tecmake 的系统,它起源于 Tecgraf,就像 Lua 一样。 Tecmake 在 make 的基础上实现,通过包裹的 shell 脚本和一组常用的 Makefile 规则实现其约定。它对他们很有效,但个人来说,我从未能够让它在我的系统上运行。正在进行工作,以将 LuaBinaries 构建从 tecmake 的纠结中移动出来。

LuaRocks 使用 Lua 描述构建要求,几乎完全由 Lua 编写,旨在与分布式应用程序集成,以便应用程序可以进行自我更新。据我所知,LuaRocks 的目标之一是使项目构建使用它们的平台无关的“rock”文件,使用 LuaRocks 构建个人项目肯定会使它更容易发布供更广泛的分发。

作为后备选项,总是可以使用 Lua 作为扩展基于 makefile 的构建的另一种工具。我将它用作预处理任务的回退选项,否则我可能会将其委托给 awk 或 perl,例如从当前 fossil 修订版中收集详情到我的构建项目中。

更新:

随着时间的推移,知识得到了提高。正如 Victor T 在评论中所观察到的,Steve 的 Lake 实际上是以前被称为 Bou 的同一项目。显然,对于“Lake”这个名字的反对已经消失了,而我没有注意到它们是同一个工具。我已经编辑了原始答案和其更新,以更好地反映我的当前理解。

2009-05-20 21:20:27