wpchom
wpchom
> `xrepo install -d srcdir packagename` 走本地源码调试 这个好像只能支持官方repo,xmake.lua里add_repositories的包没法用xrepo安装吧
> 这里换其他构建系统和包管理也一样,只有做成子 target 才方便。 也可以试试 policy `package.build.ccache`,避免全量编译 [#5874](https://github.com/xmake-io/xmake/issues/5874) ccache只能加快编译速度吧,但是修改过配置文件的package还是要删掉在`clean --all`之后才能重新编译,没法触发差异构建。
目前想到的一个办法就是用xmake重写`mbedtls`的编译入口,把`mbedtls_config.h`里的所有配置项都加到configfiles里,这个add_requires的时候可以通过修改configs来触发差异构建,就是一个包的适配量也有点大。 最小的适配来看,通过`xmake`的参数选项来触发对依赖包的差异检查重构应该可以满足情景吧。
> > > `xrepo install -d srcdir packagename` 走本地源码调试 > > > > > > 这个好像只能支持官方repo,xmake.lua里add_repositories的包没法用xrepo安装吧 > > ``` > xmake require --debugdir=srcdir packagename > ``` 这个用法相当于要提前下载包的源码,再手动指定包的srcdir?这会失去了主工程`add_requires`时传递给包的configs项。 ---- 这个需求想法是保留包管理,在`install_locally`的情况下,能检测到主工程的编译选项变化或者依赖文件的hash变化,能触发local package的重构,毕竟local...
> `xmake requires --debugdir=srcdir packagename` 这个方式对于编译一个project的话提前下载或者submodule的方式还好 多个工程不同的板子都需要裁剪mbedtls配置的话,就要下载很多份了;而且用xmake主要是想package可以编译时根据依赖自动下载,还能复用源码;这样传递一个xmake.lua就能直接完成编译整个工程编译,源码也都随着编译时下载了。
> > `xmake requires --debugdir=srcdir packagename` > > 这个方式对于编译一个project的话提前下载或者submodule的方式还好 多个工程不同的板子都需要裁剪mbedtls配置的话,就要下载很多份了;而且用xmake主要是想package可以编译时根据依赖自动下载,还能复用源码;这样传递一个xmake.lua就能直接完成编译整个工程编译,源码也都随着编译时下载了。 有没方案可以把package按源码的方式引入project中参与编译呢?
> https://xmake.io/#/zh-cn/package/local_3rd_source_library 知道有本地引入源码的功能,是想在xmake.lua里描述好的远端package,在构建时自动下载,能不能像target引入到工程里? ---- 其实主要的还是在`xmake clean --all`时能把依赖项也清一下,能触发修改了mbedtls_config.h修改后的重新构建。 ``` project/xmake.lua project/src/main.c project/inc/mbedtls_config.h ``` project的编译入口下的xmake.lua设置了`set_policy("package.install_always", true)`,依赖packageN, 而pacakgeN..依赖mbedtls,mbedtle_config.h在project目录下(不同project对mbedtls的配置裁剪), `xmake build`编译后`xmake require --uninstall`只能删除一个package,不能一次清除project所有的依赖和子依赖。 现在是通过`rm build/.packages -rf`去删除依赖,在`xmake clean --all`后才能重构的, 这样绕过了删除package的动作绕开了xmake,会不会有问题?能不能由xmake来接管这个清除当前project的依赖项动作?(如果能通过标记能直接触发依赖的重构会更好吧)