使用环境
<!-- 必须 告知插件运行的环境,帮助开发者定位问题 -->
- 操作系统版本:Windows10 21h2
- 操作系统平台(x86/x64):x64
- VsCode 版本:1.70.2
- EIDE 插件版本:v3.12.0
- C/C++ 插件版本:不重要
- 何种编译器(keil_c51/sdcc/armcc5/armgcc/...):不重要
- 编译器版本(非编译问题可忽略):不重要
描述问题
<!-- 使用简明清晰的语言描述您的问题 -->
我在本机编写好了pre-install.sh脚本,放在.eide文件夹内,并导出项目为模板。测试使用该模板也没问题。但是一旦把模板文件改名之后,再选择该模板生成项目,则不会自动运行脚本。并且也没有任何日志提示。
屏幕截图
<!--使用一些截图能够更好地展现问题 -->
使用未改名的模板创建工程正常:
使用改名后的模板创建工程则不会运行pre-install.sh脚本:
期望现象
<!--您期望应该产生的,但实际上却没有发生的结果-->
模板应该是可以随便改名的,怎么会改个名就没法用了?
@admin
另外,分享一下这个脚本,适用于stm32cubemx生成的makefile工程,自动设置.ld文件目录,自动添加包含目录和宏定义到工程中。
#!/bin/bash
# 自动从Makefile中填写链接文件到EIDE配置中
src_file="Makefile"
tar_file=".eide/eide.json"
#自动添加宏定义和包含目录以及链接文件目录
found=0
while read line
do
if echo "${line}" | grep -q -e "C_DEFS =\|C_INCLUDES =\|LDSCRIPT ="; then
((found++))
fi
if [[ $found -eq 1 ]]; then
echo -n "\"" > "temp"
echo -n ${line:12} >> "temp"
echo -n "\"" >> "temp"
# 把前缀替换为逗号分隔
sed -i "s/ -D/\",\"/g" "temp"
# 对斜杠和双引号转义
sed -i 's/[\/&]/\\&/g;s/["]/\\\"/g' "temp"
# 写入EIDE配置文件
sed -i 's/\("defineList":[^]]*\)\(]\)/\1'"$(cat temp)"'\2/' $tar_file
((found++))
elif [[ $found -eq 3 ]]; then
echo -n "\"" > "temp"
echo -n ${line:16} >> "temp"
echo -n "\"" >> "temp"
# 把前缀替换为逗号分隔
sed -i "s/ -I/\",\"/g" "temp"
# 对斜杠和双引号转义
sed -i 's/[\/&]/\\&/g;s/["]/\\\"/g' "temp"
# 写入EIDE配置文件
sed -i 's/\("incList":[^]]*\)\(]\)/\1,'"$(cat temp)"'\2/' $tar_file
# 删除临时文件
rm -f temp
((found++))
elif [[ $found -eq 5 ]]; then
sed -i 's/scFilePath/'"${line:11}"'/g' $tar_file
break
fi
done < $src_file
echo "自动初始化参数完成!但仍需手动设置EIDE的【构建配置:CPU类型】和【烧录配置】"