<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/105863/">http://git.reviewboard.kde.org/r/105863/</a>
     </td>
    </tr>
   </table>
   <br />








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On August 5th, 2012, 9:12 a.m., <b>David Faure</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/105863/diff/1/?file=76038#file76038line7" style="color: black; font-weight: bold; text-decoration: underline;">tier2/kconfig/CMakeLists.txt</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>

  </tr>
 </tbody>



 
 




 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">7</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} cmake/)</pre></td>
    <th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">7</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">set(CMAKE_MODULE_PATH<span class="hl"> ${CMAKE_MODULE_PATH}</span> ${ECM_MODULE_PATH} cmake/)</pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Ah, damn, there are conflicting goals here.

We removed ${CMAKE_MODULE_PATH} on purpose so that each framework (in this case, tier2/kconfig) builds standalone, i.e. doesn't use any cmake file from the rest of kdelibs. As long as we have independent frameworks being built together in one big kdelibs (which is a temporary situation), this is a way to ensure that each module is self-contained in terms of cmake files.

Now let's talk about FindKDEWin.cmake: can't we get rid of that? Try to think of kconfig as "a pure Qt-based library", like say, soprano, qca, or qjson. These libs don't use and don't need FindKDEWin.cmake, right? So why would kconfig need that additional layer? I know it was a necessary layer to get KDE4 code to compile on Windows, but the goal with KF5 is to remove layers and ensure that Qt and cmake have everything we need to compile our standalone libs on top of them.

Please evaluate what needs the "kdewin" (library, right?), and whether that code can't be ported to "pure Qt" instead.</pre>
 </blockquote>



 <p>On August 5th, 2012, 9:32 a.m., <b>Patrick Spendrin</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Yes, when I started with kf5 I already tried to put the easy parts into frameworks itself. Some stuff will be really hard, especially where "excessive" use of posix functions is used. Iirc kconfig was one of these, so it might be needed/wanted to keep the dependency for that part. One issue I wanted to address is that kdewin should ship a cmake Config.cmake so that we at least do not need the FindKDEWin.cmake anymore.

The question for KDE actually is how much code from kdewin can/should go into those libraries before it is better to keep kdewin.</pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I said "port to pure qt", not "duplicate kdewin code everywhere" :-)

I think the right approach is really: "hmm, wait, shouldn't Qt offer a way to do this, cross-platform"? If it does, port to that. If it doesn't, add it to Qt5 and submit it to gerrit. (Then we can look into what this means for the Qt4-based build: ifdef'ing out the code, i.e. breaking behavior with qt4, is a valid option).

But to discuss this further we need actual details of the "excessive use of posix functions" in kconfig.

A quick grep made me find only one, in KConfigIniBackend::isWritable() :
        if (::access(QFile::encodeName(filePath).constData(), W_OK) == 0) {
I added some time ago a comment that says
        // Qt 5 TODO: QFileInfo::canBeCreated or something.
But actually we can implement this one already on top of Qt, using QFileInfo::isWritable() on the parent directory.
(There's an issue if the parent dir doesn't exist yet, but that issue was there already in the ::access() call, AFAICS).</pre>
<br />




<p>- David</p>


<br />
<p>On August 4th, 2012, 9:11 p.m., Andrius da Costa Ribas wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for KDE Frameworks and Patrick Spendrin.</div>
<div>By Andrius da Costa Ribas.</div>


<p style="color: grey;"><i>Updated Aug. 4, 2012, 9:11 p.m.</i></p>






<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Keep the paths already in CMAKE_MODULE_PATH when adding ECM_MODULE_PATH and other search-paths into it.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Before this adjustment it was not possible to proceed with the build due to missing Find*.cmake (e.g.: FindKDEWin.cmake) files.</pre>
  </td>
 </tr>
</table>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>CMakeLists.txt <span style="color: grey">(f20069c)</span></li>

 <li>tier2/kconfig/CMakeLists.txt <span style="color: grey">(c4b2cf6)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/105863/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>