我正在将premake4配置转换为premake5。我的executed命令失败了,因为命令是从根工作目录执行的,而不是从包含“prebuildcommands”的premake5.lua所在的目录执行的。premake4在包含prebuildcommands调用的子目录中执行它们。
这是新的预期行为吗?如果是这样,在我能找到的任何地方都没有文档记录。我不介意纠正路径,只要它不是一个bug。
发布于 2015-06-26 01:23:48
在我看来,这是正确的行为。Premake不会尝试解析命令来识别路径,因此它们在输入时保持不变。命令本身由构建工具(Visual Studio、GMake等)执行。因此将在工具当时设置为最新的任何目录中操作。
如果我没看错的话,您希望该命令在项目目录中执行,那么:
prebuildcommands {
"%{prj.location}/styx/utils/ndate > %{prj.location}/include/kerndate.h"
}对于Visual Studio,Premake会将这些标记转换为$(ProjectDir),这样它们就会相对于生成的项目文件保留下来。
https://stackoverflow.com/questions/31015958
复制相似问题