Skip to content

Commit f37a6f8

Browse files
fix: android build
1 parent 1338d9a commit f37a6f8

4 files changed

Lines changed: 76 additions & 33 deletions

File tree

deps/breeze-js.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
local BREEZE_JS_VERSION = "2026.03.30+1"
2-
local BREEZE_JS_HASH = "9d70f46e7f9458389578b745e547f7ecec8f9489"
1+
local BREEZE_JS_VERSION = "2026.03.30+2"
2+
local BREEZE_JS_HASH = "b2d9f0de441f0f8b36e20b2d66a52d31fbf10d1c"
33
local BREEZE_JS_SOURCEDIR = path.join(os.scriptdir(), "../", "../GitHub/breeze-js")
44
local USE_LOCAL = os.exists(BREEZE_JS_SOURCEDIR)
55

deps/libffi.lua

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package("libffi")
2+
set_homepage("https://sourceware.org/libffi/")
3+
set_description("Portable Foreign Function Interface library.")
4+
set_license("MIT")
5+
6+
set_urls("https://github.com/libffi/libffi/releases/download/v$(version)/libffi-$(version).tar.gz",
7+
"https://github.com/libffi/libffi.git")
8+
add_versions("3.4.8", "bc9842a18898bfacb0ed1252c4febcc7e78fa139fd27fdc7a3e30d9d9356119b")
9+
add_versions("3.4.7", "138607dee268bdecf374adf9144c00e839e38541f75f24a1fcf18b78fda48b2d")
10+
add_versions("3.2.1", "d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37")
11+
add_versions("3.3", "72fba7922703ddfa7a028d513ac15a85c8d54c8d67f55fa5a4802885dc652056")
12+
add_versions("3.4.2", "540fb721619a6aba3bdeef7d940d8e9e0e6d2c193595bc243241b77ff9e93620")
13+
add_versions("3.4.4", "d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676")
14+
add_versions("3.4.6", "b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e")
15+
16+
if is_plat("linux") then
17+
add_extsources("apt::libffi-dev", "pacman::libffi")
18+
elseif is_plat("macosx") then
19+
add_extsources("brew::libffi")
20+
end
21+
22+
on_load("windows", function (package)
23+
if not package:config("shared") then
24+
package:add("defines", "FFI_STATIC_BUILD")
25+
end
26+
end)
27+
28+
on_load("macosx", "linux", "bsd", "mingw", function (package)
29+
if package:gitref() then
30+
package:add("deps", "autoconf", "automake", "libtool")
31+
elseif package:version():le("3.2.1") then
32+
package:add("includedirs", "lib/libffi-" .. package:version_str() .. "/include")
33+
end
34+
end)
35+
36+
on_install("windows", "iphoneos", "cross", "android", function (package)
37+
io.gsub("fficonfig.h.in", "# *undef (.-)\n", "${define %1}\n")
38+
os.cp(path.join(os.scriptdir(), "port", "xmake.lua"), "xmake.lua")
39+
import("package.tools.xmake").install(package, {
40+
vers = package:version_str()
41+
})
42+
end)
43+
44+
on_install("macosx", "linux", "bsd", "mingw", function (package)
45+
-- https://github.com/libffi/libffi/issues/127
46+
local configs = {"--disable-silent-rules", "--disable-dependency-tracking", "--disable-multi-os-directory"}
47+
table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
48+
table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
49+
if package:debug() then
50+
table.insert(configs, "--enable-debug")
51+
end
52+
import("package.tools.autoconf").install(package, configs)
53+
end)
54+
55+
on_test(function (package)
56+
assert(package:has_cfuncs("ffi_closure_alloc", {includes = "ffi.h"}))
57+
end)

deps/yalantinglibs.lua

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,7 @@ package("cinatra")
44
set_description("modern c++(c++20), cross-platform, header-only, easy to use http framework")
55
set_license("MIT")
66

7-
add_urls("https://github.com/qicosmos/cinatra/archive/refs/tags/$(version).tar.gz",
8-
"https://github.com/qicosmos/cinatra.git")
9-
10-
add_versions("0.9.5", "f21448332f56484af76347a3da30099dcd155d31ac9d3098faf7e9d6cb1e0c34")
11-
add_versions("0.9.4", "2b8b4e264f8083674554db55ca137998f02c528730cf9565697234fec9de3378")
12-
add_versions("0.9.1", "d1a8018e41caabbda2c380175b632e3c9c10b519727f6b998eda4e3f4ede84bd")
13-
add_versions("v0.8.9", "007dc38aceedf42d03a9c05dc9aa6d2f303456ae7ce1100800df7a565b83b510")
14-
add_versions("v0.8.0", "4e14d5206408eccb43b3e810d3a1fe228fbc7496ded8a16b041ed12cbcce4479")
15-
16-
add_patches(">=0.8.9 <=0.9.2", "patches/0.8.9/windows-move.patch", "c913ed0e9044ffc0ced40516245ec0d55262f8eabd30244d9911c3f0427a60f5")
7+
add_urls("https://github.com/std-microblock/cinatra.git")
178

189
add_configs("ssl", {description = "Enable SSL", default = false, type = "boolean"})
1910
add_configs("gzip", {description = "Enable GZIP", default = false, type = "boolean"})
@@ -22,7 +13,7 @@ package("cinatra")
2213
add_configs("aarch64", {description = "Enable aarch64 instruction set (only arm)", default = false, type = "boolean"})
2314

2415
add_deps("asio")
25-
add_deps("async_simple", {configs = {aio = false}})
16+
add_deps("async_simple 18f3882be354d407af0f0674121dcddaeff36e26", {configs = {aio = false}})
2617

2718
on_check("windows", function (package)
2819
local vs_toolset = package:toolchain("msvc"):config("vs_toolset")
@@ -74,21 +65,7 @@ package("yalantinglibs")
7465
set_urls("https://github.com/alibaba/yalantinglibs/archive/refs/tags/$(version).tar.gz",
7566
"https://github.com/alibaba/yalantinglibs.git")
7667

77-
add_versions("0.6.0", "798c32a0d25c6306d6ff3d9dbd1c561a41e16cc11bd30b8993c737f6ac0517d9")
78-
add_versions("0.5.8", "49b631c191f139ff465b489663a620f3ae24af6baa236cc1e3d96f3ac7506d73")
79-
add_versions("0.5.7", "1c1057289e5488f90dd326fd2bb9d3173bad11eb5b06bc0a8bf0fa80857e1cfa")
80-
add_versions("0.5.6", "b2656f794af30c5b83952b7c73c2dabf949061ddb6284d18d7f0c0560244b35a")
81-
add_versions("0.5.5", "7962579c1414d1ade4fd22316476723d54112c919514bf1e6015a1870e5e68f7")
82-
add_versions("0.5.3", "9d24612975d38fa4b4a05bd9f8f5cb65d447365e5eb3661d0eba9701d383523a")
83-
add_versions("0.5.2", "e63500b9b84b6efd76bfc375d0972c0376d98067f7a6118bfd9a3048d557f46a")
84-
add_versions("0.4.0", "35d88b5e329f88edb702c1c40a67dedb4438898774c96bb6f3f1704ab828257f")
85-
add_versions("0.3.11", "1766ca1ec977e2dd56dabdcad3172dc1b79c3bd1acd26ea2de019299fa7e888a")
86-
add_versions("0.3.9", "aea6c5c99297f9b875eac8cabdf846b8f8e792bf7ccb3da8e0afda90ea62f00b")
87-
add_versions("0.3.8", "a9966687a2ac1ed0b1a001a69e144db4cff4cdf77a5a80c00364e6ea687d3c52")
88-
add_versions("0.3.7", "b4258806173f63034aa529913601bc3d90da8a598725c0edf0be1a8c5c6f32b8")
89-
add_versions("0.3.6", "92f694ad42537f95535efc648fc5e73e82f840dae4f54524a096050db398214b")
90-
add_versions("0.3.4", "dd5edd3f43f23cd4b0614896e6587b61bb38c981dc21c85a54bcc54800d0dfe8")
91-
add_versions("0.3.5", "8d382573da01449c4f83fccbbc3bdc08d221651f3fc8b9137eb4fbdb703677c2")
68+
add_versions("2026.03.30", "0c98464dd202aaa6275a8da3297719a436b8a51a")
9269

9370
add_configs("ssl", {description = "Enable ssl support", default = false, type = "boolean"})
9471
add_configs("pmr", {description = "Enable pmr support", default = false, type = "boolean"})
@@ -98,7 +75,11 @@ package("yalantinglibs")
9875
add_configs("struct_pack_unportable_optimize", {description = "enable struct_pack optimize(but cost more compile time)", default = false, type = "boolean"})
9976

10077
add_deps("cmake")
101-
add_deps("cinatra", "iguana")
78+
add_deps("cinatra d9485603c89d1fbb286f459f4d3dfdf4b44a04df", "iguana", {
79+
configs = {
80+
ssl = true
81+
}
82+
})
10283

10384
on_check("windows", function (package)
10485
local vs_toolset = package:toolchain("msvc"):config("vs_toolset")
@@ -163,4 +144,4 @@ package("yalantinglibs")
163144
std::vector<char> buffer = struct_pack::serialize(person1);
164145
}
165146
]]}, {configs = {languages = "c++20"}}))
166-
end)
147+
end)

xmake.lua

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ add_rules("plugin.compile_commands.autoupdate", {outputdir = "build"})
33

44
set_languages("c++23")
55

6-
includes("deps/breeze-js.lua")
76
includes("deps/yalantinglibs.lua")
7+
includes("deps/breeze-js.lua")
88

99
add_requires("breeze-js-runtime")
1010
add_requires("capstone", "fmt", "libffi", "asmjit", "gtest")
@@ -21,8 +21,13 @@ elseif is_os("android") then
2121
add_defines("CHROMATIC_ANDROID")
2222
end
2323

24+
if is_os("linux") or is_os("android") then
25+
add_cxflags("-fPIC")
26+
add_ldflags("-fPIC")
27+
end
28+
2429
-- Architecture defines
25-
if is_arch("arm64", "aarch64") then
30+
if is_arch("arm64", "aarch64", "arm64-v8a") then
2631
add_defines("CHROMATIC_ARM64")
2732
elseif is_arch("x86_64", "x64") then
2833
add_defines("CHROMATIC_X64")
@@ -44,7 +49,7 @@ target("chromatic-core")
4449
-- Platform link libraries
4550
if is_os("windows") then
4651
add_syslinks("kernel32", "psapi", "user32", "dbghelp")
47-
elseif is_os("linux") or is_os("android") then
52+
elseif is_os("linux") then
4853
add_syslinks("dl", "pthread")
4954
elseif is_os("macosx") then
5055
add_syslinks("dl", "pthread")

0 commit comments

Comments
 (0)