CPackRPM Fix #12096: handle absolute install path with component install
This commit is contained in:
parent
046b615bc8
commit
d3fd945900
|
@ -495,6 +495,20 @@ EXECUTE_PROCESS(COMMAND find -type f -o -type l
|
|||
WORKING_DIRECTORY "${WDIR}"
|
||||
OUTPUT_VARIABLE CPACK_RPM_INSTALL_FILES)
|
||||
|
||||
# In component case, replace CPACK_ABSOLUTE_DESTINATION_FILES
|
||||
# with the content of CPACK_ABSOLUTE_DESTINATION_FILES_<COMPONENT>
|
||||
# This must be done BEFORE the CPACK_ABSOLUTE_DESTINATION_FILES handling
|
||||
if(CPACK_RPM_PACKAGE_COMPONENT)
|
||||
if(CPACK_ABSOLUTE_DESTINATION_FILES)
|
||||
set(COMPONENT_FILES_TAG "CPACK_ABSOLUTE_DESTINATION_FILES_${CPACK_RPM_PACKAGE_COMPONENT}")
|
||||
set(CPACK_ABSOLUTE_DESTINATION_FILES "${${COMPONENT_FILES_TAG}}")
|
||||
if(CPACK_RPM_PACKAGE_DEBUG)
|
||||
message("CPackRPM:Debug: Handling Absolute Destination Files ${CPACK_ABSOLUTE_DESTINATION_FILES}")
|
||||
message("CPackRPM:Debug: in component = ${CPACK_RPM_PACKAGE_COMPONENT}")
|
||||
endif(CPACK_RPM_PACKAGE_DEBUG)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (CPACK_ABSOLUTE_DESTINATION_FILES)
|
||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||
message("CPackRPM:Debug: Handling Absolute Destination Files: ${CPACK_ABSOLUTE_DESTINATION_FILES}")
|
||||
|
|
|
@ -867,6 +867,28 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
|
|||
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
||||
"Got some ABSOLUTE DESTINATION FILES: "
|
||||
<< absoluteDestFiles << std::endl);
|
||||
// define component specific var
|
||||
if (componentInstall)
|
||||
{
|
||||
std::string absoluteDestFileComponent =
|
||||
std::string("CPACK_ABSOLUTE_DESTINATION_FILES")
|
||||
+ "_" + GetComponentInstallDirNameSuffix(installComponent);
|
||||
if (NULL != this->GetOption(absoluteDestFileComponent.c_str()))
|
||||
{
|
||||
std::string absoluteDestFilesListComponent =
|
||||
this->GetOption(absoluteDestFileComponent.c_str());
|
||||
absoluteDestFilesListComponent +=";";
|
||||
absoluteDestFilesListComponent +=
|
||||
mf->GetDefinition("CPACK_ABSOLUTE_DESTINATION_FILES");
|
||||
this->SetOption(absoluteDestFileComponent.c_str(),
|
||||
absoluteDestFilesListComponent.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
this->SetOption(absoluteDestFileComponent.c_str(),
|
||||
mf->GetDefinition("CPACK_ABSOLUTE_DESTINATION_FILES"));
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( cmSystemTools::GetErrorOccuredFlag() || !res )
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue