summaryrefslogtreecommitdiffstats
path: root/python/mozbuild/mozbuild/backend/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/mozbuild/mozbuild/backend/__init__.py')
-rw-r--r--python/mozbuild/mozbuild/backend/__init__.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/python/mozbuild/mozbuild/backend/__init__.py b/python/mozbuild/mozbuild/backend/__init__.py
new file mode 100644
index 0000000000..e7097eb614
--- /dev/null
+++ b/python/mozbuild/mozbuild/backend/__init__.py
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+backends = {
+ "Clangd": "mozbuild.backend.clangd",
+ "ChromeMap": "mozbuild.codecoverage.chrome_map",
+ "CompileDB": "mozbuild.compilation.database",
+ "CppEclipse": "mozbuild.backend.cpp_eclipse",
+ "FasterMake": "mozbuild.backend.fastermake",
+ "FasterMake+RecursiveMake": None,
+ "RecursiveMake": "mozbuild.backend.recursivemake",
+ "StaticAnalysis": "mozbuild.backend.static_analysis",
+ "TestManifest": "mozbuild.backend.test_manifest",
+ "VisualStudio": "mozbuild.backend.visualstudio",
+}
+
+
+def get_backend_class(name):
+ if "+" in name:
+ from mozbuild.backend.base import HybridBackend
+
+ return HybridBackend(*(get_backend_class(name) for name in name.split("+")))
+
+ class_name = "%sBackend" % name
+ module = __import__(backends[name], globals(), locals(), [class_name])
+ return getattr(module, class_name)