mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
CPack/DEB: dbgsym package not generated for non-component packaging
Fix: #19735
This commit is contained in:
@@ -528,37 +528,7 @@ int cmCPackDebGenerator::PackageOnePack(std::string const& initialTopLevel,
|
||||
return 0;
|
||||
}
|
||||
|
||||
try {
|
||||
this->packageFiles = findFilesIn(this->GetOption("GEN_WDIR"));
|
||||
} catch (const std::runtime_error& ex) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR, ex.what() << std::endl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool retval = this->createDeb();
|
||||
// add the generated package to package file names list
|
||||
packageFileName = cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), '/',
|
||||
this->GetOption("GEN_CPACK_OUTPUT_FILE_NAME"));
|
||||
this->packageFileNames.emplace_back(std::move(packageFileName));
|
||||
|
||||
if (this->IsOn("GEN_CPACK_DEBIAN_DEBUGINFO_PACKAGE") &&
|
||||
this->GetOption("GEN_DBGSYMDIR")) {
|
||||
try {
|
||||
this->packageFiles = findFilesIn(this->GetOption("GEN_DBGSYMDIR"));
|
||||
} catch (const std::runtime_error& ex) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR, ex.what() << std::endl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
retval = this->createDbgsymDDeb() || retval;
|
||||
// add the generated package to package file names list
|
||||
packageFileName =
|
||||
cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), '/',
|
||||
this->GetOption("GEN_CPACK_DBGSYM_OUTPUT_FILE_NAME"));
|
||||
this->packageFileNames.emplace_back(std::move(packageFileName));
|
||||
}
|
||||
|
||||
return int(retval);
|
||||
return this->createDebPackages();
|
||||
}
|
||||
|
||||
int cmCPackDebGenerator::PackageComponents(bool ignoreGroup)
|
||||
@@ -652,19 +622,7 @@ int cmCPackDebGenerator::PackageComponentsAllInOne(
|
||||
return 0;
|
||||
}
|
||||
|
||||
try {
|
||||
this->packageFiles = findFilesIn(this->GetOption("GEN_WDIR"));
|
||||
} catch (const std::runtime_error& ex) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR, ex.what() << std::endl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool retval = this->createDeb();
|
||||
// add the generated package to package file names list
|
||||
packageFileName = cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), '/',
|
||||
this->GetOption("GEN_CPACK_OUTPUT_FILE_NAME"));
|
||||
this->packageFileNames.emplace_back(std::move(packageFileName));
|
||||
return int(retval);
|
||||
return this->createDebPackages();
|
||||
}
|
||||
|
||||
int cmCPackDebGenerator::PackageFiles()
|
||||
@@ -688,6 +646,40 @@ int cmCPackDebGenerator::PackageFiles()
|
||||
return this->PackageComponentsAllInOne("");
|
||||
}
|
||||
|
||||
bool cmCPackDebGenerator::createDebPackages()
|
||||
{
|
||||
try {
|
||||
this->packageFiles = findFilesIn(this->GetOption("GEN_WDIR"));
|
||||
} catch (const std::runtime_error& ex) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR, ex.what() << std::endl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool retval = this->createDeb();
|
||||
// add the generated package to package file names list
|
||||
this->packageFileNames.emplace_back(
|
||||
cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), '/',
|
||||
this->GetOption("GEN_CPACK_OUTPUT_FILE_NAME")));
|
||||
|
||||
if (this->IsOn("GEN_CPACK_DEBIAN_DEBUGINFO_PACKAGE") &&
|
||||
this->GetOption("GEN_DBGSYMDIR")) {
|
||||
try {
|
||||
this->packageFiles = findFilesIn(this->GetOption("GEN_DBGSYMDIR"));
|
||||
} catch (const std::runtime_error& ex) {
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR, ex.what() << std::endl);
|
||||
return 0;
|
||||
}
|
||||
|
||||
retval = this->createDbgsymDDeb() || retval;
|
||||
// add the generated package to package file names list
|
||||
this->packageFileNames.emplace_back(
|
||||
cmStrCat(this->GetOption("CPACK_TOPLEVEL_DIRECTORY"), '/',
|
||||
this->GetOption("GEN_CPACK_DBGSYM_OUTPUT_FILE_NAME")));
|
||||
}
|
||||
|
||||
return int(retval);
|
||||
}
|
||||
|
||||
bool cmCPackDebGenerator::createDeb()
|
||||
{
|
||||
std::map<std::string, std::string> controlValues;
|
||||
@@ -855,7 +847,6 @@ bool cmCPackDebGenerator::createDbgsymDDeb()
|
||||
DebGenerator gen(
|
||||
this->Logger, this->GetOption("GEN_CPACK_DBGSYM_OUTPUT_FILE_NAME"),
|
||||
this->GetOption("GEN_DBGSYMDIR"),
|
||||
|
||||
this->GetOption("CPACK_TOPLEVEL_DIRECTORY"),
|
||||
this->GetOption("CPACK_TEMPORARY_DIRECTORY"),
|
||||
this->GetOption("GEN_CPACK_DEBIAN_COMPRESSION_TYPE"),
|
||||
|
||||
@@ -63,6 +63,7 @@ protected:
|
||||
const std::string& componentName) override;
|
||||
|
||||
private:
|
||||
bool createDebPackages();
|
||||
bool createDeb();
|
||||
bool createDbgsymDDeb();
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ include("${RunCMake_SOURCE_DIR}/CPackTestHelpers.cmake")
|
||||
run_cpack_test(CUSTOM_BINARY_SPEC_FILE "RPM.CUSTOM_BINARY_SPEC_FILE" false "MONOLITHIC;COMPONENT")
|
||||
run_cpack_test(CUSTOM_NAMES "RPM.CUSTOM_NAMES;DEB.CUSTOM_NAMES;TGZ;DragNDrop" true "COMPONENT")
|
||||
run_cpack_test(DEBUGINFO "RPM.DEBUGINFO;DEB.DEBUGINFO" true "COMPONENT")
|
||||
run_cpack_test(DEBUGINFO "DEB.DEBUGINFO" true "MONOLITHIC")
|
||||
run_cpack_test_subtests(DEFAULT_PERMISSIONS "CMAKE_var_set;CPACK_var_set;both_set;invalid_CMAKE_var;invalid_CPACK_var" "RPM.DEFAULT_PERMISSIONS;DEB.DEFAULT_PERMISSIONS" false "MONOLITHIC;COMPONENT")
|
||||
run_cpack_test(DEPENDENCIES "RPM.DEPENDENCIES;DEB.DEPENDENCIES" true "COMPONENT")
|
||||
run_cpack_test(DIST "RPM.DIST" false "MONOLITHIC")
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
set(whitespaces_ "[\t\n\r ]*")
|
||||
|
||||
set(EXPECTED_FILES_COUNT "6")
|
||||
set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE)
|
||||
|
||||
if(GENERATOR_TYPE STREQUAL "RPM")
|
||||
set(NAME "Debuginfo")
|
||||
set(DEBUG_SUFFIX "debuginfo")
|
||||
@@ -15,30 +12,49 @@ elseif(GENERATOR_TYPE STREQUAL "DEB")
|
||||
set(DEBUG_PKG "ddeb")
|
||||
endif()
|
||||
|
||||
set(EXPECTED_FILE_1_NAME "${NAME}")
|
||||
set(EXPECTED_FILE_1_COMPONENT "applications")
|
||||
set(EXPECTED_FILE_CONTENT_1_LIST "/foo;/foo/test_prog")
|
||||
set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE)
|
||||
|
||||
set(EXPECTED_FILE_2 "TestDinfo-pkg*-headers.${PKG}")
|
||||
set(EXPECTED_FILE_CONTENT_2_LIST "/bar;/bar/CMakeLists.txt")
|
||||
if(PACKAGING_TYPE STREQUAL "COMPONENT")
|
||||
set(EXPECTED_FILES_COUNT "6")
|
||||
|
||||
set(EXPECTED_FILE_3 "TestDinfo-pkg*-libs.${PKG}")
|
||||
set(EXPECTED_FILE_CONTENT_3_LIST "/bas;/bas/libtest_lib.so")
|
||||
set(EXPECTED_FILE_1_NAME "${NAME}")
|
||||
set(EXPECTED_FILE_1_COMPONENT "applications")
|
||||
set(EXPECTED_FILE_CONTENT_1_LIST "/foo;/foo/test_prog")
|
||||
|
||||
set(EXPECTED_FILE_2 "TestDinfo-pkg*-headers.${PKG}")
|
||||
set(EXPECTED_FILE_CONTENT_2_LIST "/bar;/bar/CMakeLists.txt")
|
||||
|
||||
set(EXPECTED_FILE_3 "TestDinfo-pkg*-libs.${PKG}")
|
||||
set(EXPECTED_FILE_CONTENT_3_LIST "/bas;/bas/libtest_lib.so")
|
||||
|
||||
set(EXPECTED_FILE_4 "${NAME}-applications-${DEBUG_SUFFIX}*.${DEBUG_PKG}")
|
||||
if(GENERATOR_TYPE STREQUAL "RPM")
|
||||
set(EXPECTED_FILE_CONTENT_4 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/main.cpp.*\.debug.*")
|
||||
elseif(GENERATOR_TYPE STREQUAL "DEB")
|
||||
set(EXPECTED_FILE_CONTENT_4 ".*/usr/lib/debug/.build-id/.*\.debug.*")
|
||||
endif()
|
||||
|
||||
if(GENERATOR_TYPE STREQUAL "RPM")
|
||||
set(EXPECTED_FILE_5 "libs-DebugInfoPackage.rpm")
|
||||
set(EXPECTED_FILE_CONTENT_5 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/test_lib.cpp.*\.debug.*")
|
||||
elseif(GENERATOR_TYPE STREQUAL "DEB")
|
||||
set(EXPECTED_FILE_5 "TestDinfo-pkg-libs-dbgsym.ddeb")
|
||||
set(EXPECTED_FILE_CONTENT_5 ".*/usr/lib/debug/.build-id/.*\.debug.*")
|
||||
endif()
|
||||
|
||||
set(EXPECTED_FILE_6 "TestDinfo-pkg*-appheaders.${PKG}")
|
||||
set(EXPECTED_FILE_CONTENT_6_LIST "/include;/include/test_lib.hpp")
|
||||
|
||||
elseif(PACKAGING_TYPE STREQUAL "MONOLITHIC" AND GENERATOR_TYPE STREQUAL "DEB")
|
||||
set(EXPECTED_FILES_COUNT "2")
|
||||
|
||||
set(EXPECTED_FILE_1 "TestDinfo-pkg.deb")
|
||||
set(
|
||||
EXPECTED_FILE_CONTENT_1_LIST
|
||||
"/bar;/bar/CMakeLists.txt;/bas;/bas/libtest_lib.so;/foo;/foo/test_prog;/include;/include/test_lib.hpp"
|
||||
)
|
||||
|
||||
set(EXPECTED_FILE_2 "TestDinfo-pkg-dbgsym.ddeb")
|
||||
set(EXPECTED_FILE_CONTENT_2 ".*/usr/lib/debug/.build-id/.*\.debug.*")
|
||||
|
||||
set(EXPECTED_FILE_4 "${NAME}-applications-${DEBUG_SUFFIX}*.${DEBUG_PKG}")
|
||||
if(GENERATOR_TYPE STREQUAL "RPM")
|
||||
set(EXPECTED_FILE_CONTENT_4 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/main.cpp.*\.debug.*")
|
||||
elseif(GENERATOR_TYPE STREQUAL "DEB")
|
||||
set(EXPECTED_FILE_CONTENT_4 ".*/usr/lib/debug/.build-id/.*\.debug.*")
|
||||
endif()
|
||||
|
||||
if(GENERATOR_TYPE STREQUAL "RPM")
|
||||
set(EXPECTED_FILE_5 "libs-DebugInfoPackage.rpm")
|
||||
set(EXPECTED_FILE_CONTENT_5 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/test_lib.cpp.*\.debug.*")
|
||||
elseif(GENERATOR_TYPE STREQUAL "DEB")
|
||||
set(EXPECTED_FILE_5 "TestDinfo-pkg-libs-dbgsym.ddeb")
|
||||
set(EXPECTED_FILE_CONTENT_5 ".*/usr/lib/debug/.build-id/.*\.debug.*")
|
||||
endif()
|
||||
|
||||
set(EXPECTED_FILE_6 "TestDinfo-pkg*-appheaders.${PKG}")
|
||||
set(EXPECTED_FILE_CONTENT_6_LIST "/include;/include/test_lib.hpp")
|
||||
|
||||
@@ -28,6 +28,8 @@ install(TARGETS test_prog DESTINATION foo COMPONENT applications)
|
||||
install(FILES CMakeLists.txt DESTINATION bar COMPONENT headers)
|
||||
install(TARGETS test_lib DESTINATION bas COMPONENT libs)
|
||||
|
||||
set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON)
|
||||
|
||||
set(CPACK_RPM_APPLICATIONS_FILE_NAME "RPM-DEFAULT")
|
||||
set(CPACK_RPM_APPLICATIONS_DEBUGINFO_PACKAGE ON)
|
||||
set(CPACK_DEBIAN_APPLICATIONS_FILE_NAME "DEB-DEFAULT")
|
||||
|
||||
Reference in New Issue
Block a user