The MSBuild
build helper is a wrapper around the command line invocation of MSBuild. It abstracts the calls like msbuild "MyProject.sln" /p:Configuration=<conf> /p:Platform=<platform>
into Python method ones.
This helper can be used like:
from conan import ConanFile
from conan.tools.microsoft import MSBuild
class App(ConanFile):
settings = "os", "arch", "compiler", "build_type"
def build(self):
msbuild = MSBuild(self)
msbuild.build("MyProject.sln")
The MSBuild.build()
method internally implements a call to msbuild
like:
$ <vcvars-cmd> && msbuild "MyProject.sln" /p:Configuration=<configuration> /p:Platform=<platform>
Where:
<vcvars-cmd>
calls the Visual Studio prompt that matches the current recipesettings
.configuration
, typically Release, Debug, which will be obtained fromsettings.build_type
but this can be customized with thebuild_type
attribute.<platform>
is the architecture, a mapping from thesettings.arch
to the common 'x86', 'x64', 'ARM', 'ARM64'. This can be customized with theplatform
attribute.
You can customize the following attributes in case you need to change them:
- build_type (default
settings.build_type
): Value for the/p:Configuration
. - platform (default based on
settings.arch
to select one of these values: ('x86', 'x64', 'ARM', 'ARM64'
): Value for the/p:Platform
.
Example:
from conan import ConanFile
from conan.tools.microsoft import MSBuild
class App(ConanFile):
settings = "os", "arch", "compiler", "build_type"
def build(self):
msbuild = MSBuild(self)
msbuild.build_type = "MyRelease"
msbuild.platform = "MyPlatform"
msbuild.build("MyProject.sln")
MSBuild
is affected by these [conf]
variables:
tools.microsoft.msbuild:verbosity
accepts one of"Quiet", "Minimal", "Normal", "Detailed", "Diagnostic"
to be passed to theMSBuild.build()
call asmsbuild .... /verbosity:XXX
.tools.microsoft.msbuild:max_cpu_count
maximum number of CPUs to be passed to theMSBuild.build()
call asmsbuild .... /m:N
.
conan.tools.microsoft
MSBuild