aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreter.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2021-09-30 11:54:43 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2021-10-10 23:15:18 +0300
commit928078982c8643bffd95a8da06a1b4494fe87e2b (patch)
tree1e8e50892e5f329927d9196cea85e66801c1af03 /mesonbuild/interpreter/interpreter.py
parent31bea202c9dc9d288d787f0073f0e221971669ba (diff)
downloadmeson-928078982c8643bffd95a8da06a1b4494fe87e2b.zip
meson-928078982c8643bffd95a8da06a1b4494fe87e2b.tar.gz
meson-928078982c8643bffd95a8da06a1b4494fe87e2b.tar.bz2
Add --vsenv command line option and active VS only when needed
Diffstat (limited to 'mesonbuild/interpreter/interpreter.py')
-rw-r--r--mesonbuild/interpreter/interpreter.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index b82525f..9f2c705 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1115,6 +1115,16 @@ external dependencies (including libraries) must go to "dependencies".''')
mlog.log('Project name:', mlog.bold(proj_name))
mlog.log('Project version:', mlog.bold(self.project_version))
+ if not self.is_subproject():
+ # We have to activate VS before adding languages and before calling
+ # self.set_backend() otherwise it wouldn't be able to detect which
+ # vs backend version we need. But after setting default_options in case
+ # the project sets vs backend by default.
+ backend = self.coredata.get_option(OptionKey('backend'))
+ force_vsenv = self.user_defined_options.vsenv or backend.startswith('vs')
+ if mesonlib.setup_vsenv(force_vsenv):
+ self.build.need_vsenv = True
+
self.add_languages(proj_langs, True, MachineChoice.HOST)
self.add_languages(proj_langs, False, MachineChoice.BUILD)