Premake

警告

此功能处于实验阶段,可能会有重大更改。有关更多信息,请参阅Conan 稳定性部分。

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

此助手旨在用于 conanfile.pybuild() 方法中,以便在 Conan 直接构建包时(创建、安装)自动调用 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 object > 当前的配方对象。始终使用 self

luafile

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

arguments

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

configure()

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

build(workspace, targets=None)

根据操作,此方法将运行 msbuildmake,并使用 N_JOBS。您可以通过配置文件 [conf] 部分中的配置行 tools.build:jobs=N_JOBS 来指定 N_JOBS

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

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

conf

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

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

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