premake5 如何设置线程构建块(TBB)?

premake5 how to set up thread building blocks(TBB)?

我正在尝试让 TBB 与 premake5 一起工作。

TBB 在其项目文件中进行了一些相当不标准的事情。

  1. 它在项目中包含.asm文件(premake5似乎没问题)

  2. 32位/64位等的.asm文件不同,所以根据架构需要排除一些文件。 TBB 通过在 VS 中使用 "exclude from build" 标志来做到这一点,这样文件就会显示在项目中,但如果它们没有被标记为已排除,则只是实际构建。我还没有看到任何方法可以在 premake5 中复制它。 Premake5 有 "excludes" 但它似乎完全从项目中删除了文件而不是将它们标记为未构建,它似乎在按平台过滤时也不起作用。

  3. asm文件在TBB的项目中标记为:Item Type = Microsoft Macro Assembler。我不确定如何让 premake5 做到这一点。目前,当我将它们添加到我的 premake5 生成的项目中时,项目类型为空白。 TBB 也标记它们 执行之前:Midl 之后执行:CustomBuild

这似乎超出了 premake5 支持的范围,所以也许它甚至不受支持:/ ?

It includes .asm files in the project(premake5 seems ok with this)

是的,这应该没问题。

The .asm files are different for 32bit/64bit etc, so some files need to be excluded depending on the architecture.

你会想做这样的事情:

solution "MySolution"
   configurations { "Debug", "Release" }
   platforms { "x86", "x86_64" }

project "MyProject"
    kind "ConsoleApp" -- or whatever set things up here

filter { "platforms:x86" }
    files {
       -- 32-bit files go here
    }

filter { "platforms:x86_64" }
    files {
        -- 64-bit files go here
    }

The asm files are marked as: Item Type = Microsoft Macro Assembler in TBB's project.

Premake 目前不会这样做,也不会自动包含 MASM 规则,probably also needed? Might be worth opening a ticket 因此开发人员可以解决它。