author Gregory Szorc <>
Tue, 06 Nov 2012 16:58:13 -0800
changeset 120337 4f96fdb5e4f9b9e101e2e3c5f535bff8e0fe8f6c
permissions -rw-r--r--
Bug 808336 - Part 2: Discover mach settings providers via decorators; r=jhammel With this patch, mach is now decoupled from the build system and is truly a generic command dispatching framework.

# 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

from __future__ import unicode_literals

import multiprocessing

from mach.config import (

from mach.decorators import SettingsProvider

class BuildConfig(ConfigProvider):
    """The configuration for mozbuild."""

    def __init__(self, settings):
        self.settings = settings

    def _register_settings(cls):
        def register(section, option, type_cls, **kwargs):
            cls.register_setting(section, option, type_cls, domain='mozbuild',

        register('build', 'threads', PositiveIntegerType,