【发布时间】:2015-06-09 00:12:30
【问题描述】:
承认我目前的范围是一个项目
我正在使用 premake-dev
solution "MySolution"
project "MyProject"
...
links
{
"lib1",
"lib2",
...
}
如何访问链接功能中引用的项目列表。 目的是执行构建后命令,将一些生成的库复制到特定文件夹。
我应该存储项目返回值吗?
local proj = project "MyProject"
基于此,我将如何列出链接中列出的项目?
更新
我使用一小段代码成功列出了链接的项目:
local prj = project() -- return the current project
local sln = solution() -- returne the current solution
local linkedPrjs = {}
for p in premake.solution.eachproject(sln) do
if table.find(prj.links, p.name) then
table.insert(linkedPrjs, p)
end
end
现在问题不同了,当 premake 到达这段代码(位于我的项目中,就在链接声明之后)时,尚未设置配置。
您不能使用:premake.project.eachconfig(prj),因为它会引发错误。
所以我正在考虑使用 API 注册新操作,我不确定这是否是最佳选择:
premake5 导出 --target=...
【问题讨论】:
-
我不太明白你想做什么。您的“lib1”等是其他预制项目吗?还是它们是外部库?
-
我的目的是找到构建的库,以便我可以轻松地操作它们,将它们复制到一些外部文件夹以供非预制使用。是的,所有列出的库都是预制项目。我设法使用一个小的 sn-p 将它们全部列出。但这无法解决问题,我将编辑我的问题并提供更新
-
如果这些库是预制项目,从那里简单地复制它们不是更容易吗?例如在您的“lib1”项目中,添加一个构建后命令,将 lib 复制到需要复制的任何位置?
-
这就是我想做的。但我想要一个自动过程,而不是手动设置,因为它容易出错:每次添加库时,我都必须确保它也被复制。目的是简化添加新库的过程
标签: premake