I wouldn't expect someone to set CMAKE_INSTALL_PREFIX=$HOME.  That just seems 
like a good way to cause issues to me.

There is a ~/.local/share directory and a ~/.local/share/applications directory 
in my home directory that has desktop files in it.  (That might imply using 
CMAKE_INSTALL_PREFIX=$HOME/.local is possible but that still seems like it is 
asking for trouble.)

Standard practice is to put the files under ${CMAKE_INSTALL_PREFIX}/share/<app> 
unless the user specifically overrides that.  I consider it hostile behavior when an 
installer or build system starts putting files outside of the path(s) that I have 
specified for it.  I can make symlinks for files in ${CMAKE_INSTALL_PREFIX}/share to 
~/.local/share/applications manually if I want to.

As an aside, I personally tend to install locally built applications under 
~/apps/<category>/<app>/<version>  where <category> is something like GIS, and 
<app> would be like QGIS or PDAL, and version is the release or the output of 'git describe --tags'.   
This lets me keep multiple versions of installed applications which is particularly useful for regression 
testing and/or ensuring a long job is completed using one version of a program while I can start new jobs 
with newer versions.  I have a (git) versioned build.sh script for each application that does things like 
make directories, call cmake/make/make test/make install, and sometimes updates desktop files and module 
files (see the environment-modules Debian package).  Occasionally I have special builds with custom patches 
for a particular task.  These fit the structure too (they have a different git tag/hash).

If build systems started messing around with files in 
~/.local/share/applications behind my back, it would make a real mess of not 
being certain what build a desktop file was pointing to.

On 10/5/20 8:56 PM, Pierre Abbat wrote:
When installing an app from a package on Linux, the binaries go in /usr/bin/,
the data files go in /usr/share/<app>/, and the desktop files go in /usr/share/
applications/. When installing from source, or installing from a package on
DragonFly, the binaries go in /usr/local/bin/, the data files go in /usr/local/
share/<app>/, and the desktop files go in /usr/share/applications/. When I
install it in my home directory, the binaries go in ~/bin/. The desktop files,
however, go in ~/.local/applications/. Where should the data files go?

I've been setting SHARE_DIR to ${CMAKE_INSTALL_PREFIX}/share/<app>. If I put
the desktop file in ${CMAKE_INSTALL_PREFIX}/share/applications/, that would be
correct for a system-wide install, but wrong for a personal install. I checked
SHARE_DIR in CMakeLists files seven levels deep (PDAL has some that are that
deep), but found none that set SHARE_DIR to anything else. Is there another
CMake variable that tells where desktop files go?

One of the lines in the desktop file tells where the icon is. PerfectTIN has a
256×256 pixel icon. Do I have to shrink it for the desktop file?

Pierre

_______________________________________________
Discuss mailing list
Discuss@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/discuss

Reply via email to