xfangfang / wiliwili

第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上
https://xfangfang.github.io/wiliwili
GNU General Public License v3.0
3.11k stars 145 forks source link

ci: mingw64 build static link depency #204

Closed dragonflylee closed 10 months ago

dragonflylee commented 11 months ago
  1. 现在 Github Action 的 windows 镜像自带 msys2 了,不用另外安装了
  2. CI 中添加了 libwebp 和 libcurl 静态库的编译脚本
  3. MinGW64 的链接参数增加 -static-libgcc -static-libstdc++ -static
xfangfang commented 11 months ago

@dragonflylee 感谢,我最近一段时间没有windows电脑在手边来测试,你可以下载下来测试看看,我有点不确定那个mpv的dll放置的路径会不会自动被wiliwili.exe加载。


这么说起来,如果之后手动编译一下ffmpeg、libass、dav1d和mpv(或许还有其他硬解需要的库?),再搭配romfs岂不是可以生成一个单独的exe了

dragonflylee commented 11 months ago

改用 7z 打包了,感觉 windows 下面 tar 用的人太少

xfangfang commented 11 months ago

我有个额外的想法,curl和webp能不能像psv的依赖一样缓存一下呢,这样每次都能节省四五分钟(不过貌似被psv影响,做不做缓存都会比psv编译快)

psv的做法是先加载缓存,如果存在会加载到指定目录,如果不存在就构建然后把构建结果放在指定目录 然后上传缓存,最后安装依赖。

https://github.com/xfangfang/wiliwili/blob/e486c01c62430eb4f149ef8169e1c01f932f3d28/.github/workflows/build.yaml#L443-L481

dragonflylee commented 11 months ago

其实可以和 ns 一样打成 pkg 包,都是 pacman 嘛

dragonflylee commented 11 months ago

编译时间压缩到 15分钟之内了

xfangfang commented 10 months ago

更新手柄映射文件的时候,GitHub那个windows的runner上跑了两遍都报错了:https://github.com/xfangfang/wiliwili/actions/runs/6632314412/job/18019039387 ,于是我就把cmake执行的部分放到 msys2里了,刚才合并之后才发现,这里和你修改的内容冲突了。如果没有其他需要提交的内容那么解决了冲突之后我就合并啦。

dragonflylee commented 10 months ago

似乎是 github ci 预装的 cmake 有问题, 换成 windows-2019 的镜像就好了

xfangfang commented 10 months ago

我也不太知道是啥原因,刚刚测试了一下构建的结果,正常运行没问题,感谢感谢~

没有别的提交的话我就合并啦?

dragonflylee commented 10 months ago

现在没问题了,注意到libcpr 内置的 curl 已经更新的 8.4.0 了,都已经修改提交了

xfangfang commented 10 months ago

dev 分支的cpr已经更新到 1.10.5 了对应那个curl的更新。