[Cmake-commits] CMake branch, master, updated. v3.15.2-918-g2d01dca
Kitware Robot
kwrobot at kitware.com
Fri Aug 30 10:46:19 EDT 2019
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, master has been updated
via 2d01dcab29aaa60e905e828d4a07d2f72f7eeb20 (commit)
via a38965db9a515c0f8af9035d6cca13cf684b406a (commit)
via e6c9a8bac3a2f3103ee79058e92dadd2d30c8ac5 (commit)
via 2c71208a78f47f59972a3a39b1f038d293abd83b (commit)
from f8917685f32677c4055176d96bbd5a747da03fdb (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 -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2d01dcab29aaa60e905e828d4a07d2f72f7eeb20
commit 2d01dcab29aaa60e905e828d4a07d2f72f7eeb20
Merge: a38965d 2c71208
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 30 14:43:00 2019 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Aug 30 10:43:09 2019 -0400
Merge topic 'rel-nightly-test'
2c71208a78 Tests: Fix nightly binary tests to fail on error
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !3755
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a38965db9a515c0f8af9035d6cca13cf684b406a
commit a38965db9a515c0f8af9035d6cca13cf684b406a
Merge: f891768 e6c9a8b
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Aug 30 14:38:17 2019 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Aug 30 10:38:25 2019 -0400
Merge topic 'remove_directory-symlink'
e6c9a8bac3 cmake: Teach -E remove_directory to remove directory symlinks
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !3738
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e6c9a8bac3a2f3103ee79058e92dadd2d30c8ac5
commit e6c9a8bac3a2f3103ee79058e92dadd2d30c8ac5
Author: Jon Chronopoulos <patches at crondog.com>
AuthorDate: Mon Aug 26 14:21:12 2019 +1000
Commit: Brad King <brad.king at kitware.com>
CommitDate: Fri Aug 30 10:37:30 2019 -0400
cmake: Teach -E remove_directory to remove directory symlinks
If the argument to `remove_directory` is a symlink to a directory,
remove the symlink instead.
Issue: #19533
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 0832e2f..fbbd47c 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -676,10 +676,17 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string> const& args)
// If an error occurs, we want to continue removing directories.
bool return_value = false;
for (auto const& arg : cmMakeRange(args).advance(2)) {
- if (cmSystemTools::FileIsDirectory(arg) &&
- !cmSystemTools::RemoveADirectory(arg)) {
- std::cerr << "Error removing directory \"" << arg << "\".\n";
- return_value = true;
+ if (cmSystemTools::FileIsDirectory(arg)) {
+ if (cmSystemTools::FileIsSymlink(arg)) {
+ if (!cmSystemTools::RemoveFile(arg)) {
+ std::cerr << "Error removing directory symlink \"" << arg
+ << "\".\n";
+ return_value = true;
+ }
+ } else if (!cmSystemTools::RemoveADirectory(arg)) {
+ std::cerr << "Error removing directory \"" << arg << "\".\n";
+ return_value = true;
+ }
}
}
return return_value;
diff --git a/Tests/RunCMake/CommandLine/E_remove_directory-symlink-dir-check.cmake b/Tests/RunCMake/CommandLine/E_remove_directory-symlink-dir-check.cmake
new file mode 100644
index 0000000..f70312c
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_remove_directory-symlink-dir-check.cmake
@@ -0,0 +1,6 @@
+if(EXISTS ${out}/link_dir)
+ set(RunCMake_TEST_FAILED "did not remove ${out}/link_dir")
+endif()
+if(NOT EXISTS ${out}/dir)
+ set(RunCMake_TEST_FAILED "should not have removed ${out}/dir")
+endif()
diff --git a/Tests/RunCMake/CommandLine/E_remove_directory-symlink-dir-stderr.txt b/Tests/RunCMake/CommandLine/E_remove_directory-symlink-dir-stderr.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/RunCMake/CommandLine/E_remove_directory-symlink-file-check.cmake b/Tests/RunCMake/CommandLine/E_remove_directory-symlink-file-check.cmake
new file mode 100644
index 0000000..23d7c6d
--- /dev/null
+++ b/Tests/RunCMake/CommandLine/E_remove_directory-symlink-file-check.cmake
@@ -0,0 +1,6 @@
+if(NOT EXISTS ${outfile})
+ set(RunCMake_TEST_FAILED "removed non-directory ${outfile}")
+endif()
+if(NOT EXISTS ${out}/link_file_for_test.txt)
+ set(RunCMake_TEST_FAILED "removed non-directory symlink ${out}/link_file_for_test.txt")
+endif()
diff --git a/Tests/RunCMake/CommandLine/E_remove_directory-symlink-file-stderr.txt b/Tests/RunCMake/CommandLine/E_remove_directory-symlink-file-stderr.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
index dd49423..2bc5966 100644
--- a/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CommandLine/RunCMakeTest.cmake
@@ -348,6 +348,17 @@ run_cmake_command(E_make_directory-two-directories-and-file
${CMAKE_COMMAND} -E make_directory ${out}/d1 ${out}/d2 ${outfile})
run_cmake_command(E_remove_directory-two-directories-and-file
${CMAKE_COMMAND} -E remove_directory ${out}/d1 ${out}/d2 ${outfile})
+
+if(UNIX)
+ file(MAKE_DIRECTORY ${out}/dir)
+ file(CREATE_LINK ${out}/dir ${out}/link_dir SYMBOLIC)
+ file(CREATE_LINK ${outfile} ${out}/link_file_for_test.txt SYMBOLIC)
+ run_cmake_command(E_remove_directory-symlink-dir
+ ${CMAKE_COMMAND} -E remove_directory ${out}/link_dir)
+ run_cmake_command(E_remove_directory-symlink-file
+ ${CMAKE_COMMAND} -E remove_directory ${out}/link_file_for_test.txt)
+endif()
+
unset(out)
unset(outfile)
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2c71208a78f47f59972a3a39b1f038d293abd83b
commit 2c71208a78f47f59972a3a39b1f038d293abd83b
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Aug 29 14:39:05 2019 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Aug 29 14:39:05 2019 -0400
Tests: Fix nightly binary tests to fail on error
We generate a small shell script to drive the steps. Previously a
failure in the `release_cmake.cmake` script was not diagnosed and hidden
from the script exit code by the following upload step. Tell the shell
to terminate with failure on the first command that fails.
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 02e28d4..cbd7d56 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -764,7 +764,8 @@ if(BUILD_TESTING)
set(_TEST_DIR "${CMake_BINARY_DIR}/Tests/${name}")
file(MAKE_DIRECTORY "${_TEST_DIR}")
file(WRITE "${_TEST_DIR}/nightly-cmake.sh"
- "cd ${_TEST_DIR}
+ "set -e
+cd ${_TEST_DIR}
${CMake_BINARY_DIR}/bin/cmake -DCMAKE_CREATE_VERSION=nightly -P ${CMake_SOURCE_DIR}/Utilities/Release/${script}
${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGHTLY_RELEASES}'
")
-----------------------------------------------------------------------
Summary of changes:
Source/cmcmd.cxx | 15 +++++++++++----
Tests/CMakeLists.txt | 3 ++-
.../E_remove_directory-symlink-dir-check.cmake | 6 ++++++
.../E_remove_directory-symlink-dir-stderr.txt} | 0
.../E_remove_directory-symlink-file-check.cmake | 6 ++++++
.../E_remove_directory-symlink-file-stderr.txt} | 0
Tests/RunCMake/CommandLine/RunCMakeTest.cmake | 11 +++++++++++
7 files changed, 36 insertions(+), 5 deletions(-)
create mode 100644 Tests/RunCMake/CommandLine/E_remove_directory-symlink-dir-check.cmake
copy Tests/{Wrapping/vtkIncluded.cxx => RunCMake/CommandLine/E_remove_directory-symlink-dir-stderr.txt} (100%)
create mode 100644 Tests/RunCMake/CommandLine/E_remove_directory-symlink-file-check.cmake
copy Tests/{Wrapping/vtkIncluded.cxx => RunCMake/CommandLine/E_remove_directory-symlink-file-stderr.txt} (100%)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list