premake5 как настроить строительные блоки потока (TBB)?

Я пытаюсь заставить TBB работать с premake5.

В файлах проекта TBB происходят довольно нестандартные вещи.

  1. Он включает файлы .asm в проект (с premake5 все в порядке)

  2. Файлы .asm отличаются для 32-битных/64-битных и т. д., поэтому некоторые файлы необходимо исключить в зависимости от архитектуры. TBB делает это, используя флаг «исключить из сборки» в VS, таким образом файлы отображаются в проекте, но являются фактической сборкой только в том случае, если они не помечены как исключенные. Я пока не вижу способа воспроизвести это в premake5. В Premake5 есть «исключает», но, похоже, он полностью удаляет файлы из проекта, вместо того, чтобы помечать их как несобранные, также кажется, что он не работает при фильтрации по платформам.

  3. Файлы asm помечены как: Тип элемента = Microsoft Macro Assembler в проекте TBB. Я не уверен, как заставить premake5 сделать это. В настоящее время, когда я добавляю их в свой сгенерированный проект premake5, тип элемента пуст. TBB также помечает их Execute Before: Midl Execute After: CustomBuild

Кажется, что это выходит за рамки того, что поддерживает premake5, так что, возможно, это даже не поддерживается:/?


person Froglegs    schedule 17.07.2015    source источник


Ответы (1)


Он включает файлы .asm в проект (с premake5 все в порядке)

Да, это должно быть хорошо.

Файлы .asm отличаются для 32-битных/64-битных и т. д., поэтому некоторые файлы необходимо исключить в зависимости от архитектуры.

Вы захотите сделать что-то вроде этого:

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
    }

Файлы asm помечены как: Тип элемента = Microsoft Macro Assembler в проекте TBB.

В настоящее время Premake не делает этого и автоматически не включает правило MASM, которое вероятно, также необходимо< /а>? Возможно, стоит открыть тикет, чтобы разработчики могли решить эту проблему.

person J. Perkins    schedule 18.07.2015
comment
Когда я фильтрую файлы, он просто включает их все. Оба файла 64/32 попадают в сборку, и он пытается собрать оба набора. - person Froglegs; 19.04.2016
comment
О, есть флаги {ExcludeFromBuild}, которые, кажется, работают. К сожалению, TBB имеет такую ​​сложную систему сборки с пользовательскими правилами сборки и MASM, что у premake5 нет никакой надежды построить ее IMO. Просто собираюсь вручную собрать tbb :( - person Froglegs; 19.04.2016