mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 02:10:11 +01:00
scons: Use parallel builds by default.
This commit is contained in:
parent
02401cbaf0
commit
1e8177ee17
2 changed files with 47 additions and 0 deletions
|
|
@ -163,6 +163,25 @@ def createInstallMethods(env):
|
|||
env.AddMethod(install_shared_library, 'InstallSharedLibrary')
|
||||
|
||||
|
||||
def num_jobs():
|
||||
try:
|
||||
return int(os.environ['NUMBER_OF_PROCESSORS'])
|
||||
except (ValueError, KeyError):
|
||||
pass
|
||||
|
||||
try:
|
||||
return os.sysconf('SC_NPROCESSORS_ONLN')
|
||||
except (ValueError, OSError, AttributeError):
|
||||
pass
|
||||
|
||||
try:
|
||||
return int(os.popen2("sysctl -n hw.ncpu")[1].read())
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
def generate(env):
|
||||
"""Common environment generation code"""
|
||||
|
||||
|
|
@ -207,6 +226,10 @@ def generate(env):
|
|||
env.SConsignFile(os.path.join(build_dir, '.sconsign'))
|
||||
env.CacheDir('build/cache')
|
||||
|
||||
# Parallel build
|
||||
if env.GetOption('num_jobs') <= 1:
|
||||
env.SetOption('num_jobs', num_jobs())
|
||||
|
||||
# C preprocessor options
|
||||
cppdefines = []
|
||||
if debug:
|
||||
|
|
|
|||
|
|
@ -206,6 +206,25 @@ _bool_map = {
|
|||
}
|
||||
|
||||
|
||||
def num_jobs():
|
||||
try:
|
||||
return int(os.environ['NUMBER_OF_PROCESSORS'])
|
||||
except (ValueError, KeyError):
|
||||
pass
|
||||
|
||||
try:
|
||||
return os.sysconf('SC_NPROCESSORS_ONLN')
|
||||
except (ValueError, OSError, AttributeError):
|
||||
pass
|
||||
|
||||
try:
|
||||
return int(os.popen2("sysctl -n hw.ncpu")[1].read())
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
def generate(env):
|
||||
"""Common environment generation code"""
|
||||
|
||||
|
|
@ -266,6 +285,10 @@ def generate(env):
|
|||
# different scons versions building the same source file
|
||||
env.SConsignFile(os.path.join(env['build'], '.sconsign'))
|
||||
|
||||
# Parallel build
|
||||
if env.GetOption('num_jobs') <= 1:
|
||||
env.SetOption('num_jobs', num_jobs())
|
||||
|
||||
# Summary
|
||||
print
|
||||
print ' platform=%s' % env['platform']
|
||||
|
|
@ -274,6 +297,7 @@ def generate(env):
|
|||
print ' debug=%s' % ['no', 'yes'][env['debug']]
|
||||
print ' profile=%s' % ['no', 'yes'][env['profile']]
|
||||
print ' build=%s' % env['build']
|
||||
print ' %s jobs' % env.GetOption('num_jobs')
|
||||
print
|
||||
|
||||
# Load tool chain
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue