add mimalloc
This commit is contained in:
parent
0385ac1c97
commit
fdcb5b70ff
33
packages/m/mimalloc-cmake/xmake.lua
Normal file
33
packages/m/mimalloc-cmake/xmake.lua
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package("mimalloc-cmake")
|
||||||
|
set_homepage("https://github.com/microsoft/mimalloc")
|
||||||
|
set_description("A general purpose allocator with high performance and small memory footprint")
|
||||||
|
add_versions("2.1.7", "...")
|
||||||
|
add_configs("secure", {description = "Use a secured version of mimalloc", default = false, type = "boolean"})
|
||||||
|
add_configs("installdir", {description = "malloc source install dir", default = nil})
|
||||||
|
-- 定义安装 mimalloc 的过程
|
||||||
|
set_sourcedir(path.join(os.scriptdir(), "latest"))
|
||||||
|
on_install(function (package, target)
|
||||||
|
local installdir = package:config("installdir")
|
||||||
|
print(installdir, package:installdir())
|
||||||
|
local configs = {"-DMI_OVERRIDE=OFF"}
|
||||||
|
table.insert(configs, "-DMI_BUILD_STATIC=" .. (package:config("shared") and "OFF" or "ON"))
|
||||||
|
table.insert(configs, "-DMI_BUILD_SHARED=" .. (package:config("shared") and "ON" or "OFF"))
|
||||||
|
table.insert(configs, "-DMI_SECURE=" .. (package:config("secure") and "ON" or "OFF"))
|
||||||
|
table.insert(configs, "-DMI_BUILD_TESTS=OFF")
|
||||||
|
table.insert(configs, "-DMI_BUILD_OBJECT=OFF")
|
||||||
|
-- 使用 CMake 从源码构建 mimalloc
|
||||||
|
import("package.tools.cmake").build(package, configs,{buildir = "build"})
|
||||||
|
local function get_dir(path)
|
||||||
|
if not os.isdir(path) then
|
||||||
|
os.mkdir(path)
|
||||||
|
end
|
||||||
|
return path
|
||||||
|
end
|
||||||
|
local lib = get_dir(path.join(installdir, "lib"))
|
||||||
|
if package:is_plat("windows") then
|
||||||
|
os.trycp("build/**.dll", lib)
|
||||||
|
os.trycp("build/**.lib", lib)
|
||||||
|
end
|
||||||
|
os.cp("include", installdir)
|
||||||
|
os.cp("src", installdir)
|
||||||
|
end)
|
||||||
Loading…
Reference in New Issue
Block a user