From 99bfe460b85ccb3562e10f12972852233870e649 Mon Sep 17 00:00:00 2001 From: Aleksandr Mezin Date: Mon, 17 Sep 2018 05:17:38 +0600 Subject: 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 --- build_scripts/main.py | 6 +++++- build_scripts/utils.py | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3