diff options
| author | ruki <[email protected]> | 2024-10-25 22:53:02 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-10-25 22:53:02 +0800 |
| commit | 9ab3585df20a4b59e75675d86eb488154c0449e9 (patch) | |
| tree | e1fbe36e6d50d451ec71237cfa2f2069fd7dde28 /xmake/modules | |
| parent | 82c5c02fdf20a93ef3073f475b6c449dd7cba24b (diff) | |
improve linewidth
Diffstat (limited to 'xmake/modules')
| -rw-r--r-- | xmake/modules/private/utils/bin2c.lua | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/xmake/modules/private/utils/bin2c.lua b/xmake/modules/private/utils/bin2c.lua index 987a478f7..29c89338e 100644 --- a/xmake/modules/private/utils/bin2c.lua +++ b/xmake/modules/private/utils/bin2c.lua @@ -35,7 +35,7 @@ function _do_dump(binarydata, outputfile, opt) local p = 0 local e = binarydata:size() local line = nil - local linewidth = opt.linewidth or 0x20 + local linewidth = opt.linewidth or 32 local first = true while p < e do line = "" @@ -81,6 +81,22 @@ function _do_bin2c(binarypath, outputpath, opt) -- trace print("generating code data file from %s ..", binarypath) + -- optimize the default linewidth for reading large file + if not opt.linewidth then + local filesize = os.filesize(binarypath) + if filesize > 1024 * 1024 * 1024 then + opt.linewidth = 512 + elseif filesize > 100 * 1024 * 1024 then + opt.linewidth = 256 + elseif filesize > 10 * 1024 * 1024 then + opt.linewidth = 128 + elseif filesize > 1024 * 1024 then + opt.linewidth = 64 + else + opt.linewidth = 32 + end + end + -- do dump if utils.bin2c then utils.bin2c(binarypath, outputpath, opt) |
