xmake-io / xrepo

🗂️ A cross-platform C/C++ package manager based on Xmake
https://xrepo.xmake.io
Apache License 2.0
354 stars 18 forks source link

希望更好的支持到包的开发或调试 #26

Closed BernardXiong closed 2 years ago

BernardXiong commented 2 years ago

你在什么场景下需要该功能?

在嵌入式系统中,往往以交叉编译的方式进行,然后通过xrepo的模式来构建整个rootfs(用户态根文件系统)。这个时候不可避免的需要对一些包进行调整或调试,而不完全以一个个应用程序的方式组织开发。

当前的xrepo方式,当对代码进行修改时,它既不会对更改后的代码进行增量编译,甚至它还会重新展开原始的压缩包,把修改覆盖掉来进行编译。所以目前的xrepo方式并不面向开发,更多的是构建出对应的二进制程序。

描述可能的解决方案

希望的模式有些类似:

描述你认为的候选方案

No response

其他信息

No response

waruqi commented 2 years ago

可以非常方便的加入一个软件包;

xmake-repo 有个脚本,可以通过 github 库地址,自动生成一个包,基本上生成的结果可以节省 90% 编辑的时间

$ xmake l scripts/new.lua github:glennrp/libpng

具体可以看下 https://github.com/xmake-io/xmake-repo#create-a-package-template-from-github

支持修改软件包里的代码; 在进行编译时,可以直接进行增量编译 & 安装; 在做distclean时,也可以展开原始压缩包的模式去编译构建。

这个我改进过了,可以更新到 dev 试试,xmake update -s dev

https://github.com/xmake-io/xmake/pull/2856

切换到本地自己的仓库地址

$ xrepo add-repo myrepo /tmp/xmake-repo

在当前包源码目录直接编译安装测试

$ cd /tmp/libpng-srcdir
$ xrepo install -vD -d . libpng

在指定包源码目录编译安装测试

$ xrepo install -vD -d /tmp/libpng-srcdir libpng