<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 21 March 2018 at 15:56, Boris Kolpackov <span dir="ltr"><<a href="mailto:boris@codesynthesis.com" target="_blank">boris@codesynthesis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">Klaim - Joėl Lamotte <<a href="mailto:mjklaim@gmail.com">mjklaim@gmail.com</a>> writes:<br>
<br>
</span><span class="gmail-">> By the way, it seems that just not using litteral strings should work?<br>
> They can be replaced by normal strings and escaping I believe. If that's<br>
> the source of the issue, I can do that modification.<br>
<br>
</span>Yes, though this case is exactly where you really want to use raw string<br>
literals. Using normal literals with escaping here will get pretty hairy.<br>
<span class="gmail-"><br></span></blockquote><div><br></div><div>Indeed.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
<br>
> Or changing some compiler flags? I don't understand how CMake manage to<br>
> generate a compiler invocation that seem to build correctly.<br>
<br>
</span>The source file can be compiled, just not preprocessed (which is a bug<br>
in VC). CMake doesn't do separate preprocessing while build2 does. You<br>
can read more about the reasons here:<br>
<br>
<a href="https://build2.org/faq.xhtml#ninja" rel="noreferrer" target="_blank">https://build2.org/faq.xhtml#<wbr>ninja</a><br>
<br></blockquote><div><br></div><div>I see, thanks for the clarification.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Ok, now about the workaround (which will require the latest staged<br>
toolchain, BTW):<br>
<br>[...]<br>
<br>
As a result, you probably want to limit this only to translation<br>
units that actual need it and also only for problematic compilers.<br>
Something along these lines:<br>
<br>
if ($<a href="http://cxx.id" rel="noreferrer" target="_blank">cxx.id</a> == 'msvc')<br>
  obj{foo bar}: cc.reprocess = true<br>
<br></blockquote><div><br></div><div>Thanks. I tried this but failed to get the right names/expression where "foo bar" is</div><div>so just to make sure this works as expected I just used obj{*} for now and it works, all the current project compiles.</div><div>Yay. I'll continue from this. :)</div><div><br></div><div>How it looks like: <a href="https://github.com/Klaim/build2-pkg-chaiscript">https://github.com/Klaim/build2-pkg-chaiscript</a></div><div>The fork of ChaiScript with that build2-specific workaraound: <a href="https://github.com/Klaim/ChaiScript/tree/klaim/build2">https://github.com/Klaim/ChaiScript/tree/klaim/build2</a></div><div><br></div><div>As to why obj{my_target} fails, I have no idea. I tried with all the targets but I do not see the define passed to the compiler.</div><div><br></div><div>Thanks for your help.</div><div><br></div><div>A. Joël Lamotte</div><div><br></div></div></div></div>