summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric NOULARD <eric.noulard@gmail.com>2010-11-29 17:57:24 (GMT)
committerEric NOULARD <eric.noulard@gmail.com>2010-11-29 17:57:24 (GMT)
commitd0eb89c17b86dd583d315b15b8ca71e32561f49a (patch)
treea5a09b5eab3b999189921f7add7347133707d561
parentbd44b2cc5bc4c0152e38474fd549f6b495d3b1b7 (diff)
downloadCMake-d0eb89c17b86dd583d315b15b8ca71e32561f49a.zip
CMake-d0eb89c17b86dd583d315b15b8ca71e32561f49a.tar.gz
CMake-d0eb89c17b86dd583d315b15b8ca71e32561f49a.tar.bz2
CPack backward compatibility fix 2.8.3-2.8.2 (bug 11452)
One should set CPACK_ARCHIVE_COMPONENT_INSTALL=1 in order to trigger component install for ARCHIVE generators
-rw-r--r--Source/CPack/cmCPackArchiveGenerator.cxx44
1 files changed, 28 insertions, 16 deletions
diff --git a/Source/CPack/cmCPackArchiveGenerator.cxx b/Source/CPack/cmCPackArchiveGenerator.cxx
index 424c1a0..8bbf699 100644
--- a/Source/CPack/cmCPackArchiveGenerator.cxx
+++ b/Source/CPack/cmCPackArchiveGenerator.cxx
@@ -228,21 +228,23 @@ int cmCPackArchiveGenerator::PackageFiles()
PrepareGroupingKind();
- // 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.
- if (allComponentInOne || (allGroupInOne && (!this->ComponentGroups.empty())))
- {
- return PackageComponentsAllInOne(allComponentInOne);
- }
- // CASE 2 : COMPONENT CLASSICAL package(s) (i.e. not all-in-one)
- // There will be 1 package for each component group
- // however one may require to ignore component group and
- // in this case you'll get 1 package for each component.
- else if ((!this->ComponentGroups.empty()) || (ignoreComponentGroup))
- {
- return PackageComponents(ignoreComponentGroup);
- }
+ if (SupportsComponentInstallation()) {
+ // 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.
+ if (allComponentInOne || (allGroupInOne && (!this->ComponentGroups.empty())))
+ {
+ return PackageComponentsAllInOne(allComponentInOne);
+ }
+ // CASE 2 : COMPONENT CLASSICAL package(s) (i.e. not all-in-one)
+ // There will be 1 package for each component group
+ // however one may require to ignore component group and
+ // in this case you'll get 1 package for each component.
+ else if ((!this->ComponentGroups.empty()) || (ignoreComponentGroup))
+ {
+ return PackageComponents(ignoreComponentGroup);
+ }
+ }
// CASE 3 : NON COMPONENT package.
DECLARE_AND_OPEN_ARCHIVE(packageFileNames[0],archive);
@@ -278,5 +280,15 @@ int cmCPackArchiveGenerator::GenerateHeader(std::ostream*)
}
bool cmCPackArchiveGenerator::SupportsComponentInstallation() const {
- return true;
+ // The Component installation support should only
+ // be activated if explicitly requested by the user
+ // (for backward compatibility reason)
+ if (IsSet("CPACK_ARCHIVE_COMPONENT_INSTALL"))
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
}