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}"
|
WORKING_DIRECTORY "${WDIR}"
|
||||||
OUTPUT_VARIABLE CPACK_RPM_INSTALL_FILES)
|
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_ABSOLUTE_DESTINATION_FILES)
|
||||||
IF(CPACK_RPM_PACKAGE_DEBUG)
|
IF(CPACK_RPM_PACKAGE_DEBUG)
|
||||||
message("CPackRPM:Debug: Handling Absolute Destination Files: ${CPACK_ABSOLUTE_DESTINATION_FILES}")
|
message("CPackRPM:Debug: Handling Absolute Destination Files: ${CPACK_ABSOLUTE_DESTINATION_FILES}")
|
||||||
|
|
|
@ -867,6 +867,28 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
|
||||||
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
||||||
"Got some ABSOLUTE DESTINATION FILES: "
|
"Got some ABSOLUTE DESTINATION FILES: "
|
||||||
<< absoluteDestFiles << std::endl);
|
<< 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 )
|
if ( cmSystemTools::GetErrorOccuredFlag() || !res )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue