From 02411882d17b8a71ba900cd803dfc3b5ec612da7 Mon Sep 17 00:00:00 2001 From: ruki Date: Tue, 7 Sep 2021 00:54:27 +0800 Subject: add os.default_njob --- xmake/core/base/os.lua | 15 +++++++++++++++ xmake/core/sandbox/modules/os.lua | 1 + 2 files changed, 16 insertions(+) diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua index ea913b977..312d5705d 100644 --- a/xmake/core/base/os.lua +++ b/xmake/core/base/os.lua @@ -1237,6 +1237,21 @@ function os.cpuinfo(name) return require("base/cpu").info(name) end +-- get the default parallel jobs number +function os.default_njob() + local njob = math.ceil(os.cpuinfo().ncpu * 3 / 2) + if os.host() == "windows" and njob > 128 then + njob = 128 + end + if njob > 512 then + njob = 512 + end + if njob < 1 then + njob = 1 + end + return njob +end + -- read the content of symlink function os.readlink(symlink) return os._readlink(path.absolute(symlink)) diff --git a/xmake/core/sandbox/modules/os.lua b/xmake/core/sandbox/modules/os.lua index beb60ddab..9f6fcd8d8 100644 --- a/xmake/core/sandbox/modules/os.lua +++ b/xmake/core/sandbox/modules/os.lua @@ -65,6 +65,7 @@ sandbox_os.joinenvs = os.joinenvs sandbox_os.pbpaste = os.pbpaste sandbox_os.pbcopy = os.pbcopy sandbox_os.cpuinfo = os.cpuinfo +sandbox_os.default_njob = os.default_njob sandbox_os.emptydir = os.emptydir sandbox_os.filesize = os.filesize sandbox_os.features = os.features -- cgit v1.3.1