python/mozbuild/mozbuild/config.py
author Boris Zbarsky <bzbarsky@mit.edu>
Tue, 07 May 2013 22:34:56 -0400
changeset 142158 6e00018528cd8dca0386f0405bedb019cd9d516c
parent 120337 4f96fdb5e4f9b9e101e2e3c5f535bff8e0fe8f6c
permissions -rw-r--r--
Bug 869311. More rooting in dom/bindings and content/base. r=smaug

# 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/.

from __future__ import unicode_literals

import multiprocessing

from mach.config import (
    ConfigProvider,
    PositiveIntegerType,
)

from mach.decorators import SettingsProvider


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

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

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

        register('build', 'threads', PositiveIntegerType,
            default=multiprocessing.cpu_count())