<div dir="auto">I just added that gem to <a href="https://community.kde.org/Guidelines_and_HOWTOs/CMake/FAQs">https://community.kde.org/Guidelines_and_HOWTOs/CMake/FAQs</a>.</div><div class="gmail_extra"><br><div class="gmail_quote">On 25 May 2017 06:08, "Luca Beltrame" <<a href="mailto:lbeltrame@kde.org">lbeltrame@kde.org</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Il giorno Thu, 25 May 2017 09:25:02 +1200<br>
Ben Cooksley <<a href="mailto:bcooksley@kde.org">bcooksley@kde.org</a>> ha scritto:<br>
<br>
[Quoting Ben but responding to Thomas, since I'm not subscribed to<br>
kde-buildsystem]<br>
<div class="quoted-text"><br>
> > complained about the quality of Kwave's build system in the last 18<br>
> > years in such a way and nobody had a serious problem with the<br>
> > dependencies.<br>
<br>
</div>The major problem with the approach you use is that CMake aborts with a<br>
fatal error in configure stage as soon as a missing dependency is<br>
encountered. There may be more, but you don't know, because it aborts.<br>
So it's like a cat and mouse game unless you have everything installed.<br>
<br>
The correct way to do so is to avoid REQUIRED in find_package() calls<br>
and use instead set_package_properties() to set what is required, and<br>
what is optional. Please take a look at any other KDE software project<br>
to see how it's done.<br>
<br>
A tl;dr version would be:<br>
<br>
include(FeatureSummary)<br>
<br>
[...]<br>
find_package(foo)<br>
set_package_properties(foo PROPERTIES TYPE REQUIRED PURPOSE "Required<br>
to bar the foo.")<br>
[... at the end of the CMakeLists.txt]<br>
feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_<wbr>PACKAGES)<br>
<br>
The advantage? CMake will configure things till the end and *then* list<br>
*all* the missing dependencies in one fell swoop. Much easier for<br>
packaging, too.<br>
<div class="quoted-text"><br>
> > *POLITELY* and with reasonable arguments. But if I only get comments<br>
> > like "fuck you, all your stuff sucks" - I WILL DEFINITELY NOT<br>
> > CHANGE ANY SINGLE LINE FOR YOU !!!<br>
<br>
</div>THe fact that the original mail had a harsh tone does not warrant a<br>
same, or an increased one. Can we just focus on fixing the problem?<br>
Note: as a packager, I rely a lot on CMake output as well as READMEs.<br>
Failing stuff like I described above makes my work (and probably many<br>
others') harder.<br>
<font color="#888888"><br>
--<br>
Luca Beltrame - KDE Forums team<br>
GPG key ID: A29D259B<br>
</font></blockquote></div><br></div>