diff options
author | Aleksandr Mezin <mezin.alexander@gmail.com> | 2018-09-17 05:17:38 +0600 |
---|---|---|
committer | Aleksandr Mezin <mezin.alexander@gmail.com> | 2018-09-18 22:36:22 +0000 |
commit | 99bfe460b85ccb3562e10f12972852233870e649 (patch) | |
tree | f9e1a9563c7fbc6a585411cd4a2fcb91a97752fc /build_scripts | |
parent | f53e7180936a2bf4f5d19c36e0abead44712af88 (diff) |
setup.py: parallel build by default
If '--jobs' option is not specified and environment variable isn't set,
set it to the number of logical CPUs if possible.
I'm adding the option almost every time I run 'setup.py', and probably
other people do it too. So maybe it's a good idea to enable parallel
build by default. I don't know why anyone would want a non-parallel
build, but it's still possible with '--jobs=1'.
Change-Id: Id593b7d472588d33f01c52a21afa1a08eacb04a6
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'build_scripts')
-rw-r--r-- | build_scripts/main.py | 6 | ||||
-rw-r--r-- | build_scripts/utils.py | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/build_scripts/main.py b/build_scripts/main.py index b64d6f1a9..03e4259d4 100644 --- a/build_scripts/main.py +++ b/build_scripts/main.py @@ -133,6 +133,7 @@ from setuptools.command.build_py import build_py as _build_py from .qtinfo import QtInfo from .utils import rmtree, detect_clang, copyfile, copydir, run_process_output, run_process from .utils import update_env_path, init_msvc_env, filter_match, macos_fix_rpaths_for_library +from .utils import cpu_count from .platforms.unix import prepare_packages_posix from .platforms.windows_desktop import prepare_packages_win32 from .wheel_override import wheel_module_exists, get_bdist_wheel_override @@ -228,7 +229,10 @@ if OPTION_JOBS: if not OPTION_JOBS.startswith('-j'): OPTION_JOBS = '-j' + OPTION_JOBS else: - OPTION_JOBS = '' + if sys.platform == 'win32' and OPTION_NO_JOM: + OPTION_JOBS = '' + else: + OPTION_JOBS = '-j' + str(cpu_count()) def is_debug_python(): return getattr(sys, "gettotalrefcount", None) is not None diff --git a/build_scripts/utils.py b/build_scripts/utils.py index 7160630d1..1b941aea9 100644 --- a/build_scripts/utils.py +++ b/build_scripts/utils.py @@ -1124,3 +1124,10 @@ def acceptCITestConfiguration(hostOS, hostOSVer, targetArch, compiler): print("Disabled " + compiler + " to " + targetArch + " from Coin configuration") return False return True + +def cpu_count(): + try: + import multiprocessing + return multiprocessing.cpu_count() + except (ImportError, NotImplementedError, AttributeError): + return 1 |