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,此方法将运行
msbuild或make并带上N_JOBS。您可以通过配置文件行tools.build:jobs=N_JOBS在您的 profile[conf]部分指定N_JOBS。- 参数:
workspace –
str指定要编译的解决方案(仅用于MSBuild)。targets –
List[str]声明要构建的项目(None 表示构建所有项目)。msbuild_platform –
str指定内部 MSBuild 生成器的平台(仅用于MSBuild)。
conf¶
Premake 构建助手受以下 [conf] 变量的影响
tools.build:verbosity,它接受quiet或verbose中的一个,并在Premake.configure()中设置--quiet标志。tools.compilation:verbosity,它接受quiet或verbose中的一个,并在Premake.build()中设置--verbose标志。