1. 22 Oct, 2013 2 commits
  2. 21 Oct, 2013 2 commits
    • Stephen Kelly's avatar
      Create make rules for INTERFACE_LIBRARY targets. · b04f3b9a
      Stephen Kelly authored and Brad King's avatar Brad King committed
      The result is that the depends of the target are created.
      
      So,
      
       add_library(somelib foo.cpp)
       add_library(anotherlib EXCLUDE_FROM_ALL foo.cpp)
       add_library(extra EXCLUDE_FROM_ALL foo.cpp)
       target_link_libraries(anotherlib extra)
      
       add_library(iface INTERFACE)
       target_link_libraries(iface INTERFACE anotherlib)
      
      Executing 'make iface' will result in the anotherlib and extra targets
      being made.
      
      Adding a regular executable to the INTERFACE of an INTERFACE_LIBRARY
      will not result in the executable being built with 'make iface' because
      of the logic in cmComputeTargetDepends::AddTargetDepend.
      
      So far, this is implemented only for the Makefile generator. Other
      generators will follow if this feature is possible for them.
      
      Make INTERFACE_LIBRARY targets part of the all target by default.
      Test this by building the all target and making the expected library
      EXCLUDE_FROM_ALL.
      b04f3b9a
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · ecfcce44
      Kitware Robot authored
      ecfcce44
  3. 20 Oct, 2013 2 commits
  4. 19 Oct, 2013 4 commits
  5. 18 Oct, 2013 7 commits
  6. 17 Oct, 2013 10 commits
    • Brad King's avatar
      cmRST: Substitute CMake version for |release| as Sphinx does · 89448a5b
      Brad King authored
      Sphinx provides a builtin substitution for the |release| version.
      Teach cmRST to replace this with the CMake version number too.
      89448a5b
    • Brad King's avatar
      Update CMP0024/CMP0025/CMP0026 release version · 1873205a
      Brad King authored
      These policies were introduced after 2.8.12 in anticipation of 2.8.13.
      However, we've now decided the next release will be 3.0.0, so update the
      version of introduction accordingly.
      1873205a
    • Brad King's avatar
      Drop builtin policy "full" documentation · 5cdaef7e
      Brad King authored
      The full policy documentation was moved to Help/policy/*.rst by commit
      f051814e (Convert builtin help to reStructuredText source files,
      2013-10-15).  We no longer need the builtin string literals.
      
      In commit 87cc62ca (Drop "full" documentation output types, 2013-09-13)
      we dropped code using the LongDescription field of policy definitions.
      We need to follow it up with a change similar to commit 399e9c46 (Drop
      builtin property documentation, 2013-09-16) to remove the policy
      documentation.  Do that now.  Keep the short description as it is used
      in policy error and warning messages.
      5cdaef7e
    • Stephen Kelly's avatar
      target_link_libraries: Allow repeated use of LINK_{PRIVATE,PUBLIC} keywords. · dede2731
      Stephen Kelly authored
      This has not been allowed since they were introduced in
      commit 91438222 (target_link_libraries: Add LINK_(PUBLIC|PRIVATE)
      options, 2011-10-07), but allowing this form makes it more compatible
      with the newer PUBLIC and PRIVATE keywords.
      dede2731
    • Brad King's avatar
      Add Lua-style long brackets and long comments to CMake language · daa0f6f9
      Brad King authored
      Teach the CMake language parser to recognize Lua-style "long bracket"
      arguments.  These start with two '[' separated by zero or more '='
      characters e.g. "[[" or "[=[" or "[==[".  They end with two ']'
      separated by the same number of '=' as the opening bracket.  There is no
      nesting of brackets of the same level (number of '=').  No escapes,
      variable expansion, or other processing is performed on the content
      between such brackets so they always represent exactly one argument.
      
      Also teach CMake to parse and ignore "long comment" syntax.  A long
      comment starts with "#" immediately followed by an opening long bracket.
      It ends at the matching close long bracket.
      
      Teach the RunCMake.Syntax test to cover long bracket and long comment
      cases.
      daa0f6f9
    • Brad King's avatar
      cmListFileLexer: Convert CRLF -> LF newlines explicitly · a8c65234
      Brad King authored
      Read input files in binary mode instead of text mode and convert CRLF
      newlines to LF newlines explicitly in our own buffer.  This is necessary
      to read CMake source files with CRLF newlines on platforms whose C
      runtime libraries do not transform newlines in text mode.  For example,
      a Cygwin or Linux binary may not transform CRLF -> LF in files read from
      a Windows filesystem.  Perform the conversion ourselves to ensure that
      multi-line string literals in CMake source files have LF newlines
      everywhere.
      a8c65234
    • Brad King's avatar
      cmListFileLexer: Allow a leading UTF-8 Byte-Order-Mark (#11137) · dbd93336
      Brad King authored
      Teach the lexer to read a UTF-8, UTF-16 BE/LE, or UTF-32 BE/LE
      Byte-Order-Mark from the start of a file if any is present.  Report an
      error on files using UTF-16 or UTF-32 and accept a UTF-8 or missing BOM.
      dbd93336
    • Brad King's avatar
      cmListFileLexer: Allow command names with one letter (#14181) · 56457837
      Brad King authored
      Teach the lexer to treat a single letter as an identifier instead of an
      unquoted argument.  Outside of a command invocation, the parser treats
      an identifier as a command name and an unquoted argument as an error.
      Inside of a command invocation, the parser treats an identifier as an
      unquoted argument.  Therefore this change to the lexer will make what
      was previously an error case work with no other behavioral change.
      56457837
    • Brad King's avatar
      cmake: Simplify -E command line processing · d4c3de2f
      Brad King authored
      Check for "cmake -E ..." up front (along with "cmake --build ...") and
      skip normal command line processing.  Drop the special handling for -E
      from the normal processing to simplify things.  Strictly speaking, it
      was previously possible to invoke command mode with -E anywhere in the
      command line e.g. "cmake echo -E message" or "cmake echo message -E",
      but no one should be using it as it was not documented and looks
      strange.
      d4c3de2f
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · ca498f01
      Kitware Robot authored
      ca498f01
  7. 16 Oct, 2013 11 commits
    • Brad King's avatar
      Make --help-* options available from all command-line tools · 9b212ad0
      Brad King authored
      Make the standard --help-* options available from all command-line
      tools.  Drop options that are no longer supported:
      
        --copyright, --help-full, --help-html, --help-man,
        --help-compatcommands, --help-custom-modules
      
      De-duplicate Help/manual/*.1.rst help options by using an
      OPTIONS_HELP.txt file included from each manual.
      9b212ad0
    • Brad King's avatar
      Makefile: Always create clean target command · dba4962b
      Brad King authored
      Borland Make complains if the phony clean target has no rule to build it.
      If there are no files to clean, generate and run an empty clean script.
      dba4962b
    • Brad King's avatar
      Drop unused builtin documentation APIs · 53ded595
      Brad King authored
      Now that all DefineProperty documentation calls have been dropped, drop
      the supporting APIs.
      53ded595
    • Brad King's avatar
      Drop the 'Full' field from cmDocumentationEntry · 0c39a757
      Brad King authored
      We need only 'Brief' for usage documentation.  We no longer have builtin
      'Full' documentation, which is now in Help/*/*.rst files.
      0c39a757
    • Brad King's avatar
      Drop builtin command documentation · e33d8d2d
      Brad King authored
      Drop all GetTerseDocumentation and GetFullDocumentation methods from
      commands.  The command documentation is now in Help/command/*.rst files.
      e33d8d2d
    • Brad King's avatar
      Drop builtin property documentation · 399e9c46
      Brad King authored
      Drop all DefineProperty calls for non-chained properties.  Drop the
      documentation from the chained ones.  The documentation for all
      properties is now in Help/prop_*/*.rst files.
      399e9c46
    • Brad King's avatar
      Drop all documentation formatters except Usage · 80a3273b
      Brad King authored
      We now need only the Usage formatter to support command-line options
      that print basic usage, and the supporting indented=>preformatted markup
      processor to support CMake message formatting.  Drop all other
      documentation formatters and move the remaining code up into the top
      cmDocumentationFormatter class.
      80a3273b
    • Brad King's avatar
      Teach COMPATIBLE_INTERFACE_* checks to use Help .rst documents · b336a1eb
      Brad King authored
      These checks want to know if named target properties are builtin, which
      is now known by checking the Help/prop_tgt directory.  (Previously the
      check could be confused by a define_property call in the project.)
      b336a1eb
    • Brad King's avatar
      Teach --help-* options to load documentation from .rst files · ec6df367
      Brad King authored
      Install the Help directory next to Modules to make it available in CMake
      distributions.  Use cmRST to read Help .rst documents and print them as
      help output.
      
      Add options
      
       --help-manual-list
       --help-manual
      
      to list available manuals or print one of them.  Implement the options
      
       --help-commands
       --help-modules
       --help-policies
       --help-properties
       --help-variables
      
      by mapping to the corresponding manual page.  Implement the options
      
       --help-command-list
       --help-module-list
       --help-policy-list
       --help-property-list
       --help-variable-list
      
      by globbing the available Help .rst documents of the corresponding type
      and reading their titles.  Implement the options
      
       --help-command
       --help-module
       --help-policy
       --help-property
       --help-variable
      
      by globbing the matching Help .rst document(s) and printing them.
      ec6df367
    • Brad King's avatar
      Add class cmRST to do basic reStructuredText processing · 25f2877e
      Brad King authored
      Create a cmRST class to perform just enough reStructuredText processing
      to support display of Help documents in human-readable text format.
      This will be used to implement --help-* command-line options.
      
      Support directives "include", "replace", "parsed-literal", "toctree"
      (Sphinx), and "cmake-module" (CMake Sphinx Extension to scan .cmake
      modules).  Support inline CMake Sphinx Domain roles to convert
      cross-references to corresponding title text.  Support inline
      substitutions defined by the "replace" directive, but keep it simple by
      requiring replacements to be defined before use.
      
      Add a CMakeLib "testRST" case to cover processing of supported
      constructs and compare results against expected output.
      25f2877e
    • Kitware Robot's avatar
      CMake Nightly Date Stamp · 5029da5e
      Kitware Robot authored
      5029da5e
  8. 15 Oct, 2013 2 commits
    • Brad King's avatar
      Drop "full" documentation output types · 87cc62ca
      Brad King authored
      We will no longer support full documentation generation from executables
      and will instead generate documentation with other tools.  Disable (with
      a warning left behind) the command-line options:
      
       --copyright
       --help-compatcommands
       --help-full
       --help-html
       --help-man
      
      Drop supporting code.  Drop manual sections generation from executables.
      Remove internal documentation construction APIs.  Drop unused sections
      See Also, Author, Copyright, Compat Commands, Custom Modules.
      87cc62ca
    • Brad King's avatar
      Add reStructuredText (RST) documentation formatter · f85405f5
      Brad King authored
      Temporarily add a RST formatter to convert builtin documentation to .rst
      source files.  This will be removed shortly after we use it to convert
      documentation.
      
      Teach the RST formatter to:
      
      * Output preformatted blocks as reStructuredText "::" literal blocks.
      
      * Output option lists as bullet lists with option names enclosed in
        reStructuredText ``literal`` quoting.
      
      * Output individual documentation objects (commands, variables, etc.)
        in separate .rst files organized in directories by type.
      
      Replace references to cmVersion::GetCMakeVersion() in builtin
      documentation with the literal placeholder "|release|" that will be
      defined as a substitution later.
      f85405f5