aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-04-16 10:10:16 +0200
committerStefan Boberg <[email protected]>2026-04-16 10:10:16 +0200
commitc2cc1b0741c5c9cb4145ed58ee3b8bbde773651c (patch)
tree2ae85b9298898bd2320662a298a445afaa0edb28
parentadd in-tree llhttp package definition (diff)
downloadzen-sb/llhttp-repo.tar.xz
zen-sb/llhttp-repo.zip
mimalloc: Add /Z7 build option on Windows, to ensure we get debug informationsb/llhttp-repo
-rw-r--r--repo/packages/m/mimalloc/xmake.lua18
1 files changed, 10 insertions, 8 deletions
diff --git a/repo/packages/m/mimalloc/xmake.lua b/repo/packages/m/mimalloc/xmake.lua
index 49492542f..cc6561325 100644
--- a/repo/packages/m/mimalloc/xmake.lua
+++ b/repo/packages/m/mimalloc/xmake.lua
@@ -49,6 +49,7 @@ package("mimalloc")
add_configs("secure", {description = "Use a secured version of mimalloc", default = false, type = "boolean"})
add_configs("rltgenrandom", {description = "Use a RtlGenRandom instead of BCrypt", default = false, type = "boolean"})
+ add_configs("embed_debug_info", {description = "Use /Z7 to embed debug info for linker merging", default = true, type = "boolean"})
add_deps("cmake")
@@ -71,16 +72,17 @@ package("mimalloc")
if package:version():le("2.0.1") and package:config("shared") and package:is_plat("windows") and package:is_arch("x86") then
io.replace("CMakeLists.txt", "-redirect.", "-redirect32.", {plain = true})
end
- local cxflags
+ local cxflags = {}
if package:config("rltgenrandom") then
- if xmake:version():ge("2.5.1") then
- cxflags = "-DMI_USE_RTLGENRANDOM"
- else
- -- it will be deprecated after xmake/v2.5.1
- package:configs().cxflags = "-DMI_USE_RTLGENRANDOM"
- end
+ table.insert(cxflags, "-DMI_USE_RTLGENRANDOM")
end
- import("package.tools.cmake").build(package, configs, {buildir = "build", cxflags = cxflags})
+ -- Use /Z7 on Windows so debug info is embedded in the .obj files and
+ -- merged into the final PDB by the linker, rather than living in a
+ -- separate PDB in the xmake package cache.
+ if package:is_plat("windows") and package:config("embed_debug_info") then
+ table.insert(cxflags, "/Z7")
+ end
+ import("package.tools.cmake").build(package, configs, {buildir = "build", cxflags = #cxflags > 0 and table.concat(cxflags, " ") or nil})
if package:is_plat("windows") then
os.trycp("build/**.dll", package:installdir("bin"))