MSYS2下使用Meson构建系统打包tio 1.37时,最终Pacman包缺失可执行文件的问题排查与解决咨询
问题:MSYS2下用Meson构建的tio包仅含源码,缺失编译产物
我正在MSYS2环境中为Windows 10构建最新版的tio(1.37版本),这个版本改用了Meson构建系统,之前我用的是基于configure.ac和Makefile的1.32版本。
我修改了原有的PKGBUILD来适配Meson,构建步骤如下:
- 在
C:\src下创建tio_msys2目录并进入 - 下载修改后的PKGBUILD文件
- 执行
makepkg -sCLf命令构建
修改后的PKGBUILD核心内容如下:
pkgname=tio pkgver=1.37 pkgrel=1 pkgdesc="A simple TTY terminal I/O application" arch=('i686' 'x86_64') url="https://tio.github.io/" license=('GPL') makedepends=('autotools' 'gcc' 'meson' 'ninja') source=(https://github.com/tio/tio/releases/download/v${pkgver}/tio-${pkgver}.tar.xz) sha256sums=('a54cd09baeaabd306fdea486b8161eea6ea75bb970b27cae0e8e407fb2dd7181') validpgpkeys=('101BAC1C15B216DBE07A3EEA2BDB4A0944FA00B1') # Martin Lund prepare() { cd "${srcdir}/${pkgname}-${pkgver}" } build() { cd "${srcdir}/${pkgname}-${pkgver}" meson --prefix=/usr --buildtype=plain build meson compile -C build } package() { echo "srcdir ${srcdir} pkgname ${pkgname} pkgver ${pkgver} destdir ${destdir}" cd "${srcdir}/${pkgname}-${pkgver}" meson install -C build --destdir "$pkgdir" }
构建过程看起来是成功的:生成了tio.exe可执行文件,/c/src/tio_msys2/pkg目录里也形成了完整的安装结构,包含tio.exe、bash补全文件和手册等内容。但当我检查最终生成的pacman安装包tio-1.37.tar.xz时,发现里面只有tio 1.37的源码文件,完全缺失了pkg目录里的编译产物和打包内容。
我想请教:
- 我在配置或操作中哪里出了问题?
- 如何才能把pkg目录中已准备好的内容(包括编译后的二进制文件)正确打包到最终的Pacman安装包里?
- 我注意到其他MSYS2中使用Meson构建的PKGBUILD会在
meson install后手动复制文件,是不是我也需要执行类似操作?
内容的提问来源于stack exchange,提问作者sdbbs
相关产品推荐
相关产品推荐

