[KDE/Mac] Multiplatform frameworks

Jeremy Whiting jpwhiting at kde.org
Mon Mar 2 12:42:05 GMT 2015


I read that KDEInstallDirs documentation, and it seems it's a bit outdated
or at least not complete. If I change just -DKDE_INSTALL_DATADIR but
nothing else here. kdesrc-build is installing data (stuff that went under
$prefix/share) in "~/Library/Application Support" but nothing else so far.
For example .desktop files for applications are currently in
/usr/local/share/applications and kservice5 stuff is still in
/usr/local/share/kservices5. Now after rereading that page it seems I
changed the DATA_INSTALL_DIR but not the DATAROOTDIR, and since I set it to
an absolute path it's installing those files correctly. I guess ultimately
we would need/want to change all those paths on OS X. In my test here I've
simply added -DKDE_INSTALL_DATADIR="/Users/jeremy/Library/Application
Support" to the cmake options in my ~/.kdesrc-buildrc If there's somewhere
where default cmake arguments are set per platform maybe that would be
better to use and we can figure out the best places for all of these
various paths one at a time.


On Sun, Mar 1, 2015 at 7:30 PM, Ian Wadham <iandw.au at gmail.com> wrote:

> Hi Jeremy,
> My apologies for going back to basics.  Some things you said earlier made
> me
> think we are not on the same page, but I now see that we are.
> On 02/03/2015, at 3:15 AM, Jeremy Whiting wrote:
> >
> > The example code you've given does already use prefixes. I'll explain
> below.
> >
> > On Sat, Feb 28, 2015 at 7:56 PM, Ian Wadham <iandw.au at gmail.com> wrote:
> </snip>
> > > Note that the code could have said '(QStandardPaths::DataLocation,
> "arenas", '.  So no
> > > way for a "kf5" suffix to get in there.  Maybe it comes from
> >
> > Correct, DataLocation (newly clarified as AppDataLocation) is where the
> application stores it's own files, so it's Application Support/<appname> In
> this case granatier (or whatever QApplication::setApplicationName is given
> in main.cpp.
> >
> > > Also, there would be several shared data folders in
> GenericDataLocation, alongside
> > > the DataLocation folders for the apps.  See [2] for details.  These
> would fit in quite well
> > > with standard paths on Apple OS X set to:
> > >
> > >      "~/Library/Application Support/<subdir>", "/Library/Application
> Support/<subdir>"
> > >
> > > always supposing we really *want* to be good Apple citizens.  They
> would not look at
> > > all good if they were directly under "Application Support/", because
> they are not apps.
> >
> > I'm not sure what you mean here, are you referring to kf5 frameworks,
> kdoctools uses kf5/kdoctools/ prefix beneath this to keep it's data
> separated from others, Other kf5 frameworks do the same. If they didn't we
> would have a ton of data in $prefix/share on linux which is also
> discouraged.
> I am talking about regular apps, not Frameworks, but I am glad that
> Frameworks'
> doctools is inserting the "kf5/" subdir.
> If I were to build Granatier in KF5/Qt5, using standard QSP paths on OS X,
> I would
> expect to find "/Library/Application Support/granatier/" containing all
> the data specific
> to Granatier (arenas, etc.).  But also I expect "/Library/Application
> Support/kxmlgui5/",
> containing "granatierui.rc" (?), and ""/Library/Application
> Support/applications/" containing
> "granatier.desktop" (?).  Maybe there would be other subdirs, see [2],
> depending on
> whether Granatier shares other data with other apps or libraries or
> whether it uses shared
> resources such as "/Library/Application Support/icons" (?) (which I assume
> it does).
> If I have understood [2] correctly (BTW there seems to be a misprint under
> it seems to me that "kxmlgui5/", "applications/" and "icons/", *whatever*
> they contain, would
> be out-of-place [3] in "/Library/Application Support/" because they are
> not apps.  And even
> the application subdirs (granatier, etc.) run the risk of name-clashes
> with other software
> from sources other than KDE.  That is why I proposed a special subdir if
> we go the Apple
> and (unaltered) QStandardPaths 5.4 way.
> Cheers, Ian W.
> > [1]
> https://projects.kde.org/projects/kde/kdegames/granatier/repository/revisions/master/entry/src/game.cpp
> > [2] http://api.kde.org/ecm/kde-module/KDEInstallDirs.html
> [3] "Out-of-place" ... "like feathers on a dog"… :-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20150302/716efc62/attachment.htm>

More information about the kde-core-devel mailing list