Creating a python package (deb/rpm) from cmake
As mentionned in my other solution, the ugly part is dealing with absolute path in cmake install()
commands. I was able to refactor the code to avoid usage of absolute path in install()
. I simply changed the installation into:
install(
# trailing slash is important:
DIRECTORY ${SETUP_OUTPUT}/
# "." syntax is a reliable mechanism, see:
# https://gitlab.kitware.com/cmake/cmake/-/issues/22616
DESTINATION "."
COMPONENT python)
And then one simply needs to:
set(CMAKE_INSTALL_PREFIX "/")
set(CPACK_PACKAGING_INSTALL_PREFIX "/")
include(CPack)
At this point all install path now need to include explicitely /usr
since we've cleared the value for CMAKE_INSTALL_PREFIX
.
The above has been tested for deb and rpm packages. CPACK_BINARY_TGZ
does properly run with the above solution:
- https://gitlab.kitware.com/cmake/cmake/-/issues/22925