1. 26 Jan, 2019 1 commit
  2. 18 Oct, 2018 1 commit
    • Joachim Wuttke's avatar
      Help: Override pygments CMakeLexer to support <..> and [..] · fc7ee1ca
      Joachim Wuttke authored
      * The code snippets in the docs consist of CMake code mixed
        with syntax definition punctuation like < > [ ] ... Therefore
        a pure CMake lexer is inadequate. Here it is replaced by a
        CMake syntax definition parser.
      * Fixed syntax definition snippets in FindPkgConfig.cmake to
        make best use of syntax highlighting. This source file is the
        hardest to support because it contains comparison operators
        <= = >=, which need special attention to avoid confusion
        with the placeholder indicators <...>.
      * Fixed syntax in execute_process.rst (there were unbalanced
      * Disabled syntax highlighting for long string examples in
      * No highlighting of removed syntax in CMP0049
      * To inspect the outcome of this patch, see e.g. the pages
        * manual/cmake-buildsystem.7.html
        * module/ExternalProject.html
        * module/FindPkgConfig.html
        which are particularly rich in complex code snippets.
  3. 21 Jun, 2018 1 commit
    • Kyle Edwards's avatar
      Help: Add new section for CPack generators · 2a2829cc
      Kyle Edwards authored
      The documentation for CPack generators previously lived in their
      respective internal CMake modules. This setup was misleading,
      because it implied that you should include the modules in your own
      code, which is not the case. Moving the documentation into a
      separate section does a better job of hiding the internal modules,
      which are just an implementation detail. The generator documentation
      has also been modified to remove any references to the module name.
      The CPackIFW module is a special exception: since it has user-facing
      macros, the documentation for these macros has been kept in the module
      page, while all other documentation related to the IFW generator has
      been moved into the new section.
      To make it easier to find the new documentation, the old help pages
      for the CPack*.cmake modules have not been deleted, but have been
      replaced with a link to their respective help page in the new
      documentation section.
  4. 04 Jun, 2018 1 commit
  5. 19 Apr, 2018 1 commit
    • Brad King's avatar
      Utilities/Sphinx: Add role and directive for 'envvar' in CMake domain · 8acf46ca
      Brad King authored
      This enables cross-reference syntax for CMake environment variables:
      and definition of CMake environment variables via a directive:
          .. envvar:: SOMEVAR
      It also adds environment variables defined by the directive and by
      `Help/envvar/SOMEVAR.rst` documents to the index.
      This `envvar` role and directive is defined in our `cmake` domain
      and overrides the equivalent `envvar` role and directive provided
      by Sphinx in its default domain.  This is okay because we build
      CMake documents in the `cmakd` domain.
      This follows up the work from commit v3.10.0-rc1~43^2 (Help: Document
      CMake's environment variables, 2017-09-01) that originally added
      `envvar` documentation.
  6. 02 Aug, 2017 1 commit
    • Björn Esser's avatar
      Utilities/Sphinx: Restore compatibility with Sphinx pre-1.2 · 2a68ff7f
      Björn Esser authored
      Since commit v3.8.0-rc2~28^2~2 (Utilities/Sphinx: Port cmake extension
      to Sphinx 1.4, 2017-02-09) we use the `sphinx.version_info` tuple.
      However, it was added in Sphinx v1.2 so the check breaks compatibility
      with older versions.  Revise our check to assume Sphinx pre-1.2 if the
      version tuple does not exist.
  7. 10 Feb, 2017 1 commit
    • Gregor Jasny's avatar
      Utilities/Sphinx: Port cmake extension to Sphinx 1.4 · 971384c2
      Gregor Jasny authored
      Sphinx 1.4 introduced a breaking change to `indexnode` by changing
      the length of a tuple.  Teach our extension to produce a tuple of
      the proper length for the version of Sphinx in use.
      This gets rid of the "4 column based index found" warning.
  8. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online information
      available from "https://cmake.org/licensing".  The online URL also handles
      cases of modules being copied out of our source into other projects, so we
      can drop our notices about replacing links with full license text.
      Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
      of the replacements mechanically.  Manually fix up shebang lines and trailing
      newlines in a few files.  Manually update the notices in a few files that the
      script does not handle.
  9. 04 Dec, 2014 1 commit
    • Brad King's avatar
      Utilities/Sphinx: Fix link targets for mixed-case command names · 607b39dc
      Brad King authored
      When a CMake domain 'command' object is defined by CMakeTransform or the
      'cmake:command' directive, generate the link target with a lower-case
      name even if the command name is not all lower-case.  This is needed to
      make cross-references to the command definition work since the
      'cmake:command' role is marked with the 'lowercase' property.
  10. 17 Nov, 2014 1 commit
  11. 12 Nov, 2014 1 commit
    • Brad King's avatar
      Utilities/Sphinx: Add index entries for cross-references · 7ca9a459
      Brad King authored
      Add a document transform to insert index and target nodes just before
      any CMake domain cross-reference node.  This will make references to
      CMake domain objects appear in the index.  Also add a comment explaining
      why it cannot be done in a result_nodes method of the CMakeXRefRole.
  12. 28 May, 2014 1 commit
    • Nils Gladitz's avatar
      Add an "installed file" property scope · 15a8af21
      Nils Gladitz authored
      Teach set_property and get_property an "INSTALL" property type to be
      associated with install-tree file paths.  Make the properties available
      to CPack for use during packaging.  Add a "prop_inst" Sphinx domain
      object type for documentation of such properties.
  13. 24 Apr, 2014 1 commit
  14. 18 Apr, 2014 1 commit
  15. 31 Mar, 2014 1 commit
  16. 04 Jan, 2014 1 commit
  17. 23 Dec, 2013 1 commit
  18. 23 Oct, 2013 1 commit
    • Brad King's avatar
      cmRST: Teach cmake-module directive to scan bracket comments · 2945814d
      Brad King authored
      When scanning CMake module files for .rst comments, recognize
      bracket comments starting in ".rst:" too.  For example:
      Include the bracket comment content terminated by the closing bracket.
      Exclude the line containing the bracket if it starts in "#".
      Teach the CMakeLib.testRST test to cover multiple bracket lengths
      and ending brackets on lines with and without "#".
      Update the cmake-developer.7 manual to document the bracket-comment
      syntax for .rst documentation.
  19. 16 Oct, 2013 1 commit
    • Brad King's avatar
      Build Help documentation during CMake build using Sphinx · bfe07aa9
      Brad King authored
      Add a Utilities/Sphinx directory to hold CMake build code to run the
      Sphinx (sphinx-doc.org) documentation generation tool.  Create a
      CMakeLists.txt file there capable of building either as a subdirectory
      of the main CMake build, or as a standalone documentation build.
      Add cache options SPHINX_MAN and SPHINX_HTML to select output formats
      and SPHINX_EXECUTABLE to specify the sphinx-build executable.  Add
      bootstrap options --sphix-man and --sphinx-html to select output formats
      and --sphinx-build=<sb> to specify the sphinx-build executable.
      Create a "conf.py.in" file to configure_file into "conf.py" to tell
      sphinx-build how to build our documents.  Create a "cmake.py" Sphinx
      extension module defining:
      * The "cmake-module" directive used in Help/module/*.rst files to
        scan .rst markup from the corresponding Modules/*.cmake file.
      * A Sphinx domain called "cmake" defining documentation object types
        for CMake Help/<type> directories: command, generator, manual,
        module, policy, prop_*, and variable.  Add a "role" for each type
        to perform cross-references.  Teach the roles to treat "<XYZ>"
        as placeholders instead of explicit targets if not preceded by
        a space.  Add cmake domain directives to define command and
        variable objects explicitly in .rst file content.  This will
        allow modules to define their own commands and variables and
        have them indexed and linkable.
      * A Sphinx document transform that converts Help/<type>/*.rst documents
        into cmake domain objects of the corresponding <type> and adds index
        entries for them.  This will automatically index all CMake documentation
        objects and provide cross-reference targets for them with no special
        markup in the .rst files.