@@ -26,17 +26,18 @@ jobs:
2626 v="${GITHUB_REF_NAME}"
2727 d="kvlang-abi-$v-linux-x86_64"
2828 mkdir -p "$d/include/kvlang" "$d/lib/kvspace" "$d/bin"
29- cp runtime/include/*.h "$d/include/kvlang/"
30- # CLI:kvlang(Rust runtime)+ kvlanglayout(layout CLI)+ kvspace(dispatch 前端 CLI,随依赖装入)
29+ # 头(递归):自己的 runtime 头 + deps.json 各依赖的头(/usr/include/<repo>/)
30+ cp -R runtime/include/. "$d/include/kvlang/"
31+ for h in kvspace blockmalloc slotsboxmalloc; do
32+ [ -d "/usr/include/$h" ] && cp -R "/usr/include/$h" "$d/include/"
33+ done
34+ # 库(递归扫):本仓两个产物 + 依赖顶层库 + 后端库(dispatch 的 dlopen 目录)
35+ find bin layout/target/release -maxdepth 1 \( -name 'lib*.so*' -o -name 'lib*.dylib' \) -exec cp -P {} "$d/lib/" \;
36+ find /usr/lib -maxdepth 1 \( -name 'libblockmalloc.so*' -o -name 'libslotsboxmalloc.so*' \) -exec cp -P {} "$d/lib/" \;
37+ find /usr/lib/kvspace -maxdepth 1 -name '*.so*' -exec cp -P {} "$d/lib/kvspace/" \;
38+ # 可执行:本仓 CLI + 依赖带来的 CLI
3139 cp bin/kvlang bin/kvlanglayout "$d/bin/"
3240 cp /usr/bin/kvspace "$d/bin/"
33- # 自带全部 ABI 依赖的头 → 解包即 /usr/include 布局(扩展编译需要 kvspace.h 等)
34- cp -r /usr/include/kvspace /usr/include/blockmalloc /usr/include/slotsboxmalloc "$d/include/"
35- cp bin/libkvlang_runtime.so "$d/lib/"
36- cp layout/target/release/libkvlanglayout.so "$d/lib/"
37- # 自带全部 ABI 依赖 → 解包即 /usr/lib + /usr/lib/kvspace 布局
38- cp /usr/lib/libblockmalloc.so* /usr/lib/libslotsboxmalloc.so* "$d/lib/"
39- cp /usr/lib/libkvspace.so* /usr/lib/kvspace/libkvspace-c.so* /usr/lib/kvspace/libkvspace_durable.so* "$d/lib/kvspace/"
4041 printf '{"abi":"%s"}\n' "$v" > "$d/abi-manifest.json"
4142 tar czf "$d.tar.gz" "$d"
4243 tar tzf "$d.tar.gz"
@@ -105,18 +106,19 @@ jobs:
105106 v="${GITHUB_REF_NAME}"
106107 d="kvlang-abi-$v-darwin-arm64"
107108 mkdir -p "$d/include/kvlang" "$d/lib/kvspace" "$d/bin"
108- cp runtime/include/*.h "$d/include/kvlang/"
109- # CLI:kvlang(Rust runtime)+ kvlanglayout(layout CLI)+ kvspace(dispatch 前端 CLI)
109+ # 头(递归):自己的 runtime 头 + 各依赖的头(/usr/local/include/<repo>/)
110+ cp -R runtime/include/. "$d/include/kvlang/"
111+ for h in kvspace blockmalloc slotsboxmalloc; do
112+ [ -d "/usr/local/include/$h" ] && cp -R "/usr/local/include/$h" "$d/include/"
113+ done
114+ # 库(递归扫):本仓产物 + 依赖顶层 dylib + 后端 dylib(dispatch 的 dlopen 目录)
115+ find bin layout/target/release -maxdepth 1 -name '*.dylib' -exec cp -P {} "$d/lib/" \;
116+ find /usr/local/lib -maxdepth 1 \( -name 'libblockmalloc*.dylib' -o -name 'libslotsboxmalloc*.dylib' \) -exec cp -P {} "$d/lib/" \;
117+ find /usr/local/lib/kvspace -maxdepth 1 -name '*.dylib' -exec cp -P {} "$d/lib/kvspace/" \;
118+ cp /tmp/kvspace-durable/target/release/libkvspace_durable.dylib "$d/lib/kvspace/"
119+ # 可执行:本仓 CLI + 依赖带来的 CLI
110120 cp bin/kvlang bin/kvlanglayout "$d/bin/"
111121 cp /tmp/kvspace/cli/target/release/kvspace "$d/bin/"
112- # 自带全部 ABI 依赖的头 → 解包即 /usr/local/include 布局
113- cp -r /usr/local/include/kvspace /usr/local/include/blockmalloc /usr/local/include/slotsboxmalloc "$d/include/"
114- cp bin/libkvlang_runtime.dylib "$d/lib/"
115- cp layout/target/release/libkvlanglayout.dylib "$d/lib/"
116- # 自带全部 ABI 依赖 → 解包即 /usr/local/lib + /usr/local/lib/kvspace 布局
117- cp /usr/local/lib/libblockmalloc*.dylib /usr/local/lib/libslotsboxmalloc*.dylib "$d/lib/"
118- cp /usr/local/lib/kvspace/*.dylib "$d/lib/kvspace/"
119- cp /tmp/kvspace-durable/target/release/libkvspace_durable.dylib "$d/lib/kvspace/"
120122 printf '{"abi":"%s"}\n' "$v" > "$d/abi-manifest.json"
121123 tar czf "$d.tar.gz" "$d"
122124 tar tzf "$d.tar.gz"
0 commit comments