Luarock:在进行“make”操作时,将.lua文件复制到目录中。

根据此示例,我刚刚为仅包含.lua文件的rock创建了一个rockspec。 我不需要构建任何东西,因此将构建选项设置为

build = {
   type = "none",
   install = {
       lua = {
           "a.lua",
           "b.lua",
           ...
       }
   }
}

当我运行luarocks make时,它可以工作。但是,我注意到所有的文件都被转储到了/home/<username>/torch/install/share/lua/5.1/目录中。 我希望它们在../share/lua/5.1/<package_name>目录中。 我试图做如下操作:

       lua = {
           ["<package_name>"] = "a.lua",
           ...

       lua = {
           ["<package_name>.<package_name>"] = "a.lua",
           ...

但是两种方法都不起作用。有办法将这些文件放在rockspec中的目录中吗?

点赞
用户3677376
用户3677376

使用rockspecs的builtin构建模式非常容易:

-- ...
build = {
   type = "builtin",
   modules = {
       ["mypackage.a"] = "a.lua",
       ["mypackage.b"] = "b.lua"
   }
}

这将把a.lua安装为.../share/lua/5.1/mypackage/a.lua,将b.lua安装为.../share/lua/5.1/mypackage/b.lua,这样require("mypackage.a")(或require("mypackage.b"))就能正常工作了。

2016-01-23 23:29:53