根据平台 Premake 扩展

extension according platform Premake

我有一个处理一堆 Matlab/Mex 函数和静态库的 premake 文件。每个 matlab 函数一个项目,每个静态库一个项目。

我正在使用四个平台

platforms { "Win32", "Win64","Linux32","Linux64" }

我需要在 Win32 和 Linux32 平台上,matlab 函数的扩展名 (targetextension) 是“.mexglx”,在 "Win64" 和 "Linux64" 平台上,扩展名 (targetextension) 是“ .mexa64”。但我不想在库项目中使用该扩展。

我认为我需要使用规则,但我不知道如何使用它。

是运行和

if os.is64bit() then
    extension = ".mexa64"
else
    extension = ".mexglx"
end
...
project "foo"
    kind "ConsoleApp"
    language "C++"
    files { "foo.cpp" }
    targetextension(extension)

但这显然很糟糕

这个怎么样?

filter { "platforms:*32", "kind:not StaticLib" }
   targetextension ".mexglx"

filter { "platforms:*64", "kind:not StaticLib" }
   targetextension ".mexa64"