<div dir="ltr"><div dir="ltr">Hi Boris,<div><br></div><div>On Fri, Apr 5, 2019 at 3:22 AM Boris Kolpackov <<a href="mailto:boris@codesynthesis.com">boris@codesynthesis.com</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Luke,<br>
<br>
Dale Lukas Peterson <<a href="mailto:hazelnusse@gmail.com" target="_blank">hazelnusse@gmail.com</a>> writes:<br>
<br>
> > I updated my branch with your suggestions. I wasn't aware of Clara until<br>
> > you mentioned it. Regarding whether we should bundle the one that is<br>
> > checked in to the catch2 repo or leave that separate, the latter seems most<br>
> > logical to me. Clara isn't strictly required to use catch2, so forcing a<br>
> > particular version upon people would probably make it annoying for them to<br>
> > use different versions due to include path problems.<br>
<br>
While I agree it would make more sense to have Clara as a separate<br>
dependency of Catch2, from our chat it's clear Phil feels strongly<br>
about having a private copy and the reasons he gives do make sense<br>
(essentially, making sure Catch2 uses a known-compatible version<br>
of Clara while not forcing the users to use the same version).<br>
<br>
Since they are doing all the work of making sure that such a<br>
"private Clara" does not conflict with "user Clara", I think we<br>
should respect their wishes and just bundle it.<br>
<br></blockquote><div><br></div><div>I agree this is the most rational choice at the moment. I would enjoy discussing the hypothetical situation of how this would be solved if starting from scratch with build2.</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">
<br>
> > As far as testing goes, there is a bit of chicken and egg problem here --<br>
> > catch.hpp is checked into the repo, but to test a commit, you need to run<br>
> > the python script that creates catch.hpp then run the tests on that<br>
> > generated file, not the one that is checked in.<br>
<br>
Hm, that sounds surprising (or perhaps my email was confusing): I think<br>
the Python script is required to generate single_include/catch.hpp from<br>
all the headers in include/. Our (new) plan, however, is to ignore<br>
single_include/ entirely and always use include/, including installing<br>
the multi-header variant.<br>
<br></blockquote><div><br></div><div>I could be wrong, but it looks from the travis build that the single_include is built, then cmake is invoked from the root dir -- thus using the single include. You can have a look here:</div><div><a href="https://travis-ci.org/catchorg/Catch2/jobs/515754990">https://travis-ci.org/catchorg/Catch2/jobs/515754990</a><br></div><div><br></div><div>The source of truth for this is:</div><div><a href="https://github.com/catchorg/Catch2/blob/master/.travis.yml#L301">https://github.com/catchorg/Catch2/blob/master/.travis.yml#L301</a><br></div><div><br></div><div>So the source of truth of the header is really the include directories like you mentioned. If for some reason the generated single header was different from the one that is committed (for example due to environment or Python differences), then what is tested (generated single header) is not the same as what is committed.</div><div><br></div><div>I saw your build2 branch on your catch2 fork and look forward to seeing this come to a conclusion so I can start using build2 for some projects :)</div><div><br></div><div>Sincerely,</div><div>Luke</div><div><br></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">
<br>
> > [...] if you have time and want to run with it, feel free to do so.<br>
<br>
Ok, let me take a quick stab at it to at least get one test building.<br>
Will ping you when push.<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">For a successful technology, reality must take precedence over public relations, for Nature cannot be fooled. -- Richard Feynman<br></div></div></div>