Commit 0e339f70 authored by Brad King's avatar Brad King Committed by Kitware Robot
Browse files

Merge topic 'CPack-fixCPACK_MONOLITHIC_INSTALL-handling'

805c1b21 Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.
parents 1df15c68 805c1b21
......@@ -247,7 +247,7 @@ int cmCPackArchiveGenerator::PackageFiles()
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Toplevel: "
<< toplevel << std::endl);
if (SupportsComponentInstallation()) {
if (WantsComponentInstallation()) {
// CASE 1 : COMPONENT ALL-IN-ONE package
// If ALL COMPONENTS in ONE package has been requested
// then the package file is unique and should be open here.
......
......@@ -236,7 +236,7 @@ int cmCPackDebGenerator::PackageFiles()
int retval = -1;
/* Are we in the component packaging case */
if (SupportsComponentInstallation()) {
if (WantsComponentInstallation()) {
// CASE 1 : COMPONENT ALL-IN-ONE package
// If ALL GROUPS or ALL COMPONENTS in ONE package has been requested
// then the package file is unique and should be open here.
......
......@@ -1436,6 +1436,12 @@ bool cmCPackGenerator::SupportsComponentInstallation() const
return false;
}
//----------------------------------------------------------------------
bool cmCPackGenerator::WantsComponentInstallation() const
{
return (!IsOn("CPACK_MONOLITHIC_INSTALL") & SupportsComponentInstallation());
}
//----------------------------------------------------------------------
cmCPackInstallationType*
cmCPackGenerator::GetInstallationType(const char *projectName,
......
......@@ -189,7 +189,21 @@ protected:
virtual int InstallProjectViaInstallCMakeProjects(
bool setDestDir, const char* tempInstallDirectory);
/**
* Does the CPack generator support component installation?.
* Some Generators requires the user to set
* CPACK_<GENNAME>_COMPONENT_INSTALL in order to make this
* method return true.
* @return true if supported, false otherwise
*/
virtual bool SupportsComponentInstallation() const;
/**
* Does the currently running generator want a component installation.
* The generator may support component installation but he may
* be requiring monolithic install using CPACK_MONOLITHIC_INSTALL.
* @return true if component installation is supported and wanted.
*/
virtual bool WantsComponentInstallation() const;
virtual cmCPackInstallationType* GetInstallationType(const char *projectName,
const char* name);
virtual cmCPackComponent* GetComponent(const char *projectName,
......
......@@ -201,7 +201,7 @@ int cmCPackRPMGenerator::PackageFiles()
<< toplevel << std::endl);
/* Are we in the component packaging case */
if (SupportsComponentInstallation()) {
if (WantsComponentInstallation()) {
// CASE 1 : COMPONENT ALL-IN-ONE package
// If ALL COMPONENTS in ONE package has been requested
// then the package file is unique and should be open here.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment