Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.
For example, when CPACK_<GEN>_COMPONENT_INSTALL and CPACK_MONOLITHIC_INSTALL are both set. Previously, this combination of variable settings produced an error without any explanation. Now, in this case CPACK_MONOLITHIC_INSTALL wins without trouble. This is useful for when e.g. CPACK_ARCHIVE_COMPONENT_INSTALL is globally on and one wants MONOLITHIC install for STGZ (but not other generators). The same behavior may be obtained by re-setting CPACK_ARCHIVE_COMPONENT_INSTALL to 0 but in any case the 'both set' case should have been handled without error.
This commit is contained in:
parent
1bfe81e01e
commit
805c1b21d6
@ -247,7 +247,7 @@ int cmCPackArchiveGenerator::PackageFiles()
|
|||||||
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Toplevel: "
|
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Toplevel: "
|
||||||
<< toplevel << std::endl);
|
<< toplevel << std::endl);
|
||||||
|
|
||||||
if (SupportsComponentInstallation()) {
|
if (WantsComponentInstallation()) {
|
||||||
// CASE 1 : COMPONENT ALL-IN-ONE package
|
// CASE 1 : COMPONENT ALL-IN-ONE package
|
||||||
// If ALL COMPONENTS in ONE package has been requested
|
// If ALL COMPONENTS in ONE package has been requested
|
||||||
// then the package file is unique and should be open here.
|
// then the package file is unique and should be open here.
|
||||||
|
@ -236,7 +236,7 @@ int cmCPackDebGenerator::PackageFiles()
|
|||||||
int retval = -1;
|
int retval = -1;
|
||||||
|
|
||||||
/* Are we in the component packaging case */
|
/* Are we in the component packaging case */
|
||||||
if (SupportsComponentInstallation()) {
|
if (WantsComponentInstallation()) {
|
||||||
// CASE 1 : COMPONENT ALL-IN-ONE package
|
// CASE 1 : COMPONENT ALL-IN-ONE package
|
||||||
// If ALL GROUPS or ALL COMPONENTS in ONE package has been requested
|
// If ALL GROUPS or ALL COMPONENTS in ONE package has been requested
|
||||||
// then the package file is unique and should be open here.
|
// then the package file is unique and should be open here.
|
||||||
|
@ -1436,6 +1436,12 @@ bool cmCPackGenerator::SupportsComponentInstallation() const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------
|
||||||
|
bool cmCPackGenerator::WantsComponentInstallation() const
|
||||||
|
{
|
||||||
|
return (!IsOn("CPACK_MONOLITHIC_INSTALL") & SupportsComponentInstallation());
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
cmCPackInstallationType*
|
cmCPackInstallationType*
|
||||||
cmCPackGenerator::GetInstallationType(const char *projectName,
|
cmCPackGenerator::GetInstallationType(const char *projectName,
|
||||||
|
@ -189,7 +189,21 @@ protected:
|
|||||||
virtual int InstallProjectViaInstallCMakeProjects(
|
virtual int InstallProjectViaInstallCMakeProjects(
|
||||||
bool setDestDir, const char* tempInstallDirectory);
|
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;
|
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,
|
virtual cmCPackInstallationType* GetInstallationType(const char *projectName,
|
||||||
const char* name);
|
const char* name);
|
||||||
virtual cmCPackComponent* GetComponent(const char *projectName,
|
virtual cmCPackComponent* GetComponent(const char *projectName,
|
||||||
|
@ -201,7 +201,7 @@ int cmCPackRPMGenerator::PackageFiles()
|
|||||||
<< toplevel << std::endl);
|
<< toplevel << std::endl);
|
||||||
|
|
||||||
/* Are we in the component packaging case */
|
/* Are we in the component packaging case */
|
||||||
if (SupportsComponentInstallation()) {
|
if (WantsComponentInstallation()) {
|
||||||
// CASE 1 : COMPONENT ALL-IN-ONE package
|
// CASE 1 : COMPONENT ALL-IN-ONE package
|
||||||
// If ALL COMPONENTS in ONE package has been requested
|
// If ALL COMPONENTS in ONE package has been requested
|
||||||
// then the package file is unique and should be open here.
|
// then the package file is unique and should be open here.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user