diff --git a/Help/release/dev/cpack-deb-dbgsym-noncomponent b/Help/release/dev/cpack-deb-dbgsym-noncomponent new file mode 100644 index 0000000000000000000000000000000000000000..4120b780ad868ccb69d93c6a1d94bce199d60211 --- /dev/null +++ b/Help/release/dev/cpack-deb-dbgsym-noncomponent @@ -0,0 +1,7 @@ +cpack-deb-dbgsym-non-component +------------------------------ + +* The DEB generator now supports generating dbgsym packages + for non-component packaging; previous support added in + 3.13 only generated dbgsym packages when component + packaging was enabled. diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 4f299f72a41c2c8f25bacc6db34bb6e70c23bc61..0d6870733aae526d99410ef1fb0bb0181a8d4761 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -503,19 +503,6 @@ int cmCPackDebGenerator::PackageOnePack(std::string const& initialTopLevel, packageFileNames.push_back(std::move(packageFileName)); if (this->IsOn("GEN_CPACK_DEBIAN_DEBUGINFO_PACKAGE")) { - cmsys::Glob gl; - std::string findExpr(this->GetOption("GEN_DBGSYMDIR")); - findExpr += "/*"; - gl.RecurseOn(); - gl.SetRecurseListDirs(true); - if (!gl.FindFiles(findExpr)) { - cmCPackLogger(cmCPackLog::LOG_ERROR, - "Cannot find any files in the installed directory" - << std::endl); - return 0; - } - packageFiles = gl.GetFiles(); - res = createDbgsymDDeb(); if (res != 1) { retval = 0; @@ -643,6 +630,19 @@ int cmCPackDebGenerator::PackageComponentsAllInOne( packageFileName = cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), '/', this->GetOption("GEN_CPACK_OUTPUT_FILE_NAME")); packageFileNames.push_back(std::move(packageFileName)); + + if (this->IsOn("GEN_CPACK_DEBIAN_DEBUGINFO_PACKAGE")) { + res = createDbgsymDDeb(); + if (res != 1) { + retval = 0; + } + // add the generated package to package file names list + packageFileName = + cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), '/', + this->GetOption("GEN_CPACK_DBGSYM_OUTPUT_FILE_NAME")); + packageFileNames.push_back(std::move(packageFileName)); + } + return retval; } @@ -795,6 +795,19 @@ int cmCPackDebGenerator::createDeb() int cmCPackDebGenerator::createDbgsymDDeb() { + cmsys::Glob gl; + std::string findExpr(this->GetOption("GEN_DBGSYMDIR")); + findExpr += "/*"; + gl.RecurseOn(); + gl.SetRecurseListDirs(true); + if (!gl.FindFiles(findExpr)) { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "Cannot find any files in the installed directory" + << std::endl); + return 0; + } + this->packageFiles = gl.GetFiles(); + // Packages containing debug symbols follow the same structure as .debs // but have different metadata and content.