处理premake中的非源代码文件

时间:2015-01-17 13:56:45

标签: resources premake

我的项目是一个游戏,由几个源文件和几个资源组成,如图像,地图,模型等。其中一些需要由程序处理,例如我想转换所有图像从pngdds。由于我的构建是源代码构建,我希望将所有资源构建到构建文件夹中,因此对于传送,我只需要打包构建文件夹。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果您使用的是Prexke的4.x版本,我恐怕没有一个简单的解决方案。您可以嵌入数据(将它们复制到输出目录)

configuration "**.png"
   buildaction "Copy"

如果你想构建它们,我会做的就是复制它们,然后使用"后期构建"命令负责转换文件和清理。例如:

configuration ""
    postbuildcommands { "premake --file=build_resources.lua build" }

当然,您放在build_resources.lua中的内容取决于您,您甚至可以使用与用于创建项目的脚本相同的脚本。你只需要定义build动作及其作用(基本上解析输出文件夹,然后将每个png编译成dds',然后清理png' s。 您可能还需要添加选项以指定构建脚本的平台/配置。

现在,如果你正在使用最新版本的premake(在这里找到:http://sourceforge.net/projects/premake/files/Premake/nightlies/),你可以更轻松地实现这一目标:

-- filter is the equivalent of 'configuration' in Premake 5.
-- configuration is still supported for backward compatibility, but it
-- will be removed eventually, so better start using 'filter' :)
filter "files:**.png"

    -- this is simply a message shown in the Visual Studio output
    buildmessage "converting %{file.relpath} to dds ..."

    -- this is the actual custom compilation command
    buildcommands {
        "ddsconverter --input=%{file.abspath} --output=%{cfg.linktarget.directory}"
    }

有关更多信息,请参阅此处: https://bitbucket.org/premake/premake-dev/wiki/buildcommands

有关令牌的信息(%{xxx}允许您使用已知的预制路径而不编写它们的信息): https://bitbucket.org/premake/premake-dev/wiki/Tokens