Install prefix not honored
mgrojo opened this issue · 4 comments
Prerequisite Checklist
- I searched for existing issues to prevent duplicates
- I searched for existing discussions on the forum to prevent duplicates
- I am here to report an issue and not to just ask a question or look for help (use the forum or Discord instead)
Describe your issue here
I tried to install as a regular user, but a system path was tried to be written.
Your Environment
- OS / distro / window manager: Ubuntu 22.04.4 LTS / Xwayland
- CSFML version: b71e8c1
- Compiler / toolchain: GCC
- Special compiler / CMake flags:
Steps to reproduce
cmake --install . --prefix $HOME/local
Expected behavior
Everything is installed under $HOME/local
with regular user permissions.
Actual behavior
-- Install configuration: "Release"
-- Installing: /home/mgr/local/lib/libcsfml-system.so.3.0.0
-- Installing: /home/mgr/local/lib/libcsfml-system.so.3.0
-- Installing: /home/mgr/local/lib/libcsfml-system.so
-- Installing: /home/mgr/local/lib/libcsfml-window.so.3.0.0
-- Installing: /home/mgr/local/lib/libcsfml-window.so.3.0
-- Installing: /home/mgr/local/lib/libcsfml-window.so
-- Installing: /home/mgr/local/lib/libcsfml-network.so.3.0.0
-- Installing: /home/mgr/local/lib/libcsfml-network.so.3.0
-- Installing: /home/mgr/local/lib/libcsfml-network.so
-- Installing: /home/mgr/local/lib/libcsfml-graphics.so.3.0.0
-- Installing: /home/mgr/local/lib/libcsfml-graphics.so.3.0
-- Installing: /home/mgr/local/lib/libcsfml-graphics.so
-- Installing: /home/mgr/local/lib/libcsfml-audio.so.3.0.0
-- Installing: /home/mgr/local/lib/libcsfml-audio.so.3.0
-- Installing: /home/mgr/local/lib/libcsfml-audio.so
CMake Error at cmake_install.cmake:59 (file):
file cannot create directory: /usr/local//pkgconfig. Maybe need
administrative privileges.
Please share your CMake configuration command. It appears you're trying to do something with pkgconfig as opposed to a normal CMake installation.
I simply did:
cmake .
make
cmake --install . --prefix $HOME/local
I tried also with make install
but don't know how to specify the prefix. I found the last command in https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html
When you run cmake
the first time, CSFML_PKGCONFIG_INSTALL_PREFIX
gets initialized based on CMAKE_INSTALL_PREFIX
. When running cmake the second time, it ignores the new $HOME/local
prefix because the install directory for pkgfile depends on CSFML_PKGCONFIG_INSTALL_PREFIX
, which was initialized with the wrong prefix on the first run.
I've seen this problem in the past as well, even in SFML itself. If you delete the build folder and specify the prefix on the first cmake run then it does get installed to the correct location (when running the install command later). Alternatively you can specify a value for CSFML_PKGCONFIG_INSTALL_PREFIX
explicitly.