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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On January 17th, 2015, 11:49 p.m. CET, <b>Friedrich W. H. Kossebau</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="https://git.reviewboard.kde.org/r/122114/diff/1/?file=342455#file342455line98" style="color: black; font-weight: bold; text-decoration: underline;">CMakeLists.txt</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

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



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">98</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="nb">add_definitions</span><span class="p">(</span><span class="s2">"-DQT_EXCEPTIONS"</span><span class="p">)</span></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">What does this line do exactly? And what can it break? Putting it here with no explanation comment and for every build on every system seems risky for me, when it is "just" some MacPort builds?</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Can you please give more details about it? Perhaps it can be ifdef'ed?</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Dropping this because the change turns out to be redundant.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The details (copied from MacPorts' ticketing system):
<code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">``
 When you build Qt4 on OS X (or Linux) using gcc or clang,</code>configure`
 prints a notice when done about how these compilers will by default
 include the infrastructure required for C++ exceptions, how that adds
 considerable overhead, and that it is possible to build Qt without that
 support, resulting in an ABI-compatible install because exceptions aren't
 used internally.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">That latter part is not 100% true: the resulting installation is only ABI
 compatible for software that doesn't require QtXMLPatterns and the full
 QtConcurrent.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The variant presented here does result in an installation that should be
 100% ABI compatible by undoing the effect of configure's <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">-no-exceptions</code>
 for QtCore (and thus QtConcurrent) and QtXMLPatterns. It would have been
 better if QtConcurrent (and XMLPatterns) could be built <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">with</em> exceptions
 and the rest without, but that requires much more invasive hacking of the
 build system.
 ```</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The -DQT_EXCEPTIONS change was necessary with an earlier version of the MacPorts Qt4 variant, before I noticed a section in QtCore/qconfig.h that isn't there in a standard build, and that defines <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">QT_NO_EXCEPTIONS</code> unless <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">QT_EXCEPTIONS</code> is already defined.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Adding <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">-DQT_EXCEPTIONS</code> to the compilerflags when building client code that links against a standard Qt4 variant is nothing more than stating the default. I haven't checked whether calligra uses code from Qt4 libraries (as opposed to Qt4 <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">headers</em>) that requires exceptions, so I cannot tell what line 98 (or its absence) do when building against a Qt that's been built with the stock -no-exceptions.</p></pre>
<br />




<p>- René J.V.</p>


<br />
<p>On January 17th, 2015, 11:04 p.m. CET, René J.V. Bertin wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for Calligra and KDE Software on Mac OS X.</div>
<div>By René J.V. Bertin.</div>


<p style="color: grey;"><i>Updated Jan. 17, 2015, 11:04 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
calligra
</div>


<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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This patch adapts the build system to OS X with KDE4, Qt4 and other dependencies installed through MacPorts. </p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">In order of appearance in the patch file:
- <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">-DQT_EXCEPTIONS</code>: this is for use with Qt built with its -no-exceptions option, which MacPorts provides as an optional variant.
- Newer OS X variants only provide the clang compiler
- The default install location for MacPorts is <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">/opt/local</code>, but this can be changed by the user. The header and library search paths required for OpenJPEG, libpqxx and OpenVC are added using <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">//opt//local//</code> which is of course equivalent to <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">/opt/local</code> but easier to search-and-replace with the true install location in MacPorts' post-patch stage.
- the product set for OS X has been extended to all applications and features that build and make sense. (Calligra Gemini builds, but does not function properly.)</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">A "Portfile" and accompanying patches that don't have the vocation to be included "upstream" in calligra will be uploaded to MacPorts' trac system soon.</p></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;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">On OS X 10.9.5 with kdelibs 4.14.4 and Qt 4.8.6 installed through MacPorts.</p></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">(facb5f9)</span></li>

 <li>cmake/modules/FindOpenJPEG.cmake <span style="color: grey">(6bfd93c)</span></li>

 <li>cmake/modules/FindPqxx.cmake <span style="color: grey">(3e24a0c)</span></li>

 <li>cmake/modules/FindVc.cmake <span style="color: grey">(bb9823f)</span></li>

 <li>cmake/productsets/osx.cmake <span style="color: grey">(1fe8f1c)</span></li>

</ul>

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






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








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