背景
#390 系列修复(PR #391)把 manifest/指令路径摄入点全部归一化为原生分隔符,并给 emit_compile_commands 加了 make_preferred 兜底。src/build/prepare.cppm:5045 的 ${mcpp.out_dir} 替换是同类里未清的一员:
rep("${mcpp.out_dir}", ctx.plan.outputDir.string());
用户写 ${mcpp.out_dir}/gen/x.cppm 时,outputDir.string()(原生反斜杠)拼进用户的正斜杠后缀 → C:\proj\target\...\gen/x.cppm 混合拼写。
影响面
这些 action 输出因为含 ${mcpp. 不会被 adoptActionOutputs 采纳成源,所以够不到 CDB,不会触发 #390 的 CLion 症状 —— 但若后续动作以 file 等路径字段消费,或混入其它通道,会重现同类问题。属清理项,不阻塞任何已发布修复。
建议
与 #390 同规则:make_preferred 归一化替换值,或在替换后对整串路径段归一化。附单测锁定 ${mcpp.out_dir} 类替换的拼写。
环境
背景
#390 系列修复(PR #391)把 manifest/指令路径摄入点全部归一化为原生分隔符,并给
emit_compile_commands加了make_preferred兜底。src/build/prepare.cppm:5045的${mcpp.out_dir}替换是同类里未清的一员:用户写
${mcpp.out_dir}/gen/x.cppm时,outputDir.string()(原生反斜杠)拼进用户的正斜杠后缀 →C:\proj\target\...\gen/x.cppm混合拼写。影响面
这些 action 输出因为含
${mcpp.不会被adoptActionOutputs采纳成源,所以够不到 CDB,不会触发 #390 的 CLion 症状 —— 但若后续动作以file等路径字段消费,或混入其它通道,会重现同类问题。属清理项,不阻塞任何已发布修复。建议
与 #390 同规则:
make_preferred归一化替换值,或在替换后对整串路径段归一化。附单测锁定${mcpp.out_dir}类替换的拼写。环境