Merge topic 'cpack-package-empty-dirs'
b58de9fe CPack: allow packaging of empty directories 47b060ae CPackDeb: allow empty directories in component packages
This commit is contained in:
commit
442d17ef6c
4
Help/release/dev/cpack-package-empty-dirs.rts
Normal file
4
Help/release/dev/cpack-package-empty-dirs.rts
Normal file
@ -0,0 +1,4 @@
|
||||
cpack-package-empty-dirs
|
||||
------------------------
|
||||
|
||||
* The :module:`CPack` module learned to package empty directories.
|
@ -95,6 +95,7 @@ int cmCPackDebGenerator::PackageOnePack(std::string initialTopLevel,
|
||||
std::string findExpr(this->GetOption("GEN_WDIR"));
|
||||
findExpr += "/*";
|
||||
gl.RecurseOn();
|
||||
gl.SetRecurseListDirs(true);
|
||||
if ( !gl.FindFiles(findExpr) )
|
||||
{
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
@ -222,6 +223,7 @@ int cmCPackDebGenerator::PackageComponentsAllInOne()
|
||||
std::string findExpr(this->GetOption("GEN_WDIR"));
|
||||
findExpr += "/*";
|
||||
gl.RecurseOn();
|
||||
gl.SetRecurseListDirs(true);
|
||||
if ( !gl.FindFiles(findExpr) )
|
||||
{
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
|
@ -367,6 +367,8 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories(
|
||||
cmCPackLogger(cmCPackLog::LOG_OUTPUT,
|
||||
"- Install directory: " << top << std::endl);
|
||||
gl.RecurseOn();
|
||||
gl.SetRecurseListDirs(true);
|
||||
// gl.SetRecurseThroughSymlinks(false);
|
||||
if ( !gl.FindFiles(findExpr) )
|
||||
{
|
||||
cmCPackLogger(cmCPackLog::LOG_ERROR,
|
||||
@ -869,6 +871,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
|
||||
cmsys::Glob glB;
|
||||
findExpr += "/*";
|
||||
glB.RecurseOn();
|
||||
glB.SetRecurseListDirs(true);
|
||||
glB.FindFiles(findExpr);
|
||||
filesBefore = glB.GetFiles();
|
||||
std::sort(filesBefore.begin(),filesBefore.end());
|
||||
@ -908,6 +911,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
|
||||
{
|
||||
cmsys::Glob glA;
|
||||
glA.RecurseOn();
|
||||
glA.SetRecurseListDirs(true);
|
||||
glA.FindFiles(findExpr);
|
||||
std::vector<std::string> filesAfter = glA.GetFiles();
|
||||
std::sort(filesAfter.begin(),filesAfter.end());
|
||||
@ -1074,6 +1078,7 @@ int cmCPackGenerator::DoPackage()
|
||||
std::string findExpr = tempDirectory;
|
||||
findExpr += "/*";
|
||||
gl.RecurseOn();
|
||||
gl.SetRecurseListDirs(true);
|
||||
gl.SetRecurseThroughSymlinks(false);
|
||||
if ( !gl.FindFiles(findExpr) )
|
||||
{
|
||||
|
@ -895,12 +895,33 @@ std::string cmSystemTools::FileExistsInParentDirectories(const char* fname,
|
||||
|
||||
bool cmSystemTools::cmCopyFile(const char* source, const char* destination)
|
||||
{
|
||||
// FIXME remove if statement once kwsys SystemTools get support for
|
||||
// source is directory handling in CopyFileAlways function
|
||||
if(cmSystemTools::FileIsDirectory(source))
|
||||
{
|
||||
return Superclass::MakeDirectory(destination);
|
||||
}
|
||||
|
||||
return Superclass::CopyFileAlways(source, destination);
|
||||
}
|
||||
|
||||
bool cmSystemTools::CopyFileIfDifferent(const char* source,
|
||||
const char* destination)
|
||||
{
|
||||
// FIXME remove if statement once kwsys SystemTools get support for
|
||||
// source is directory handling in CopyFileIfDifferent function
|
||||
if(cmSystemTools::FileIsDirectory(source))
|
||||
{
|
||||
if(SystemTools::FileExists(destination))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return Superclass::MakeDirectory(destination);
|
||||
}
|
||||
}
|
||||
|
||||
return Superclass::CopyFileIfDifferent(source, destination);
|
||||
}
|
||||
|
||||
|
@ -110,9 +110,8 @@ install(FILES ${CPackComponentsDEB_BINARY_DIR}/symtest
|
||||
if(EXISTS "./dirtest")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory ./dirtest)
|
||||
endif()
|
||||
# NOTE: directory left empty on purpose
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ./dirtest)
|
||||
# BUG: apparently cannot add an empty directory
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ../mylibapp ./dirtest/symtest)
|
||||
# NOTE: we should not add the trailing "/" to dirtest
|
||||
install(DIRECTORY ${CPackComponentsDEB_BINARY_DIR}/dirtest
|
||||
DESTINATION bin/
|
||||
|
@ -8,5 +8,5 @@ if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${GENERATOR_TYPE}/${RunCMake_TEST}-specif
|
||||
include("${GENERATOR_TYPE}/${RunCMake_TEST}-specifics.cmake")
|
||||
endif()
|
||||
|
||||
set(CPACK_GENERATOR "${GENERATOR_TYPE}")
|
||||
set(CPACK_GENERATOR "${GENERATOR_TYPE};TGZ")
|
||||
include(CPack)
|
||||
|
5
Tests/RunCMake/CPack/COMPONENTS_EMPTY_DIR.cmake
Normal file
5
Tests/RunCMake/CPack/COMPONENTS_EMPTY_DIR.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
set(CPACK_COMPONENTS_ALL test)
|
||||
install(DIRECTORY DESTINATION empty
|
||||
COMPONENT test)
|
||||
|
||||
set(CPACK_PACKAGE_NAME "components_empty_dir")
|
@ -0,0 +1,5 @@
|
||||
set(whitespaces_ "[\t\n\r ]*")
|
||||
|
||||
set(EXPECTED_FILES_COUNT "1")
|
||||
set(EXPECTED_FILE_1 "components_empty_dir*.deb")
|
||||
set(EXPECTED_FILE_CONTENT_1 "^.*/usr/${whitespaces_}.*/usr/empty/$")
|
@ -0,0 +1,2 @@
|
||||
set(CPACK_PACKAGE_CONTACT "someone")
|
||||
set(CPACK_DEB_COMPONENT_INSTALL "ON")
|
5
Tests/RunCMake/CPack/DEB/EMPTY_DIR-ExpectedFiles.cmake
Normal file
5
Tests/RunCMake/CPack/DEB/EMPTY_DIR-ExpectedFiles.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
set(whitespaces_ "[\t\n\r ]*")
|
||||
|
||||
set(EXPECTED_FILES_COUNT "1")
|
||||
set(EXPECTED_FILE_1 "empty_dir*.deb")
|
||||
set(EXPECTED_FILE_CONTENT_1 "^.*/usr/${whitespaces_}.*/usr/empty/$")
|
1
Tests/RunCMake/CPack/DEB/EMPTY_DIR-specifics.cmake
Normal file
1
Tests/RunCMake/CPack/DEB/EMPTY_DIR-specifics.cmake
Normal file
@ -0,0 +1 @@
|
||||
set(CPACK_PACKAGE_CONTACT "someone")
|
4
Tests/RunCMake/CPack/EMPTY_DIR.cmake
Normal file
4
Tests/RunCMake/CPack/EMPTY_DIR.cmake
Normal file
@ -0,0 +1,4 @@
|
||||
install(DIRECTORY DESTINATION empty
|
||||
COMPONENT test)
|
||||
|
||||
set(CPACK_PACKAGE_NAME "empty_dir")
|
@ -0,0 +1,5 @@
|
||||
set(whitespaces_ "[\t\n\r ]*")
|
||||
|
||||
set(EXPECTED_FILES_COUNT "1")
|
||||
set(EXPECTED_FILE_1 "components_empty_dir*.rpm")
|
||||
set(EXPECTED_FILE_CONTENT_1 "^/usr/empty$")
|
1
Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-stderr.txt
Normal file
1
Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-stderr.txt
Normal file
@ -0,0 +1 @@
|
||||
^CPackRPM: Will use GENERATED spec file: .*/Tests/RunCMake/RPM/CPack/COMPONENTS_EMPTY_DIR-build/_CPack_Packages/.*/RPM/SPECS/components_empty_dir.spec$
|
5
Tests/RunCMake/CPack/RPM/EMPTY_DIR-ExpectedFiles.cmake
Normal file
5
Tests/RunCMake/CPack/RPM/EMPTY_DIR-ExpectedFiles.cmake
Normal file
@ -0,0 +1,5 @@
|
||||
set(whitespaces_ "[\t\n\r ]*")
|
||||
|
||||
set(EXPECTED_FILES_COUNT "1")
|
||||
set(EXPECTED_FILE_1 "empty_dir*.rpm")
|
||||
set(EXPECTED_FILE_CONTENT_1 "^/usr/empty$")
|
1
Tests/RunCMake/CPack/RPM/EMPTY_DIR-stderr.txt
Normal file
1
Tests/RunCMake/CPack/RPM/EMPTY_DIR-stderr.txt
Normal file
@ -0,0 +1 @@
|
||||
^CPackRPM: Will use GENERATED spec file: .*/Tests/RunCMake/RPM/CPack/EMPTY_DIR-build/_CPack_Packages/.*/RPM/SPECS/empty_dir.spec$
|
@ -8,3 +8,5 @@ run_cpack_test(MINIMAL "RPM;DEB" false)
|
||||
run_cpack_test(PARTIALLY_RELOCATABLE_WARNING "RPM" false)
|
||||
run_cpack_test(DEB_EXTRA "DEB" false)
|
||||
run_cpack_test(DEPENDENCIES "RPM;DEB" true)
|
||||
run_cpack_test(EMPTY_DIR "RPM;DEB" true)
|
||||
run_cpack_test(COMPONENTS_EMPTY_DIR "RPM;DEB" true)
|
||||
|
Loading…
x
Reference in New Issue
Block a user