jeanguyomarch/eovim

Can the lib install directory be specified?

Closed this issue · 2 comments

I have had two rather minor issues with building eovim on Gentoo. The first only occured when I tried to build the package on its own, outside of Gentoo's portage build system. For some reason cmake choked on this line in CMakeLists.txt
list(GET VERSION_LIST -1 VERSION)
It would spit out:
CMake Error at CMakeLists.txt:62 (list): list GET given empty list
and crash while configuring. Commenting out the line got rid of the problem, but more oddly when I did move on to building the package though portage it had no trouble. I don't know if there is some obvious environment variable the build system was setting that I was not. I could provide plenty more data if desired, but this is so minor and likely my fault that I don't think it's worth the bother to look into. Just thought I'd mention it.

More notably I couldn't find any convenient way of setting the default library install directory. cmake just ignores anything along the lines of LIBDIR, PACKAGE_LIBDIR, INSTALL_LIBDIR, etc. The problem is that Gentoo is moving away from having /usr/lib link to /usr/lib64, and consequently doesn't allow anything to install to /usr/lib at all. The build succeeds, but when portage tries to do its install it crashes and complains of a multilib_strict error. This is not a bug with portage; it's working as intended. I managed to make it work by running
sed -i 's,\(\${CMAKE_INSTALL_PREFIX}/lib\),\164,g' "${BUILD_DIR}/plugins/cmake_install.cmake"
to change the install dir at the last minute before portage calls make install, but I feel like there must be a better way.

Again, these problems are very very minor. I admit to being largely ignorant of cmake, and half an hour of googling around yielded little help, so I just thought I'd ask if there might be something I'm missing here, or if perhaps there's some minor change that could be made to allow for overriding the libdir.

Incidentally, it might also be worth pointing out that eovim can be made to crash with certainty by rapidly resizing the window back and forth (segfault) and it refuses to allow one to size it smaller than the size at which it launched (in Plasma on both my PC and laptop, in Gentoo and Archlinux). It's stable otherwise, so this is somewhat curious.

Hi @roflcopter4, thanks for these reports :)

  • I think you are building sources eovim that do not reside within a git repository. I could reproduce your first problem using a tarball of the sources. This should now be fixed.
  • I wasn't aware of the multilib strict option of portage. It seems that cmake does not support this out of the box. Each project using cmake should bring its own. I've made two changes: by default eovim will install the libraries in lib32 for 32-bits arch, lib64 for 64-bits arch. This can be overriden by passing -DLIB_INSTALL_DIR=path/ to cmake:
$ cmake .. -DLIB_INSTALL_DIR=lib66
-- Up-to-date: /usr/local/lib66/libeovim.so
-- Installing: /usr/local/lib66/eovim/sizing.so
-- Set runtime path of "/usr/local/lib66/eovim/sizing.so" to ""
-- Installing: /usr/local/lib66/eovim/imageviewer.so
-- Set runtime path of "/usr/local/lib66/eovim/imageviewer.so" to ""
-- Installing: /usr/local/lib66/eovim/tooltip.so
-- Set runtime path of "/usr/local/lib66/eovim/tooltip.so" to ""
  • I could not reproduce the segfault when resizing back and forth the window, but I can see how eovim cannot be resized below its initial size. I'll have a look.

As plugins have been removed, there is no libdir anymore.