summaryrefslogtreecommitdiffstats
path: root/python/mozbuild/mozbuild/toolchains.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/mozbuild/mozbuild/toolchains.py')
-rw-r--r--python/mozbuild/mozbuild/toolchains.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/python/mozbuild/mozbuild/toolchains.py b/python/mozbuild/mozbuild/toolchains.py
new file mode 100644
index 0000000000..c5418089bb
--- /dev/null
+++ b/python/mozbuild/mozbuild/toolchains.py
@@ -0,0 +1,32 @@
+# 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/.
+
+import os
+
+import six
+
+
+def toolchain_task_definitions():
+ import gecko_taskgraph # noqa: triggers override of the `graph_config_schema`
+ from taskgraph.generator import load_tasks_for_kind
+
+ # Don't import globally to allow this module being imported without
+ # the taskgraph module being available (e.g. standalone js)
+ params = {"level": os.environ.get("MOZ_SCM_LEVEL", "3")}
+ root_dir = os.path.join(
+ os.path.dirname(__file__), "..", "..", "..", "taskcluster", "ci"
+ )
+ toolchains = load_tasks_for_kind(params, "toolchain", root_dir=root_dir)
+ aliased = {}
+ for t in toolchains.values():
+ aliases = t.attributes.get("toolchain-alias")
+ if not aliases:
+ aliases = []
+ if isinstance(aliases, six.text_type):
+ aliases = [aliases]
+ for alias in aliases:
+ aliased["toolchain-{}".format(alias)] = t
+ toolchains.update(aliased)
+
+ return toolchains