summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-10-28 13:09:08 (GMT)
committerKitware Robot <kwrobot@kitware.com>2021-10-28 13:09:24 (GMT)
commit3055b202ecc1a1fd3d7cb25aefc4d511a0cac585 (patch)
tree4544f9c8856e1f8eeee1b80f91acd5e9edacb768
parentf186934161c4cc6ac14257a0b045c53b3ba6ca7c (diff)
parent054754359a0b6b5721dea722b7920c954a573451 (diff)
downloadCMake-3055b202ecc1a1fd3d7cb25aefc4d511a0cac585.zip
CMake-3055b202ecc1a1fd3d7cb25aefc4d511a0cac585.tar.gz
CMake-3055b202ecc1a1fd3d7cb25aefc4d511a0cac585.tar.bz2
Merge topic 'builtin-help-versionadded'
054754359a cmRST: support `versionadded` and `versionchanged` directives Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6667
-rw-r--r--Help/dev/documentation.rst5
-rw-r--r--Source/cmRST.cxx5
-rw-r--r--Source/cmRST.h1
-rw-r--r--Tests/CMakeLib/testRST.expect6
-rw-r--r--Tests/CMakeLib/testRST.rst6
5 files changed, 23 insertions, 0 deletions
diff --git a/Help/dev/documentation.rst b/Help/dev/documentation.rst
index 29fc880..4a2a5d9 100644
--- a/Help/dev/documentation.rst
+++ b/Help/dev/documentation.rst
@@ -92,6 +92,11 @@ literal block after ``::``
the referenced documents inline as part of the referencing
document.
+``versionadded``, ``versionchanged`` directives
+ Specify that something was added or changed by a named CMake version.
+ The command-line help processor prints the block content as if the lines
+ were normal paragraph text with interpretation.
+
Inline markup constructs not listed above are printed literally in the
command-line help output. We prefer to use inline markup constructs that
look correct in source form, so avoid use of \\-escapes in favor of inline
diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx
index fce6e80..1e4dedd 100644
--- a/Source/cmRST.cxx
+++ b/Source/cmRST.cxx
@@ -35,6 +35,7 @@ cmRST::cmRST(std::ostream& os, std::string docroot)
, TocTreeDirective("^.. toctree::[ \t]*(.*)$")
, ProductionListDirective("^.. productionlist::[ \t]*(.*)$")
, NoteDirective("^.. note::[ \t]*(.*)$")
+ , VersionDirective("^.. version(added|changed)::[ \t]*(.*)$")
, ModuleRST(R"(^#\[(=*)\[\.rst:$)")
, CMakeRole("(:cmake)?:("
"command|cpack_gen|generator|genex|"
@@ -209,6 +210,10 @@ void cmRST::ProcessLine(std::string const& line)
} else if (this->NoteDirective.find(line)) {
// Output note directives and their content normally.
this->NormalLine(line);
+ } else if (this->VersionDirective.find(line)) {
+ // Output versionadded and versionchanged directives and their content
+ // normally.
+ this->NormalLine(line);
}
}
// An explicit markup start followed nothing but whitespace and a
diff --git a/Source/cmRST.h b/Source/cmRST.h
index 17cdfe8..156b20a 100644
--- a/Source/cmRST.h
+++ b/Source/cmRST.h
@@ -83,6 +83,7 @@ private:
cmsys::RegularExpression TocTreeDirective;
cmsys::RegularExpression ProductionListDirective;
cmsys::RegularExpression NoteDirective;
+ cmsys::RegularExpression VersionDirective;
cmsys::RegularExpression ModuleRST;
cmsys::RegularExpression CMakeRole;
cmsys::RegularExpression InlineLink;
diff --git a/Tests/CMakeLib/testRST.expect b/Tests/CMakeLib/testRST.expect
index 4870f65..5e3cdb1 100644
--- a/Tests/CMakeLib/testRST.expect
+++ b/Tests/CMakeLib/testRST.expect
@@ -116,6 +116,12 @@ A literal block can be empty::
.. note::
Notes are called out.
+.. versionadded:: 1.2
+ Version blocks are preserved.
+
+.. versionchanged:: 2.3
+ Version blocks are preserved.
+
substituted text with multiple lines becomes one line
End of first include.
diff --git a/Tests/CMakeLib/testRST.rst b/Tests/CMakeLib/testRST.rst
index 44931a7..4139801 100644
--- a/Tests/CMakeLib/testRST.rst
+++ b/Tests/CMakeLib/testRST.rst
@@ -123,6 +123,12 @@ A literal block can be empty::
.. note::
Notes are called out.
+.. versionadded:: 1.2
+ Version blocks are preserved.
+
+.. versionchanged:: 2.3
+ Version blocks are preserved.
+
.. |substitution| replace::
|nested substitution|
with multiple lines becomes one line