diff options
author | Eric NOULARD <eric.noulard@gmail.com> | 2011-03-03 20:19:13 (GMT) |
---|---|---|
committer | Eric NOULARD <eric.noulard@gmail.com> | 2011-03-03 20:19:13 (GMT) |
commit | fe530ff5e90f8eada47b4480375b9898f018eefc (patch) | |
tree | c54a0d1439dd37583f10d922b7641d55e6ddfc65 | |
parent | cbb5ae60be15738a4d6db4607466346153c3dbba (diff) | |
download | CMake-fe530ff5e90f8eada47b4480375b9898f018eefc.zip CMake-fe530ff5e90f8eada47b4480375b9898f018eefc.tar.gz CMake-fe530ff5e90f8eada47b4480375b9898f018eefc.tar.bz2 |
CPackArchive package all components specified in CPACK_COMPONENTS_ALL
When asking for group packaging the components not belonging to
any group should be packaged separately.
-rw-r--r-- | Source/CPack/cmCPackArchiveGenerator.cxx | 33 | ||||
-rw-r--r-- | Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake | 2 |
2 files changed, 34 insertions, 1 deletions
diff --git a/Source/CPack/cmCPackArchiveGenerator.cxx b/Source/CPack/cmCPackArchiveGenerator.cxx index 3c670a1..b629c63 100644 --- a/Source/CPack/cmCPackArchiveGenerator.cxx +++ b/Source/CPack/cmCPackArchiveGenerator.cxx @@ -143,6 +143,39 @@ int cmCPackArchiveGenerator::PackageComponents(bool ignoreGroup) // add the generated package to package file names list packageFileNames.push_back(packageFileName); } + // Handle Orphan components (components not belonging to any groups) + std::map<std::string, cmCPackComponent>::iterator compIt; + for (compIt=this->Components.begin(); + compIt!=this->Components.end(); ++compIt ) + { + // Does the component belong to a group? + if (compIt->second.Group==NULL) + { + cmCPackLogger(cmCPackLog::LOG_VERBOSE, + "Component <" + << compIt->second.Name + << "> does not belong to any group, package it separately." + << std::endl); + std::string localToplevel( + this->GetOption("CPACK_TEMPORARY_DIRECTORY") + ); + std::string packageFileName = std::string(toplevel); + + localToplevel += "/"+ compIt->first; + packageFileName += "/"+ + GetComponentPackageFileName(this->GetOption("CPACK_PACKAGE_FILE_NAME"), + compIt->first, + false) + + this->GetOutputExtension(); + { + DECLARE_AND_OPEN_ARCHIVE(packageFileName,archive); + // Add the files of this component to the archive + addOneComponentToArchive(archive,&(compIt->second)); + } + // add the generated package to package file names list + packageFileNames.push_back(packageFileName); + } + } } // CPACK_COMPONENTS_IGNORE_GROUPS is set // We build 1 package per component diff --git a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake index 45a3b17..e797b7c 100644 --- a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake +++ b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake @@ -39,7 +39,7 @@ if(CPackGen MATCHES "ZIP") set(expected_count 1) endif(${CPackComponentWay} STREQUAL "default") if (${CPackComponentWay} STREQUAL "OnePackPerGroup") - set(expected_count 2) + set(expected_count 3) endif (${CPackComponentWay} STREQUAL "OnePackPerGroup") if (${CPackComponentWay} STREQUAL "IgnoreGroup") set(expected_count 4) |