[Cmake-commits] CMake branch, next, updated. v3.3.2-3183-g58c4057
Domen Vrankar
domen.vrankar at gmail.com
Mon Sep 21 20:10:53 EDT 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 58c40573e265ae38d64738cf4033373df0f2a6a5 (commit)
via b58de9fe2ba4ac3e194403ecd118fd54681ffae8 (commit)
via 47b060aee0871bdb5fea63b398a1f1cb07fa3b37 (commit)
from 6d9d7045893e99bc713958ec93f30fcf62555b6f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=58c40573e265ae38d64738cf4033373df0f2a6a5
commit 58c40573e265ae38d64738cf4033373df0f2a6a5
Merge: 6d9d704 b58de9f
Author: Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Mon Sep 21 20:10:49 2015 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Sep 21 20:10:49 2015 -0400
Merge topic 'cpack-package-empty-dirs' into next
b58de9fe CPack: allow packaging of empty directories
47b060ae CPackDeb: allow empty directories in component packages
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b58de9fe2ba4ac3e194403ecd118fd54681ffae8
commit b58de9fe2ba4ac3e194403ecd118fd54681ffae8
Author: Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Tue Sep 22 02:08:26 2015 +0200
Commit: Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Tue Sep 22 02:08:26 2015 +0200
CPack: allow packaging of empty directories
diff --git a/Help/release/dev/cpack-package-empty-dirs.rts b/Help/release/dev/cpack-package-empty-dirs.rts
new file mode 100644
index 0000000..1f56e1a
--- /dev/null
+++ b/Help/release/dev/cpack-package-empty-dirs.rts
@@ -0,0 +1,4 @@
+cpack-package-empty-dirs
+------------------------
+
+* The :module:`CPack` module learned to package empty directories.
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index 92a4b2b..aa4f181 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -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) )
{
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 2675066..c24b5ea 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -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);
}
diff --git a/Tests/RunCMake/CPack/CMakeLists.txt b/Tests/RunCMake/CPack/CMakeLists.txt
index 46f1367..449172a 100644
--- a/Tests/RunCMake/CPack/CMakeLists.txt
+++ b/Tests/RunCMake/CPack/CMakeLists.txt
@@ -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)
diff --git a/Tests/RunCMake/CPack/COMPONENTS_EMPTY_DIR.cmake b/Tests/RunCMake/CPack/COMPONENTS_EMPTY_DIR.cmake
new file mode 100644
index 0000000..7210e7d
--- /dev/null
+++ b/Tests/RunCMake/CPack/COMPONENTS_EMPTY_DIR.cmake
@@ -0,0 +1,5 @@
+set(CPACK_COMPONENTS_ALL test)
+install(DIRECTORY DESTINATION empty
+ COMPONENT test)
+
+set(CPACK_PACKAGE_NAME "components_empty_dir")
diff --git a/Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake b/Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake
new file mode 100644
index 0000000..5adca68
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake
@@ -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/$")
diff --git a/Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-specifics.cmake b/Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-specifics.cmake
new file mode 100644
index 0000000..2720fe9
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-specifics.cmake
@@ -0,0 +1,2 @@
+set(CPACK_PACKAGE_CONTACT "someone")
+set(CPACK_DEB_COMPONENT_INSTALL "ON")
diff --git a/Tests/RunCMake/CPack/DEB/EMPTY_DIR-ExpectedFiles.cmake b/Tests/RunCMake/CPack/DEB/EMPTY_DIR-ExpectedFiles.cmake
new file mode 100644
index 0000000..1552a36
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/EMPTY_DIR-ExpectedFiles.cmake
@@ -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/$")
diff --git a/Tests/RunCMake/CPack/DEB/EMPTY_DIR-specifics.cmake b/Tests/RunCMake/CPack/DEB/EMPTY_DIR-specifics.cmake
new file mode 100644
index 0000000..8821ab9
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEB/EMPTY_DIR-specifics.cmake
@@ -0,0 +1 @@
+set(CPACK_PACKAGE_CONTACT "someone")
diff --git a/Tests/RunCMake/CPack/EMPTY_DIR.cmake b/Tests/RunCMake/CPack/EMPTY_DIR.cmake
new file mode 100644
index 0000000..023ba17
--- /dev/null
+++ b/Tests/RunCMake/CPack/EMPTY_DIR.cmake
@@ -0,0 +1,4 @@
+install(DIRECTORY DESTINATION empty
+ COMPONENT test)
+
+set(CPACK_PACKAGE_NAME "empty_dir")
diff --git a/Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake b/Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake
new file mode 100644
index 0000000..d396276
--- /dev/null
+++ b/Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake
@@ -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$")
diff --git a/Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-stderr.txt b/Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-stderr.txt
new file mode 100644
index 0000000..6ddca12
--- /dev/null
+++ b/Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-stderr.txt
@@ -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$
diff --git a/Tests/RunCMake/CPack/RPM/EMPTY_DIR-ExpectedFiles.cmake b/Tests/RunCMake/CPack/RPM/EMPTY_DIR-ExpectedFiles.cmake
new file mode 100644
index 0000000..0c2977f
--- /dev/null
+++ b/Tests/RunCMake/CPack/RPM/EMPTY_DIR-ExpectedFiles.cmake
@@ -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$")
diff --git a/Tests/RunCMake/CPack/RPM/EMPTY_DIR-stderr.txt b/Tests/RunCMake/CPack/RPM/EMPTY_DIR-stderr.txt
new file mode 100644
index 0000000..1777aa0
--- /dev/null
+++ b/Tests/RunCMake/CPack/RPM/EMPTY_DIR-stderr.txt
@@ -0,0 +1 @@
+^CPackRPM: Will use GENERATED spec file: .*/Tests/RunCMake/RPM/CPack/EMPTY_DIR-build/_CPack_Packages/.*/RPM/SPECS/empty_dir.spec$
diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake b/Tests/RunCMake/CPack/RunCMakeTest.cmake
index 3e5714d..89673c2 100644
--- a/Tests/RunCMake/CPack/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake
@@ -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)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47b060aee0871bdb5fea63b398a1f1cb07fa3b37
commit 47b060aee0871bdb5fea63b398a1f1cb07fa3b37
Author: Raffi Enficiaud <raffi.enficiaud at mines-paris.org>
AuthorDate: Tue Sep 22 01:57:44 2015 +0200
Commit: Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Tue Sep 22 01:57:44 2015 +0200
CPackDeb: allow empty directories in component packages
diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx
index 5cdab52..93c94e2 100644
--- a/Source/CPack/cmCPackDebGenerator.cxx
+++ b/Source/CPack/cmCPackDebGenerator.cxx
@@ -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,
diff --git a/Tests/CPackComponentsDEB/CMakeLists.txt b/Tests/CPackComponentsDEB/CMakeLists.txt
index 98ed911..093b23f 100644
--- a/Tests/CPackComponentsDEB/CMakeLists.txt
+++ b/Tests/CPackComponentsDEB/CMakeLists.txt
@@ -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/
-----------------------------------------------------------------------
Summary of changes:
Help/release/dev/cpack-package-empty-dirs.rts | 4 ++++
Source/CPack/cmCPackDebGenerator.cxx | 2 ++
Source/CPack/cmCPackGenerator.cxx | 5 +++++
Source/cmSystemTools.cxx | 21 ++++++++++++++++++++
Tests/CPackComponentsDEB/CMakeLists.txt | 3 +--
Tests/RunCMake/CPack/CMakeLists.txt | 2 +-
Tests/RunCMake/CPack/COMPONENTS_EMPTY_DIR.cmake | 5 +++++
.../DEB/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake | 5 +++++
.../CPack/DEB/COMPONENTS_EMPTY_DIR-specifics.cmake | 2 ++
.../CPack/DEB/EMPTY_DIR-ExpectedFiles.cmake | 5 +++++
...L-specifics.cmake => EMPTY_DIR-specifics.cmake} | 0
Tests/RunCMake/CPack/EMPTY_DIR.cmake | 4 ++++
.../RPM/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake | 5 +++++
.../CPack/RPM/COMPONENTS_EMPTY_DIR-stderr.txt | 1 +
.../CPack/RPM/EMPTY_DIR-ExpectedFiles.cmake | 5 +++++
Tests/RunCMake/CPack/RPM/EMPTY_DIR-stderr.txt | 1 +
Tests/RunCMake/CPack/RunCMakeTest.cmake | 2 ++
17 files changed, 69 insertions(+), 3 deletions(-)
create mode 100644 Help/release/dev/cpack-package-empty-dirs.rts
create mode 100644 Tests/RunCMake/CPack/COMPONENTS_EMPTY_DIR.cmake
create mode 100644 Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake
create mode 100644 Tests/RunCMake/CPack/DEB/COMPONENTS_EMPTY_DIR-specifics.cmake
create mode 100644 Tests/RunCMake/CPack/DEB/EMPTY_DIR-ExpectedFiles.cmake
copy Tests/RunCMake/CPack/DEB/{MINIMAL-specifics.cmake => EMPTY_DIR-specifics.cmake} (100%)
create mode 100644 Tests/RunCMake/CPack/EMPTY_DIR.cmake
create mode 100644 Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-ExpectedFiles.cmake
create mode 100644 Tests/RunCMake/CPack/RPM/COMPONENTS_EMPTY_DIR-stderr.txt
create mode 100644 Tests/RunCMake/CPack/RPM/EMPTY_DIR-ExpectedFiles.cmake
create mode 100644 Tests/RunCMake/CPack/RPM/EMPTY_DIR-stderr.txt
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list