VCVars¶
Generates a file called conanvcvars.bat that activates the Visual Studio developer command prompt according
to the current settings by wrapping the vcvarsall
Microsoft bash script.
The VCVars generator can be used by name in conanfiles:
class Pkg(ConanFile):
generators = "VCVars"
[generators]
VCVars
And it can also be fully instantiated in the conanfile generate() method:
from conan import ConanFile
from conan.tools.microsoft import VCVars
class Pkg(ConanFile):
settings = "os", "compiler", "arch", "build_type"
requires = "zlib/1.2.11", "bzip2/1.0.8"
def generate(self):
ms = VCVars(self)
ms.generate()
Customization¶
conf¶
VCVars is affected by these [conf] variables:
tools.microsoft.msbuild:installation_pathindicates the path to Visual Studio installation folder. For instance:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community,C:\Program Files (x86)\Microsoft Visual Studio 14.0, etc.tools.microsoft:winsdk_versiondefines the specific winsdk version in the vcvars command line.tools.env.virtualenv:powershellgenerates an additionalconanvcvars.ps1so it can be run from the Powershell console.
Reference¶
- class VCVars(conanfile)¶
VCVars class generator to generate a
conanvcvars.batscript that activates the correct Visual Studio prompt.This generator will be automatically called by other generators such as
CMakeToolchainwhen considered necessary, for example if building with Visual Studio compiler using the CMakeNinjagenerator, which needs an active Visual Studio prompt. Then, it is not necessary to explicitly instantiate this generator in most cases.- Parameters:
conanfile –
ConanFile objectThe current recipe object. Always useself.
- generate(scope='build')¶
Creates a
conanvcvars.batfile that calls Visualvcvarswith the necessary args to activate the correct Visual Studio prompt matching the Conan settings.- Parameters:
scope –
stractivation scope, by default “build”. It means it will add a call to thisconanvcvars.batfrom the aggregating generalconanbuild.bat, which is the script that will be called by default inself.run()calls and build helpers such ascmake.configure()andcmake.build().