CPackRPM:: [partially] support relocatable package
The support is partial because it cannot be used if CPACK_SET_DESTDIR is set some file are installed using absolute path
This commit is contained in:
parent
70154efef8
commit
604c3698c1
|
@ -81,6 +81,18 @@
|
|||
# Mandatory : NO
|
||||
# Default : -
|
||||
# May be used to set RPM packages that are obsoleted by this one.
|
||||
# CPACK_RPM_PACKAGE_RELOCATABLE
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
# If this variable is set to TRUE or ON CPackRPM will try
|
||||
# to build a relocatable RPM package. A relocatable RPM may
|
||||
# be installed using rpm --prefix or --relocate in order to
|
||||
# install it at an alternate place see rpm(8).
|
||||
# Note that currently this may fail if the package contains
|
||||
# files installed with absolute path or CPACK_SET_DESTDIR is set to ON.
|
||||
# If CPACK_SET_DESTDIR is set then you will get a warning message
|
||||
# but if there is file installed with absolute path you'll get
|
||||
# unexpected behavior.
|
||||
# CPACK_RPM_SPEC_INSTALL_POST
|
||||
# Mandatory : NO
|
||||
# Default : -
|
||||
|
@ -319,8 +331,19 @@ ELSE(CPACK_RPM_COMPRESSION_TYPE)
|
|||
SET(CPACK_RPM_COMPRESSION_TYPE_TMP "")
|
||||
ENDIF(CPACK_RPM_COMPRESSION_TYPE)
|
||||
|
||||
if(CPACK_RPM_PACKAGE_RELOCATABLE)
|
||||
if(CPACK_RPM_PACKAGE_DEBUG)
|
||||
message("CPackRPM:Debug: Trying to build a relocatable package")
|
||||
endif(CPACK_RPM_PACKAGE_DEBUG)
|
||||
if(CPACK_SET_DESTDIR)
|
||||
message(SEND_ERROR "CPackRPM:Warning: CPACK_SET_DESTDIR is set while requesting a relocatable package (CPACK_RPM_PACKAGE_RELOCATABLE is set): this is not supported, the package won't be relocatable.")
|
||||
else(CPACK_SET_DESTDIR)
|
||||
set(CPACK_RPM_PACKAGE_PREFIX ${CPACK_PACKAGING_INSTALL_PREFIX})
|
||||
endif(CPACK_SET_DESTDIR)
|
||||
endif(CPACK_RPM_PACKAGE_RELOCATABLE)
|
||||
|
||||
# check if additional fields for RPM spec header are given
|
||||
FOREACH(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES)
|
||||
FOREACH(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX)
|
||||
IF(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER})
|
||||
STRING(LENGTH ${_RPM_SPEC_HEADER} _PACKAGE_HEADER_STRLENGTH)
|
||||
MATH(EXPR _PACKAGE_HEADER_STRLENGTH "${_PACKAGE_HEADER_STRLENGTH} - 1")
|
||||
|
@ -477,8 +500,8 @@ Vendor: \@CPACK_RPM_PACKAGE_VENDOR\@
|
|||
\@TMP_RPM_PROVIDES\@
|
||||
\@TMP_RPM_OBSOLETES\@
|
||||
\@TMP_RPM_BUILDARCH\@
|
||||
\@TMP_RPM_PREFIX\@
|
||||
|
||||
#p define prefix \@CMAKE_INSTALL_PREFIX\@
|
||||
%define _rpmdir \@CPACK_RPM_DIRECTORY\@
|
||||
%define _rpmfilename \@CPACK_RPM_FILE_NAME\@
|
||||
%define _unpackaged_files_terminate_build 0
|
||||
|
|
Loading…
Reference in New Issue