aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/backends.py
diff options
context:
space:
mode:
authorDaniel Mensinger <daniel@mensinger-ka.de>2018-12-29 22:53:59 +0100
committerDaniel Mensinger <daniel@mensinger-ka.de>2018-12-29 23:55:45 +0100
commit10ce5deb71a06a6f323516c68f7522c9d5ee7056 (patch)
tree87b47dd752eaa04e9a4ab97235209a57752c6b10 /mesonbuild/backend/backends.py
parent8a6c0aa13d6950332b955531ae0400303741d4b1 (diff)
downloadmeson-10ce5deb71a06a6f323516c68f7522c9d5ee7056.zip
meson-10ce5deb71a06a6f323516c68f7522c9d5ee7056.tar.gz
meson-10ce5deb71a06a6f323516c68f7522c9d5ee7056.tar.bz2
Introspection refactoring
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r--mesonbuild/backend/backends.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 4040251..e8adc99 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -124,10 +124,35 @@ class OptionOverrideProxy:
return OptionProxy(base_opt.name, base_opt.validate_value(self.overrides[option_name]))
return base_opt
+def get_backend_from_name(backend, build):
+ if backend == 'ninja':
+ from . import ninjabackend
+ return ninjabackend.NinjaBackend(build)
+ elif backend == 'vs':
+ from . import vs2010backend
+ return vs2010backend.autodetect_vs_version(build)
+ elif backend == 'vs2010':
+ from . import vs2010backend
+ return vs2010backend.Vs2010Backend(build)
+ elif backend == 'vs2015':
+ from . import vs2015backend
+ return vs2015backend.Vs2015Backend(build)
+ elif backend == 'vs2017':
+ from . import vs2017backend
+ return vs2017backend.Vs2017Backend(build)
+ elif backend == 'xcode':
+ from . import xcodebackend
+ return xcodebackend.XCodeBackend(build)
+ return None
+
# This class contains the basic functionality that is needed by all backends.
# Feel free to move stuff in and out of it as you see fit.
class Backend:
def __init__(self, build):
+ # Make it possible to construct a dummy backend
+ # This is used for introspection without a build directory
+ if build is None:
+ return
self.build = build
self.environment = build.environment
self.processed_targets = {}