The issue with the install dirs...

David Faure faure at kde.org
Fri Dec 9 10:15:24 UTC 2011


On Thursday 08 December 2011 22:33:29 Alexander Neundorf wrote:
> BIN_INSTALL_DIR  (default is prefix/bin)
Should we drop that one and use CMAKE_INSTALL_BINDIR?
Wouldn't that make things more "standard"?
I see what you're saying by "minimizing the porting effort", but that can be 
scripted easily, and on the other hand, it creates two worlds again, the 
"cmake-kde" world vs the rest of the world. So an app which starts without any 
"kde" dependency, will suddenly have to port all its install dirs to the kde 
set, to avoid mixing both sets, if they need to use one of the kde features? 
That doesn't sound too appealing.

> BUNDLE_INSTALL_DIR  (default is /Applications/KDE4 )
> SBIN_INSTALL_DIR (default is prefix/sbin)
> LIB_INSTALL_DIR  (default is prefix/lib)
> DATA_INSTALL_DIR
> HTML_INSTALL_DIR
> ICON_INSTALL_DIR  (default prefix/share/icons/)

> INFO_INSTALL_DIR  (default prefix/info)

Is this really used anywhere? lxr says no, you can remove it.

> DEMO_INSTALL_DIR

Completely unused AFAICS, you can remove it too.

> CONFIG_INSTALL_DIR
> KCFG_INSTALL_DIR
> KCONF_UPDATE_INSTALL_DIR

A thought: how about trying to make this modular too?
E.g. you have no use in CONFIG_INSTALL_DIR, KCFG_INSTALL_DIR or 
KCONF_UPDATE_INSTALL_DIR if you're not using the kconfig library, so these vars 
could come from the kconfig library.

> SERVICES_INSTALL_DIR
> SERVICETYPES_INSTALL_DIR

These could be provided by the kservice library.

> MIME_INSTALL_DIR

You can remove that one, it was for kde3 desktop files.
XDG_MIME_INSTALL_DIR below replaces it.

> LOCALE_INSTALL_DIR
> MAN_INSTALL_DIR  (default prefix/man/)
> PLUGIN_INSTALL_DIR  (default is ${LIB_INSTALL_DIR}/kde4)
> IMPORTS_INSTALL_DIR
> SOUND_INSTALL_DIR
> TEMPLATES_INSTALL_DIR  
> WALLPAPER_INSTALL_DIR
> AUTOSTART_INSTALL_DIR
> SYSCONF_INSTALL_DIR  (default /etc)

> XDG_APPS_INSTALL_DIR
> XDG_DIRECTORY_INSTALL_DIR
> XDG_MIME_INSTALL_DIR

XDG_*_DIR could be provided by cmake itself.

Not sure about some of the others though, a standard directory for sounds, file 
templates, and wallpapers don't really need shared code, one is just 
installing something for the desktop to pick up.

But OK, that's just a thought. It might make maintainance of the features you 
mention much harder, so feel free to disregard.

For feature 3, the main use case is compiling an app using libs from the 
distro, where some paths might have been adjusted. Can't this be solved with a 
single ConfigFoo-like file which sets the variables? And here again, the same 
issue applies to GNUInstallDirs, not just to kde-specific stuff, so merging the 
two sounds like a better idea to me.... Time to move to standard ways rather 
than be conservative (I don't say that often ;)

-- 
David Faure, faure at kde.org, http://www.davidfaure.fr
Sponsored by Nokia to work on KDE, incl. KDE Frameworks 5



More information about the Kde-buildsystem mailing list