summaryrefslogtreecommitdiff
path: root/Tests/CTestUpdateCommon.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-12-18 08:13:51 -0500
committerBrad King <brad.king@kitware.com>2009-12-18 08:13:51 -0500
commita73833d03742c504a6b8927cc276d5e34e1aeab2 (patch)
tree3d15b0ffc4de2534ec35d840b82f8fb1485e7fcc /Tests/CTestUpdateCommon.cmake
parent449b9aea23442de90e54ecc506a34257f4d3783e (diff)
downloadcmake-a73833d03742c504a6b8927cc276d5e34e1aeab2.tar.gz
Submit global tree revision in Update.xml
We teach CTest to report in a <Revision> element the revision of the source tree that was tested. This makes sense for all modern VCS tools because they version the whole tree. We simply omit this element for CVS because it only versions files. See issue #7541.
Diffstat (limited to 'Tests/CTestUpdateCommon.cmake')
-rw-r--r--Tests/CTestUpdateCommon.cmake19
1 files changed, 19 insertions, 0 deletions
diff --git a/Tests/CTestUpdateCommon.cmake b/Tests/CTestUpdateCommon.cmake
index b680b8e996..211a0faef5 100644
--- a/Tests/CTestUpdateCommon.cmake
+++ b/Tests/CTestUpdateCommon.cmake
@@ -45,6 +45,25 @@ function(check_updates build)
endif()
endforeach(f)
+ if(NOT UPDATE_NOT_GLOBAL)
+ set(rev_elements "Revision|PriorRevision")
+ set(rev_regex "^\t<(${rev_elements})>[^<\n]+</(${rev_elements})>$")
+ file(STRINGS ${TOP}/${UPDATE_XML_FILE} UPDATE_XML_REVISIONS
+ REGEX "${rev_regex}"
+ LIMIT_INPUT 4096
+ )
+ foreach(r IN LISTS UPDATE_XML_REVISIONS)
+ string(REGEX REPLACE "${rev_regex}" "\\1" element "${r}")
+ set(element_${element} 1)
+ endforeach()
+ string(REPLACE "|" ";" rev_elements "${rev_elements}")
+ foreach(element ${rev_elements})
+ if(NOT element_${element})
+ list(APPEND MISSING "global <${element}> element")
+ endif()
+ endforeach()
+ endif()
+
# Report the result
if(MISSING)
# List the missing entries