<div dir="ltr"><span style="color:rgb(80,0,80)">On Thu, Nov 14, 2013 at 5:04 PM, Aurélien Gâteau </span><span dir="ltr" style="color:rgb(80,0,80)"><<a href="mailto:agateau@kde.org" target="_blank">agateau@kde.org</a>></span><span style="color:rgb(80,0,80)"> wrote:</span><br>
<div class="gmail_quote"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On 10.11.2013 18:27, Kevin Ottens wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
On Wednesday 06 November 2013 08:52:29 Aurélien Gâteau wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Yesterday frameworks meeting spawned a discussion regarding folders<br>
in header files.<br>
</blockquote>
<br>
I think there's an aspect missing in your proposal. There's the<br>
convention we want for #include and where we install. That's in the<br>
end two different things even though related.<br>
<br>
I think, that for all the frameworks, headers should be installed in:<br>
$PREFIX/include/KF5/<u></u>FrameworkName/<br>
<br>
FrameworkName would then contain both the regular .h headers and the<br>
convenience camel case ones. If we go for that, we get something<br>
consistent install wise and easy to deal with. Then the distinction<br>
you make below is just about the include path we want when someone<br>
pulls a framework in.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think the consensus is there should be two different situations:<br>
<br>
1. 'k' prefixed header files<br>
<br>
If the header files of a framework are prefixed with a 'k', then<br>
headers should be installed in include and convenience headers should<br>
be installed in include/KDE.<br>
</blockquote>
<br>
I think in a case like that we still want the includes installed in<br>
$PREFIX/include/KF5/<u></u>FrameworkName/ (convenience or not). But when<br>
someone pulls the framework as a dependency then both<br>
$PREFIX/include/KF5/ and $PREFIX/include/KF5/<u></u>FrameworkName/ are added<br>
in the include path, thus supporting the #include <kfoo.h> and<br>
#include <KFoo> styles.<br>
</blockquote>
<br></div></div>
To support #include <kfoo.h> and #include <KFoo> you only need to have<br>
$PREFIX/include/KF5/<u></u>FrameworkName/ in the include path. Adding<br>
$PREFIX/include/KF5/ would add support for<br>
#include <FrameworkName/kfoo.h> and #include <FrameworkName/KFoo>.<br>
<br>
Do we want to support this as well? (I have no strong opinion on this<br>
topic)</blockquote><div><br></div></div></div><div>ecm_generate_headers will do it like that anyway</div><div class="im"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2. Non-prefixed header files<br>
<br>
If the header files of a framework are not prefixed, then they should<br>
be installed in include/{lowercaseframework} and convenience headers<br>
should be installed in include/KDE/{<u></u>CamelCaseFramework}.<br>
</blockquote>
<br>
I think in a case like that we still want the includes installed in<br>
$PREFIX/include/KF5/<u></u>FrameworkName/ (convenience or not). But when<br>
someone pulls the framework as a dependency then only<br>
$PREFIX/include/KF5/ is added in the include path, thus supporting the<br>
#include <FrameworkName/foo.h> and #include <FrameworkName/Foo><br>
styles.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Some special files should still go in include:<br>
<br>
{lowercaseframework}_export.h {lowercaseframework}_version.h<br>
</blockquote>
<br>
Make that $PREFIX/include/KF5/ instead of just include and I agree.<br>
</blockquote>
<br></div>
Wouldn't it be more self-contained to have those in<br>
$PREFIX/include/KF5/<u></u>FrameworkName as well?<br>
<br>
After all, those includes are mostly internal, so they should not be the<br>
first files you meet if you wander in $PREFIX/include/KF5 IMO.</blockquote><div><br></div></div><div>They should probably be in frameworkname/frameworkname_export.h. Usually we have 2 folders for includes, the camel case for camel case includes and the lowercase one with the actual includes.</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think it departs quite a bit from your initial proposal, making it<br>
slightly more complicated on the include path side, but it has pros<br>
like:<br>
* making it more homogeneous on the installation side;<br>
* allows co-installability of major releases in the future.<br>
<br>
Opinions?<br>
</blockquote>
<br></div>
Works for me, just tell me your preference on the two points I<br>
mentionned above.<div><div><br>
<br>
Aurélien<br>
<br>
______________________________<u></u>_________________<br>
Kde-frameworks-devel mailing list<br>
<a href="mailto:Kde-frameworks-devel@kde.org" target="_blank">Kde-frameworks-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kde-frameworks-devel" target="_blank">https://mail.kde.org/mailman/<u></u>listinfo/kde-frameworks-devel</a><br>
</div></div></blockquote></div></div><span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div class="gmail_extra">Aleix</div></font></span></div>
</div><br></div>