[Cmake-commits] CMake branch, master, updated. 370e5b942513abd93cbd2d486a0627ccb47267af

cmake-commits at cmake.org cmake-commits at cmake.org
Mon Mar 1 08:54:56 EST 2010


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  370e5b942513abd93cbd2d486a0627ccb47267af (commit)
       via  5771dd2f15f871eb44b31fa84d67fa587654b770 (commit)
       via  03f8820e64a90cb0ac1c2061923333e574419849 (commit)
      from  efa4eb446ebd819ad688780f4de9e1b0a1d0c2a7 (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=370e5b942513abd93cbd2d486a0627ccb47267af
commit 370e5b942513abd93cbd2d486a0627ccb47267af
Author: Brad King <brad.king at kitware.com>
Date:   Mon Mar 1 08:47:48 2010 -0500

    Documentation: Test XHTML compliance
    
    Use xmllint to validate our generated HTML documentation.
    See issue #10338.

diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index 24f735b..ecae7b0 100644
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -129,3 +129,17 @@ INSTALL_FILES(${CMAKE_DOC_DIR} FILES ${HTML_FILES} ${TEXT_FILES})
 
 # Drive documentation generation.
 ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/cmake.txt )
+
+# Documentation testing.
+if(BUILD_TESTING)
+  find_package(LibXml2 QUIET)
+  if(NOT DEFINED LIBXML2_XMLLINT_EXECUTABLE)
+    find_program(LIBXML2_XMLLINT_EXECUTABLE xmllint)
+  endif()
+  mark_as_advanced(LIBXML2_XMLLINT_EXECUTABLE)
+  if(LIBXML2_XMLLINT_EXECUTABLE)
+    add_test(CMake.HTML
+      ${LIBXML2_XMLLINT_EXECUTABLE} --valid --noout ${HTML_FILES}
+      )
+  endif()
+endif()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5771dd2f15f871eb44b31fa84d67fa587654b770
commit 5771dd2f15f871eb44b31fa84d67fa587654b770
Author: Simon Harvey <simon.harvey at cambridgeflowsolutions.com>
Date:   Mon Mar 1 12:15:25 2010 +0000

    Documentation: Comply with "XHTML 1.0 Strict"
    
    Ensure that the HTML documentation generated by CMake complies with
    "XHTML 1.0 Strict":
    
      - All tags are properly closed and DOCTYPE is specified
      - Useful for downstream XML-processors (e.g. for extracting section
        titles)
    
    See issue #10338.
    
    Signed-off-by: Simon Harvey <simon.harvey at cambridgeflowsolutions.com>

diff --git a/Source/cmDocumentationFormatterHTML.cxx b/Source/cmDocumentationFormatterHTML.cxx
index 09aff8d..6ced1e4 100644
--- a/Source/cmDocumentationFormatterHTML.cxx
+++ b/Source/cmDocumentationFormatterHTML.cxx
@@ -39,7 +39,7 @@ static void cmDocumentationPrintHTMLChar(std::ostream& os, char c)
       os << "&amp;";
       break;
     case '\n':
-      os << "<br>";
+      os << "<br />";
       break;
     default:
       os << c;
@@ -125,23 +125,33 @@ void cmDocumentationFormatterHTML
     {
     if (name)
       {
-      os << "<h2><a name=\"section_" << name << "\"/>" << name << "</h2>\n";
+      os << "<h2><a name=\"section_";
+      cmDocumentationPrintHTMLId(os, name);
+      os << "\"/>" << name << "</h2>\n";
       }
 
-    os << "<ul>\n";
+    // Is a list needed?
     for(std::vector<cmDocumentationEntry>::const_iterator op 
          = entries.begin(); op != entries.end(); ++ op )
       {
-      if(op->Name.size())
-         {
-         os << "    <li><a href=\"#" << prefix << ":";
-         cmDocumentationPrintHTMLId(os, op->Name.c_str());
-         os << "\"><b><code>";
-         this->PrintHTMLEscapes(os, op->Name.c_str());
-         os << "</code></b></a></li>";
-         }
+      if (op->Name.size())
+        {
+        os << "<ul>\n";
+        for(;op != entries.end() && op->Name.size(); ++op)
+          {
+          if(op->Name.size())
+            {
+            os << "    <li><a href=\"#" << prefix << ":";
+            cmDocumentationPrintHTMLId(os, op->Name.c_str());
+            os << "\"><b><code>";
+            this->PrintHTMLEscapes(os, op->Name.c_str());
+            os << "</code></b></a></li>";
+            }
+          }
+        os << "</ul>\n" ;
+        break; // Skip outer loop termination test
+        }
       }
-    os << "</ul>\n" ;
     }
 
   for(std::vector<cmDocumentationEntry>::const_iterator op = entries.begin(); 
@@ -164,7 +174,7 @@ void cmDocumentationFormatterHTML
         this->PrintHTMLEscapes(os, op->Brief.c_str());
         if(op->Full.size())
           {
-          os << "<br>\n    ";
+          os << "<br />\n    ";
           this->PrintFormatted(os, op->Full.c_str());
           }
         os << "\n";
@@ -194,6 +204,7 @@ void cmDocumentationFormatterHTML::PrintParagraph(std::ostream& os,
 {
   os << "<p>";
   this->PrintHTMLEscapes(os, text);
+  os << "</p>\n";
 }
 
 //----------------------------------------------------------------------------
@@ -201,7 +212,12 @@ void cmDocumentationFormatterHTML::PrintHeader(const char* docname,
                                                const char* appname,
                                                std::ostream& os)
 {
-  os << "<html><head><title>";
+  os << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""
+     << " \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
+  os << "<html xmlns=\"http://www.w3.org/1999/xhtml\""
+     << " xml:lang=\"en\" lang=\"en\">\n";
+  os << "<head><meta http-equiv=\"Content-Type\" "
+     << "content=\"text/html;charset=utf-8\" /><title>";
   os << docname << " - " << appname;
   os << "</title></head><body>\n";
 }
@@ -253,16 +269,20 @@ void cmDocumentationFormatterHTML
     return;
     }
 
-  os << "<h2><a name=\"section_Index\"/>Master Index "
+  os << "<h2><a name=\"section_Index\">Master Index "
      << "CMake " << cmVersion::GetCMakeVersion()
-     << "</h2>\n";
-  os << "<ul>\n";
-  for(unsigned int i=0; i < sections.size(); ++i)
+     << "</a></h2>\n";
+
+  if (!sections.empty())
     {
-    std::string name = sections[i]->
-      GetName((this->GetForm()));
-    os << "  <li><a href=\"#section_" 
-       << name << "\"<b>" << name << "</b></a></li>\n";
+    os << "<ul>\n";
+    for(unsigned int i=0; i < sections.size(); ++i)
+      {
+      std::string name = sections[i]->GetName((this->GetForm()));
+      os << "  <li><a href=\"#section_";
+      cmDocumentationPrintHTMLId(os, name.c_str());
+      os << "\"><b>" << name << "</b></a></li>\n";
+      }
+    os << "</ul>\n";
     }
-  os << "</ul>\n";
 }

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=03f8820e64a90cb0ac1c2061923333e574419849
commit 03f8820e64a90cb0ac1c2061923333e574419849
Author: Brad King <brad.king at kitware.com>
Date:   Mon Mar 1 08:43:54 2010 -0500

    Documentation: Cleanup installation rules
    
    Organize Utilities/CMakeLists.txt to avoid duplicate install command
    calls.  We collect each type of documentation in a variable listing its
    files for installation and then use one install call at the end.

diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index 2121d0b..24f735b 100644
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -16,6 +16,35 @@ MAKE_DIRECTORY(${CMake_BINARY_DIR}/Docs)
 # Add a documentation target.
 SET(DOC_FILES "")
 
+SET(MAN_FILES
+  ${CMake_BINARY_DIR}/Docs/cmake.1
+  ${CMake_BINARY_DIR}/Docs/cmakecommands.1
+  ${CMake_BINARY_DIR}/Docs/cmakecompat.1
+  ${CMake_BINARY_DIR}/Docs/cmakeprops.1
+  ${CMake_BINARY_DIR}/Docs/cmakepolicies.1
+  ${CMake_BINARY_DIR}/Docs/cmakevars.1
+  ${CMake_BINARY_DIR}/Docs/cmakemodules.1
+  )
+SET(TEXT_FILES
+  ${CMake_BINARY_DIR}/Docs/cmake.txt
+  ${CMake_BINARY_DIR}/Docs/cmake.docbook
+  ${CMake_BINARY_DIR}/Docs/cmake-policies.txt
+  ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
+  ${CMake_BINARY_DIR}/Docs/cmake-variables.txt
+  ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
+  ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
+  ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
+  )
+SET(HTML_FILES
+  ${CMake_BINARY_DIR}/Docs/cmake.html
+  ${CMake_BINARY_DIR}/Docs/cmake-policies.html
+  ${CMake_BINARY_DIR}/Docs/cmake-properties.html
+  ${CMake_BINARY_DIR}/Docs/cmake-variables.html
+  ${CMake_BINARY_DIR}/Docs/cmake-modules.html
+  ${CMake_BINARY_DIR}/Docs/cmake-commands.html
+  ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html
+  )
+
 MACRO(ADD_DOCS target dependency)
   # Generate documentation for "ctest" executable.
   GET_TARGET_PROPERTY(CMD ${target} LOCATION)
@@ -32,13 +61,13 @@ MACRO(ADD_DOCS target dependency)
       DEPENDS ${target}
       MAIN_DEPENDENCY ${dependency}
       )
-    INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES ${CMake_BINARY_DIR}/Docs/${target}.1)
-    INSTALL_FILES(${CMAKE_DOC_DIR} FILES
+    SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/${target}.txt)
+    LIST(APPEND MAN_FILES ${CMake_BINARY_DIR}/Docs/${target}.1)
+    LIST(APPEND TEXT_FILES
       ${CMake_BINARY_DIR}/Docs/${target}.txt
-      ${CMake_BINARY_DIR}/Docs/${target}.html
       ${CMake_BINARY_DIR}/Docs/${target}.docbook
       )
-    SET(DOC_FILES ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/${target}.txt)
+    LIST(APPEND HTML_FILES ${CMake_BINARY_DIR}/Docs/${target}.html)
   ENDIF(CMD)
 ENDMACRO(ADD_DOCS target dependency)
 
@@ -95,31 +124,8 @@ ADD_CUSTOM_COMMAND(
   MAIN_DEPENDENCY ${CMake_SOURCE_DIR}/Utilities/Doxygen/authors.txt
   )
 
-INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES
-              ${CMake_BINARY_DIR}/Docs/cmake.1
-              ${CMake_BINARY_DIR}/Docs/cmakecommands.1
-              ${CMake_BINARY_DIR}/Docs/cmakecompat.1
-              ${CMake_BINARY_DIR}/Docs/cmakeprops.1
-              ${CMake_BINARY_DIR}/Docs/cmakepolicies.1
-              ${CMake_BINARY_DIR}/Docs/cmakevars.1
-              ${CMake_BINARY_DIR}/Docs/cmakemodules.1)
-
-INSTALL_FILES(${CMAKE_DOC_DIR} FILES
-    ${CMake_BINARY_DIR}/Docs/cmake.txt
-    ${CMake_BINARY_DIR}/Docs/cmake.html
-    ${CMake_BINARY_DIR}/Docs/cmake.docbook
-    ${CMake_BINARY_DIR}/Docs/cmake-policies.txt
-    ${CMake_BINARY_DIR}/Docs/cmake-policies.html
-    ${CMake_BINARY_DIR}/Docs/cmake-properties.txt
-    ${CMake_BINARY_DIR}/Docs/cmake-properties.html
-    ${CMake_BINARY_DIR}/Docs/cmake-variables.txt
-    ${CMake_BINARY_DIR}/Docs/cmake-variables.html 
-    ${CMake_BINARY_DIR}/Docs/cmake-modules.txt
-    ${CMake_BINARY_DIR}/Docs/cmake-modules.html
-    ${CMake_BINARY_DIR}/Docs/cmake-commands.txt
-    ${CMake_BINARY_DIR}/Docs/cmake-commands.html
-    ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.txt
-    ${CMake_BINARY_DIR}/Docs/cmake-compatcommands.html )
+INSTALL_FILES(${CMAKE_MAN_DIR}/man1 FILES ${MAN_FILES})
+INSTALL_FILES(${CMAKE_DOC_DIR} FILES ${HTML_FILES} ${TEXT_FILES})
 
 # Drive documentation generation.
 ADD_CUSTOM_TARGET(documentation ALL DEPENDS ${DOC_FILES} ${CMake_BINARY_DIR}/Docs/cmake.txt )

-----------------------------------------------------------------------

Summary of changes:
 Source/cmDocumentationFormatterHTML.cxx |   66 +++++++++++++++++---------
 Utilities/CMakeLists.txt                |   78 +++++++++++++++++++-----------
 2 files changed, 92 insertions(+), 52 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list