summaryrefslogtreecommitdiff
path: root/xmake/core/base/cpu.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2021-04-06 00:06:30 +0800
committerruki <[email protected]>2021-04-06 00:06:30 +0800
commit52635df1a11759f5a93c5269d8e621150c520d4f (patch)
treed248379cb145e9d9665fdc5cc0e9b3a925536c8e /xmake/core/base/cpu.lua
parentccc90096bcddefe4562856fbfe2e7d02e0a481ea (diff)
add cpu info for freebsd
Diffstat (limited to 'xmake/core/base/cpu.lua')
-rw-r--r--xmake/core/base/cpu.lua24
1 files changed, 24 insertions, 0 deletions
diff --git a/xmake/core/base/cpu.lua b/xmake/core/base/cpu.lua
index cf9582b5b..ec24ab789 100644
--- a/xmake/core/base/cpu.lua
+++ b/xmake/core/base/cpu.lua
@@ -215,6 +215,30 @@ function cpu._info()
cpuinfo.cpu_family = cpu_family
cpuinfo.cpu_model = cpu_model
end
+ elseif os.host() == "bsd" then
+ local ok, dmesginfo = os.iorun("dmesg")
+ if ok and dmesginfo then
+ for _, line in ipairs(proc_cpuinfo:split('\n', {plain = true})) do
+ if not cpuinfo.vendor_id and line:startswith("Origin=") then
+ cpuinfo.vendor_id = line:match("Origin=\"(.-)\"")
+ end
+ if not cpuinfo.cpu_model and line:startswith("Model=") then
+ cpuinfo.cpu_model = line:match("Model=([%d%w]+)")
+ end
+ if not cpuinfo.cpu_family and line:startswith("Family=") then
+ cpuinfo.cpu_family = line:match("Family=([%d%w]+)")
+ end
+ if line:startswith("Features=") then
+ local cpu_features = line:match("Features=.*<(.-)>")
+ if cpu_features then
+ cpuinfo.cpu_features = (cpuinfo.cpu_features or "") .. " " .. cpu_features
+ end
+ end
+ end
+ if cpuinfo.cpu_features then
+ cpuinfo.cpu_features = cpuinfo.cpu_features:lower()
+ end
+ end
end
cpu._CPUINFO = cpuinfo
end