我可以在 Premake 中创建额外的 axes/dimensions 吗?
Can I create additional axes/dimensions in Premake?
Premake 5 为您提供了两个函数来分隔项目中的独立配置变量:configurations
和 platforms
。例如,您可能有:
configurations { "Debug", "Release" }
platform { "Windows", "Linux" }
documentation将这些称为轴,这是描述它们的好方法,因为您可以为每个轴进行独立设置:
Really, platforms are just another set of build configuration names, providing another axis on which to configure your project.
但是如果我想要另一个轴怎么办?例如,用于特定计算的数据类型:
calctypes { "Long", "Default", "Short" }
我可以创建这个新轴吗?如果可以,如何创建?
我认为 tags(将在下一个 alpha 版本中发布的新功能)可能正是您要寻找的。这是实施它们的拉取请求的示例:
workspace 'foobar'
configurations { 'release-std', 'debug-std', 'release-blz', 'debug-blz' }
filter { 'configuration:*-std' }
tags { 'use-std' }
filter { 'configuration:*-blz' }
tags { 'use-blz' }
project 'test'
filter { 'tags:use-blz' }
includedependencies { 'blz' }
defines { 'USE_BLZ' }
filter { 'tags:use-std' }
defines { 'USE_STD' }
更新: 如果您想了解如何添加自定义字段(例如 defines
、configurations
等),请查看api.register()
调用 _premake_init.lua. To see how to enable filtering on one of these fields, have a look at this pull request。
虽然添加新字段很简单,而且可以在任何地方完成,但我们需要做一些工作,然后才能像启用这些字段一样简单地进行过滤。
Premake 5 为您提供了两个函数来分隔项目中的独立配置变量:configurations
和 platforms
。例如,您可能有:
configurations { "Debug", "Release" }
platform { "Windows", "Linux" }
documentation将这些称为轴,这是描述它们的好方法,因为您可以为每个轴进行独立设置:
Really, platforms are just another set of build configuration names, providing another axis on which to configure your project.
但是如果我想要另一个轴怎么办?例如,用于特定计算的数据类型:
calctypes { "Long", "Default", "Short" }
我可以创建这个新轴吗?如果可以,如何创建?
我认为 tags(将在下一个 alpha 版本中发布的新功能)可能正是您要寻找的。这是实施它们的拉取请求的示例:
workspace 'foobar'
configurations { 'release-std', 'debug-std', 'release-blz', 'debug-blz' }
filter { 'configuration:*-std' }
tags { 'use-std' }
filter { 'configuration:*-blz' }
tags { 'use-blz' }
project 'test'
filter { 'tags:use-blz' }
includedependencies { 'blz' }
defines { 'USE_BLZ' }
filter { 'tags:use-std' }
defines { 'USE_STD' }
更新: 如果您想了解如何添加自定义字段(例如 defines
、configurations
等),请查看api.register()
调用 _premake_init.lua. To see how to enable filtering on one of these fields, have a look at this pull request。
虽然添加新字段很简单,而且可以在任何地方完成,但我们需要做一些工作,然后才能像启用这些字段一样简单地进行过滤。