<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/127649/">https://git.reviewboard.kde.org/r/127649/</a>
     </td>
    </tr>
   </table>
   <br />




<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 KDE Software on Mac OS X and Marble.</div>
<div>By RenĂ© J.V. Bertin.</div>


<p style="color: grey;"><i>Updated Sept. 6, 2016, 10:20 p.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</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;">Updated for git/master.

There has been consensus on the mailing lists that QSettings should be using the IniFormat for this kind of build type. Given the amount of calls to the QSettings API it would be most appropriate to do that with a single call to `QSettings::setDefaultFormat()` in some central initialisation block that is called before any other use of the QSettings API, by the Marble apps but also the widgets library used by 3rd party apps. If there's such a code block I didn't find it, so I calling `setDefaultFormat()` from every location where QSettings will be used. Overkill, but it seems to work.</pre>
  </td>
 </tr>
</table>







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


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description  (updated)</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;">Marble currently aims to build 1 or 2 more or less standalone app bundles when being built on Mac OS X. There is nothing wrong with that, but it presents a problem for distribution systems like MacPorts or Fink or HomeBrew that aim to share libraries among packages and to remain as close as possible to the runtime context for which packages were designed (i.e. XDG/Freedesktop). Evidently the goal is not to replace the OS X desktop with a Plasma shell; rather, the idea is that the feature set will be most complete and maintenance will be easiest when differences like where resources are to be found are as small as possible. Think of it as running KDE applications installed with their dependencies in some separate prefix, under e.g. a Gnome, XFCE or even a "bare-bones X11" desktop environment.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The patch achieves this by disabling all APPLE-specific things in the CMake files except for the required frameworks (Apple's, not KF5), currently by replacing APPLE with the unknown APPEL token.
The result is that there is still an app bundle that is created, for the KF5-based marble (but not for marble-qt though that ought to be possible too). A few additional lines create and install an application icon for marble.app . Everything else is installed in its usual location under the prefix.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This way of building is more or less a prerequisite to build 3rd party apps like digiKam which can use libMarble . It would be a lot less evident to do this if that library is hidden in a relocatable app bundle.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The basic approach followed here is the introduction of an <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">option(APPLE_STANDALONE_BUNDLE,"build app bundle(s)" YES)</code> when building on OS X; the <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">APPLE_STANDALONE_BUNDLE</code> token replaces the <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">APPLE</code> token in all cmake code that determines installation locations or features related to building as a standalone app bundle. Platform-specific blocks that are relevant to both build types retain the use of the <code style="text-rendering: inherit;color: #4444cc;padding: 0;white-space: normal;margin: 0;line-height: inherit;">APPLE</code> token.</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing (updated)</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 as well as Linux, with Qt 5.6 and FWs 5.20.0 - 5.24.0, installed under /opt/local</p></pre>
  </td>
 </tr>
</table>


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

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

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

 <li>examples/cpp/marble-game/GameMainWindow.cpp <span style="color: grey">(0549ea4)</span></li>

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

 <li>src/apps/marble-kde/CMakeLists.txt <span style="color: grey">(3fe5187)</span></li>

 <li>src/apps/marble-mobile/MobileMainWindow.cpp <span style="color: grey">(d17dde4)</span></li>

 <li>src/apps/marble-mobile/main.cpp <span style="color: grey">(e612b4f)</span></li>

 <li>src/apps/marble-qt/CMakeLists.txt <span style="color: grey">(d28e3aa)</span></li>

 <li>src/apps/marble-qt/QtMainWindow.cpp <span style="color: grey">(9813766)</span></li>

 <li>src/apps/marble-qt/qtmain.cpp <span style="color: grey">(46c791c)</span></li>

 <li>src/lib/astro/CMakeLists.txt <span style="color: grey">(3dbe455)</span></li>

 <li>src/lib/marble/AbstractFloatItem.cpp <span style="color: grey">(afe3f63)</span></li>

 <li>src/lib/marble/CMakeLists.txt <span style="color: grey">(475513b)</span></li>

 <li>src/lib/marble/MapThemeSortFilterProxyModel.cpp <span style="color: grey">(8babb74)</span></li>

 <li>src/lib/marble/MapViewItemDelegate.cpp <span style="color: grey">(cae5e69)</span></li>

 <li>src/lib/marble/MapViewWidget.cpp <span style="color: grey">(f54ab03)</span></li>

 <li>src/lib/marble/MarbleDirs.cpp <span style="color: grey">(76ed565)</span></li>

 <li>src/lib/marble/QtMarbleConfigDialog.cpp <span style="color: grey">(3b40f9c)</span></li>

 <li>src/lib/marble/declarative/MarbleQuickItem.cpp <span style="color: grey">(18806a0)</span></li>

 <li>src/lib/marble/geodata/data/GeoDataLabelStyle.cpp <span style="color: grey">(8544d34)</span></li>

 <li>src/plugins/render/foursquare/FoursquarePlugin.cpp <span style="color: grey">(981691b)</span></li>

 <li>src/plugins/render/graticule/GraticulePlugin.cpp <span style="color: grey">(3131f9c)</span></li>

 <li>src/plugins/render/measure/MeasureToolPlugin.cpp <span style="color: grey">(64e09e2)</span></li>

 <li>src/plugins/render/weather/WeatherItem.cpp <span style="color: grey">(eafd1a0)</span></li>

 <li>src/plugins/runner/gpx/CMakeLists.txt <span style="color: grey">(62e1e10)</span></li>

 <li>src/plugins/runner/json/CMakeLists.txt <span style="color: grey">(e034784)</span></li>

 <li>src/plugins/runner/kml/CMakeLists.txt <span style="color: grey">(a31ce98)</span></li>

 <li>src/plugins/runner/shp/CMakeLists.txt <span style="color: grey">(7e08089)</span></li>

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

</ul>

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






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



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