icu4c: improve ucrt (#5648)

pull/5657/head
star9029 3 weeks ago committed by GitHub
parent c04b5d56d4
commit b72caacb37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 34
      packages/i/icu4c/xmake.lua

@ -1,5 +1,4 @@
package("icu4c")
set_homepage("http://site.icu-project.org/")
set_description("C/C++ libraries for Unicode and globalization.")
@ -23,6 +22,14 @@ package("icu4c")
add_patches(">=69.1", path.join(os.scriptdir(), "patches", "72.1", "mingw.patch"), "9ddbe7f691224ccf69f8c0218f788f0a39ab8f1375cc9aad2cc92664ffcf46a5")
end
if is_plat("mingw") and is_subhost("msys") then
add_extsources("pacman::icu")
elseif is_plat("linux") then
add_extsources("pacman::icu", "apt::libicu-dev")
elseif is_plat("macosx") then
add_extsources("brew::icu4c")
end
add_configs("tools", {description = "Build tools.", default = false, type = "boolean"})
if is_plat("windows") then
add_configs("shared", {description = "Build shared library.", default = true, type = "boolean", readonly = true})
@ -33,10 +40,17 @@ package("icu4c")
end
on_load(function (package)
if package:config("tools") and package:is_plat("windows") then
if package:is_plat("windows") then
if package:config("tools") then
package:add("deps", "python 3.x", {kind = "binary"})
end
if package:has_runtime("MTd", "MDd") then
wprint("MTd/MDd runtime force to use debug package")
package:config_set("debug", true)
end
end
local libsuffix = package:is_debug() and package:is_plat("mingw", "windows") and "d" or ""
package:add("links", "icutu" .. libsuffix, "icuio" .. libsuffix)
if package:is_plat("mingw", "windows") then
@ -67,10 +81,24 @@ package("icu4c")
package:arch_set(arch_prev)
end
if package:has_runtime("MT", "MTd") then
local files = {
"source/common/common.vcxproj",
"source/i18n/i18n.vcxproj",
"source/extra/uconv/uconv.vcxproj",
"source/io/io.vcxproj",
"source/stubdata/stubdata.vcxproj",
}
for _, vcxproj in ipairs(files) do
io.replace(vcxproj, "MultiThreadedDLL", "MultiThreaded", {plain = true})
io.replace(vcxproj, "MultiThreadedDebugDLL", "MultiThreadedDebug", {plain = true})
end
end
local configs = {
sln,
"/p:SkipUWP=True",
"/p:_IsNativeEnvironment=true"
"/p:_IsNativeEnvironment=true",
}
if not package:config("tools") then

Loading…
Cancel
Save