<img style="width:1px;height:1px" src="https://count.mail.163.com/beacon/webmail.gif?type=webmail_mailtrace&guid=84c14740fcf14c8ca20f0adb41c2f2b4"><div style="font-family:"><div style="font-family: 微软雅黑;"><div style="font-family: 微软雅黑;">Hello guys,</div><div style="font-family: 微软雅黑;"><br></div><div style="font-family: 微软雅黑; text-indent: 2em;"><span id="_baidu_bookmark_start_0" style="display: none; line-height: 0px;">‍</span>I want to use <span style="font-size: 10pt; font-family: Courier-BoldOblique; font-style: italic;">env</span><span style="font-size: 10pt; font-family: Times-Bold;">.</span><span style="font-size: 10pt; font-family: Courier-Bold;">ParseDepends</span><span style="font-size: 10pt; font-family: Times-Bold;">() add *.o dependencies. But different compilers can generate different style *.d.</span></div><div style="font-family: 微软雅黑; text-indent: 2em;"><span style="font-size: 10pt; font-family: Times-Bold;">Add SCons version is 4.8.1.</span></div><div style="font-family: 微软雅黑; text-indent: 2em;"><span style="font-size: 10pt; font-family: Times-Bold;">I generate *.d files, like makefile style (multiple rules). Such as below,</span></div><blockquote style="font-family: 微软雅黑; margin: 0px 0px 0px 40px; border: none; padding: 0px;"><div style="text-indent: 2em;"><span style="font-family: Times-Bold; font-size: 13.3333px;">D:/workspace/LCfg.o: D:/workspace/inc/Std_Types.h</span>  <span style="font-size: 10pt; font-family: Times-Bold;"><span id="_baidu_bookmark_start_27" style="display: none; line-height: 0px;">‍</span><br></span></div></blockquote><div style="text-indent: 2em;"><span style="font-family: Times-Bold; font-size: 13.3333px;">There is a string ': ' between *.o and *.d and there is a ':' after 'D'.</span></div><div style="text-indent: 2em;"><span style="font-family: Times-Bold; font-size: 13.3333px;">The </span><span style="font-size: 10pt; font-family: Courier-BoldOblique; font-style: italic;">env</span><span style="font-size: 10pt; font-family: Times-Bold;">.</span><span style="font-size: 10pt; font-family: Courier-Bold;">ParseDepends</span><span style="font-size: 10pt; font-family: Times-Bold;">() separate *.o and *.d, so the first 'D' was detected as target file.</span></div><div style="text-indent: 2em;"><span style="font-size: 10pt; font-family: Times-Bold;">And then, I modify the </span><span style="font-size: 10pt; font-family: Courier-BoldOblique; font-style: italic;">env</span><span style="font-size: 10pt; font-family: Times-Bold;">.</span><span style="font-size: 10pt; font-family: Courier-Bold;">ParseDepends</span><span style="font-size: 10pt; font-family: Times-Bold;">(), I add a space ' ' in </span><span style="background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; white-space: pre; color: rgb(156, 220, 254);">target</span><span style="background-color: rgb(30, 30, 30); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; white-space: pre;">, </span><span style="background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; white-space: pre; color: rgb(156, 220, 254);">depends</span><span style="background-color: rgb(30, 30, 30); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; white-space: pre;"> = </span><span style="background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; white-space: pre; color: rgb(156, 220, 254);">line</span><span style="background-color: rgb(30, 30, 30); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; white-space: pre;">.</span><span style="background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; white-space: pre; color: rgb(220, 220, 170);">split</span><span style="background-color: rgb(30, 30, 30); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; white-space: pre;">(</span><span style="background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; white-space: pre; color: rgb(206, 145, 120);">': '</span><span style="background-color: rgb(30, 30, 30); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; white-space: pre;">, </span><span style="background-color: rgb(30, 30, 30); font-family: Consolas, "Courier New", monospace; white-space: pre; color: rgb(181, 206, 168);">1</span><span style="background-color: rgb(30, 30, 30); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; white-space: pre;">)</span></div><div style="text-indent: 2em;">Then *.d file can be parsed successfully.</div><div style="text-indent: 2em;">But I think that is improper to modify source code.</div><div style="text-indent: 2em;"><br></div><div style="text-indent: 2em;">My question is that how could I parse different style *.d with a better method.</div><div style="text-indent: 2em;"><br></div><div style="text-indent: 2em;"><br></div><div style="text-indent: 2em;"><br></div><div style="text-indent: 2em;"><br></div><div style="text-indent: 2em;"><br></div><div style="text-indent: 2em;"><br></div><div style="text-indent: 2em;"><span style="background-color: rgb(30, 30, 30); color: rgb(212, 212, 212); font-family: Consolas, "Courier New", monospace; white-space: pre;"><br></span></div></div></div><div><br></div><div><br></div><br><div id="imail_signature" class="ntes-signature"></div><div id="imail_signature" class="ntes-signature"></div>