我可以在 Premake 中创建额外的 axes/dimensions 吗?

Can I create additional axes/dimensions in Premake?

Premake 5 为您提供了两个函数来分隔项目中的独立配置变量:configurationsplatforms。例如,您可能有:

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' }

更新: 如果您想了解如何添加自定义字段(例如 definesconfigurations 等),请查看api.register() 调用 _premake_init.lua. To see how to enable filtering on one of these fields, have a look at this pull request

虽然添加新字段很简单,而且可以在任何地方完成,但我们需要做一些工作,然后才能像启用这些字段一样简单地进行过滤。