Closed Antecer closed 2 months ago
问题1
只有 virtualFolder 里可以使用 变量,变量可以在 项目设置->环境变量 里添加;srcDirs 不支持变量
问题2
这个 排除列表 是和 target 绑定的,不是和构建配置绑定
如果你要使用 两种编译器 ,那么你需要建立两个target,分别适配两种编译器
编译的时候切换不同的 Target 就行了
这个分类下有个 nrf52832 的模板,是适配了 两种编译器的,你可以看一下
- 问题1 只有 virtualFolder 里可以使用 变量,变量可以在 项目设置->环境变量 里添加;srcDirs 不支持变量
- 问题2 这个 排除列表 是和 target 绑定的,不是和构建配置绑定 如果你要使用 两种编译器 ,那么你需要建立两个target,分别适配两种编译器 编译的时候切换不同的 Target 就行了
即便使用 virtualFolder 似乎也没办法自动化的拿到芯片支持包的路径,能否将 "packDir" 作为eide的默认环境变量编译到插件里面呢? 试了下, virtualFolder 似乎只能把文件映射到虚拟文件夹内,不能把文件夹映射进去, pack库里面的文件太多了, 要一个个加进去感觉更复杂了.
按照原来的设计:pack 中的内容是通过 GUI 进行安装的,没有考虑到你的这种用法,
即使加了 packDir 这个变量,也是无法实现自动添加所有源文件的,因为 srcDirs 这个属性不支持变量
如果能改一下代码,让它支持就方便了
如果能改一下代码,让它支持就方便了
按照现在插件里的做法,很难去更改:带变量的路径只有被使用的时候才会计算出实际的值,但 srcDirs 初始化是要绑定文件监视器的,因此路径一开始就是要固定好,后面是不能变的;有冲突
这个变量它本身也是一个静态值来着,我们把它当成"常量"来处理就行了,只要在配置文件加载的时候进行替换,后面应该也不容易出现变更,毕竟一个工程只能有一个支持包, 如果创建新工程需要变更, 那么在变更后重载配置文件应该就行了. 这样就不存在冲突吧? 唯一的麻烦点就是, 通过插件再次写入配置的时候,如何保持它以变量字符串写入,而不是被常量值替换.
这样的单独为这个点 “开小灶” 肯定会引发其他地方的 路径错误 bug,这个插件源码本身就是一堆屎山,有很多历史包袱,而你要修改的部分又是最早期的代码,所以我并不打算去改这个;
"packDir" 能否作为变量的方式插入 "srcDirs" 的路径中, 这样我就能使用一个 eide.json 模板配置文件自适应多种不同的芯片资源,使用的时候只需要切换 "芯片支持包" 就行了
其他的替代方法:
方法 1. 其实你现在的做法本身就绕过了插件的"芯片支持包"功能,因此不需要用插件"芯片支持包"安装功能;你可以直接把 pack 文件解压,把文件夹重命名成一个 固定的名字 就行了,然后添加到项目,这样也不用每次去修改 srcDir;
方法 2. 使用文件夹软链接,windows 和 linux 都是支持的,要更换 pack 的话,只需重新建立软链接就行了,也不用改 srcDirs 内容
然后把不用的文件用排除功能排除掉,就行了
说起这个软连接,我之前编译AD封装库就是用 硬链接 把输出文件链接到库文件夹, 后来用多了过后, 发现每次编译封装库都要在ad里面取消对该库的引用,不然就会产生冲突,后来干脆把编译输出路径加入到AD的封装库引用了,硬链接也不用了... 好吧,看来这个 idea 短时间内是没法达成了,我还是改 srcDirs 吧...
这是我的eide项目配置文件: