问题标签 [premake]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
static - 包含外部静态库的 Premake 指令
我有一个外部构建的静态库(在预制之外)。我使用什么样的库指令来告诉它在 make 文件中包含它。我在 OSX 上构建,似乎静态库需要包含在编译命令中的“.o”目标文件中。现在我只是手动将它破解到makefile中,但它很难看。我记得尝试这样做了几个星期,但没有找到解决方案。我决定几个月后回来再试一次。
有任何想法吗?也许有一些令人痛苦的显而易见的事情。
谢谢你
visual-studio-2010 - 在 premake 中包含外部解决方案
我正在尝试编写一个顶级premake4
脚本来构建一个具有多个外部依赖项的项目。
外部构建包括(据我所知)premake 不理解的 Java 和 CMake 之类的东西。该脚本会生成一个 MS Visual Studio 2010 解决方案。有没有办法告诉 premake 将项目包含在解决方案中,以便在 Visual Studio 中构建过时的外部项目将重建它们?
premake - 通过 premake 中的配置类型对变量进行专门化
我在 Visual Studio 2013 中使用 premake5,并尝试将第三方库链接到我的项目。这个库的调试版本像往常一样具有“d”后缀。这是示例脚本。
但是这个脚本在两个配置(调试和发布)icuin.lib 和 icuuc.lib 中都有链接。如果我在配置“发布”块中删除d = ""分配,那么这两个配置都链接 icund.lib 和 icuucd.lib 库。看起来 premake 在解析 %{d} 占位符时使用了最新看到的变量定义。如何更改我的脚本以获得正确的行为?谢谢!
premake - premake5 添加新的复杂字段
我正在尝试在我的 premake5 脚本中添加一个新的 premake5 字段,但无法理解如何指定 field.kind 。
我想添加一个包含 (path, string) 对列表的字段,但不知道如何指定种类 spec 。文档和示例不是特别清楚。
这就是我注册新领域的方式
在配置范围内,我像这样声明字段项
但是,在处理时间方面,我没有得到我在该领域的期望:
有人可以解释如何从 api.lua 中注册的字段种类正确构建复杂种类吗?
我知道“list:integer”指定了一个整数列表,但不知道“keyed”元素是如何工作的。
premake - premake5 将生成的文件添加到 vstudio 项目中
我已经覆盖了 vs2012 动作的 onProject 函数,它生成一些 cpp 文件,然后尝试将它们包含在项目中
这是尝试将每个生成的文件添加到项目中的函数
在大多数情况下 - 这一切都有效:文件正确生成并正确位置文件也正确包含在 vcxproj 文件中
我的问题是没有生成 vcxproj.filters 文件。当我运行 premake 我得到这个错误:
它对应于函数 premake.vstudio.vc2010.filterGroup(prj, groups, group) 我知道我创建的新 fcfg 需要有一个父级,但我不知道应该将它添加到何处或添加什么。
任何人都可以帮忙吗?
编辑 1
通过将此行添加到函数 mine.addFileToSources(extraFile) 的末尾,我已经完成了工作
这为文件配置提供了一个父节点,所以一切正常,但我觉得这样做有点脏,所以我会按照 Citron 的建议来看看
编辑 2
覆盖烘焙文件更加干净整洁。它不像 Citron 的代码那么简单,因为我需要来自烘焙文件的信息才能执行文件生成,但我现在确信我的代码是正确的,并且可能也可以与 vstudio 以外的其他导出器一起使用。
这是我的新代码:
premake - 根据给定的链接在项目范围内获取预制项目
承认我目前的范围是一个项目
我正在使用 premake-dev
我如何访问链接功能中引用的项目列表。目的是执行构建后命令,将一些生成的库复制到特定文件夹。
我应该存储项目返回值吗?
基于此,我将如何列出链接中列出的项目?
更新
我使用一小段代码成功列出了链接的项目:
现在问题不同了,当 premake 到达这段代码时(位于我的项目中,就在链接声明之后),尚未设置配置。
你不能使用:premake.project.eachconfig(prj)
因为它会抛出一个错误。
所以我正在考虑使用 API 注册新操作,我不确定这是否是最佳选择:
premake5 导出 --target=...
premake - 如何防止动态链接器中的绝对路径
我有一个包含各种项目的解决方案,其中一个是主要的可执行文件,其余的是可执行文件所依赖的库。每个都可以很好地编译和链接。但是,尝试启动可执行文件会产生奇怪的结果。使用 ldd,我看到可执行文件正在尝试查找如下库:
但是,对于每个项目,我将“bin/debug”(这是这些库的输出目录)声明为 libdirs 条目,并通过添加“BlahBlah”作为链接来链接库,其中“BlahBlah”是项目名称。
我什至不确定如何在没有预制的情况下完成此操作。任何帮助表示赞赏。
最初的意图是让库位于可执行文件旁边,然后设置一个 RPATH 来搜索可执行文件旁边的库。以现在的方式,它会搜索相对于可执行文件的绝对路径……我不知道如何将其关闭。
我正在使用premake5。我尝试使用每晚并自己编译。然而,上游目前尚未编译。
premake - 多平台预制脚本
我是 Node9 的作者,这是一个托管的混合操作系统,它结合了 Inferno 和 LuaJIT 来创建一个交互式的分布式开发环境。在此处查看项目:https ://github.com/jvburnes/node9
我创建了一个基本的 4.x premake 脚本来编译 OSX 的所有依赖项和主要源代码,但现在人们要求为 Linux、BSD 和 Windows 构建配置。我有执行此操作的代码,并且我想创建预制配置以在这些操作系统上构建和运行 Node9。我需要设置库并包含搜索路径、编译器名称以及每个平台的定义。
- 谁能指点我一个好的多平台预制脚本?
- 我是否使用“premake gmake”并以某种方式感知本机平台,还是需要将目标平台显式放置在命令行上并在 premake 配置和平台部分中引用该平台?
- 我听说 premake 4.x 是遗留的,premake 5.x 是未来的解决方案。它是否足够稳定和可用以构建所有这些平台?
我知道这是很多问题,但我想正确地做到这一点。
谢谢。
premake - Premake5 prebuildcommands 目录
我正在将 premake4 配置转换为 premake5。我的 prebuildcommands 失败了,因为这些命令是从根工作目录执行的,而不是 premake5.lua 所在的包含“prebuildcommands”的目录。premake4 在包含 prebuildcommands 调用的子目录中执行它们。
这是新的预期行为吗?如果是这样,它没有记录在我能找到的任何地方。只要不是错误,我不介意更正路径。
linker - 如何更改 premake 中的 libdirs 优先级?
我的 premake4.lua 文件中有以下几行
然后生成的 Makefile 将包含:
是否可以优先考虑我的自定义库目录?我的意思是我想要以下行:
我正在使用 premake4,但如果需要,我可以切换到 premake5。