Binaries installed in odd directory under linux

Bug #1786353 reported by William
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
widelands
Won't Fix
Low
Unassigned

Bug Description

Revision 7224.1.5 removed WL_INSTALL_BINDIR, instead opting to use CMAKE_INSTALL_PREFIX. However, binary files by default are now installed into CMAKE_INSTALL_PREFIX directly. I believe this is expected for Windows and MacOS, but under Linux the expectation is that binary files go into CMAKE_INSTALL_PREFIX/bin. In particular, a relatively default install prefix is /usr, but would result in the widelands executable being placed as "/usr/widelands". One option might be something like

IF(ARGS_WIN32)
install(TARGETS ${NAME} DESTINATION "." COMPONENT ExecutableFiles)
ELSE(ARGS_WIN32)
install(TARGETS ${NAME} DESTINATION "bin/" COMPONENT ExecutableFiles)
ENDIF(ARGS_WIN32)

in cmake/WlFunctions.cmake. There are potentially other ways around this, another one I know is to have a "BINDIR" type variable that is set in some OS-specific setup function, but that's basically just bringing back WL_INSTALL_BINDIR, and I assume this was removed for some specific reason.

Tags: buildsystem
GunChleoc (gunchleoc)
tags: added: buildsystem
Changed in widelands:
milestone: none → build20-rc1
importance: Undecided → Low
status: New → Confirmed
GunChleoc (gunchleoc)
Changed in widelands:
status: Confirmed → In Progress
assignee: nobody → GunChleoc (gunchleoc)
Revision history for this message
GunChleoc (gunchleoc) wrote :

There are some additional settings in widelands.h, with a not for packagers to take care of it. The PPA will install the application into usr/share/applications and the data into usr/share/games/widelands

Changed in widelands:
status: In Progress → Confirmed
assignee: GunChleoc (gunchleoc) → nobody
milestone: build20-rc1 → none
Revision history for this message
William (uilliam) wrote :

There are extra settings in CMakeLists.txt with notes for packagers, I assume that's the file you meant and not widelands.h. These include WL_INSTALL_BASEDIR and WL_INSTALL_DATADIR. The DATADIR is respected properly as best I can tell, and WL_INSTALL_BASEDIR will set the location of the installation of files such as COPYING, CREDITS, ChangeLog as well as the doc folder for documentation. However, the binaries widelands, wl_map_info, wl_map_object_info and wl_render_richtext do not get installed in WL_INSTALL_BASEDIR. This is because the function "wl_binary", as defined in cmake/WlFunctions.cmake, makes no reference to WL_INSTALL_BASEDIR, and instead says "install into CMAKE_INSTALL_PREFIX".

Revision history for this message
GunChleoc (gunchleoc) wrote :
Changed in widelands:
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.