Premake

警告

此功能是实验性的,可能会发生重大更改。有关更多信息,请参阅 Conan 稳定性 部分。

Premake 构建助手是对 Premake 命令行调用的封装。它将抽象项目配置和构建命令。

该助手 intended to be used in the conanfile.py build() 方法中,当包由 Conan 直接构建(create, install)时自动调用 Premake 命令。

用法示例

from conan.tools.premake import Premake

class Pkg(ConanFile):
    settings = "os", "compiler", "build_type", "arch"

    # The PremakeToolchain generator is always needed to use premake helper
    generators = "PremakeToolchain"

    def build(self):
        p = Premake(self)

        # Set the main Lua configuration file (default: premake5.lua)
        p.luafile = "myproject.lua"

        # Pass custom arguments to Premake (translates to --{key}={value})
        p.arguments["myarg"] = "myvalue"

        # Automatically determines the correct action:
        # - For MSVC, selects vs<version> based on the compiler version
        # - Defaults to "gmake" for other compilers
        # p.configure() will run: premake5 --file=myproject.lua <action> --{key}={value} ...
        p.configure()
        # p.build() will invoke proper compiler depending on action (automatically detected by profile)
        p.build("HelloWorld.sln")

参考

class Premake(conanfile)

当包正在构建时,此类会调用 Premake 命令。请注意,这个类应该与 PremakeToolchain 生成器一起使用。

此 premake 生成器仅兼容 premake5

参数:

conanfile< ConanFile 对象 > 当前配方对象。始终使用 self

luafile

根 premake5 lua 文件的路径(默认为 premake5.lua

arguments

键值对。将转换为“–{key}={value}”

configure()

运行 premake5 <action> [FILE],它将根据 action 生成相应的构建脚本。

build(workspace, targets=None, msbuild_platform=None)

根据 action,此方法将运行 msbuildmake 并带上 N_JOBS。您可以通过配置文件行 tools.build:jobs=N_JOBS 在您的 profile [conf] 部分指定 N_JOBS

参数:
  • workspacestr 指定要编译的解决方案(仅用于 MSBuild)。

  • targetsList[str] 声明要构建的项目(None 表示构建所有项目)。

  • msbuild_platformstr 指定内部 MSBuild 生成器的平台(仅用于 MSBuild)。

conf

Premake 构建助手受以下 [conf] 变量的影响

  • tools.build:verbosity,它接受 quietverbose 中的一个,并在 Premake.configure() 中设置 --quiet 标志。

  • tools.compilation:verbosity,它接受 quietverbose 中的一个,并在 Premake.build() 中设置 --verbose 标志。