1. 02 Feb, 2019 1 commit
  2. 30 Jan, 2019 1 commit
  3. 29 Jan, 2019 4 commits
  4. 28 Jan, 2019 1 commit
  5. 23 Jan, 2019 1 commit
  6. 22 Jan, 2019 1 commit
  7. 20 Jan, 2019 1 commit
  8. 16 Jan, 2019 2 commits
    • Tushar Maheshwari's avatar
      cmSystemTools: Silence CreateLink and CreateSymlink errors · 0f08ed89
      Tushar Maheshwari authored
      If provided, report errors to a std::string.
      This allows "silent" fallback to another flow, like COPY_ON_ERROR.
      0f08ed89
    • Tushar Maheshwari's avatar
      cmFileCommand: Add CREATE_LINK subcommand · 81650e48
      Tushar Maheshwari authored
      This brings the functionality of `cmake -E create_symlink` and more to scripts.
      
      The default behavior is to create hard links.
      The `SYMBOLIC` argument can be used to create symlinks instead.
      
      The `COPY_ON_ERROR` argument enables a fallback to copying the file in case the link fails.
      
      The `RESULT <var>` retrieves the error message generated by the system.
      It is set to "0" on success.
      
      Fixes: #16926
      81650e48
  9. 07 Dec, 2018 1 commit
  10. 28 Nov, 2018 1 commit
  11. 18 Sep, 2018 1 commit
    • Jon Chronopoulos's avatar
      cmake: Add '-E create_symlink' support on Windows · afb7f6e4
      Jon Chronopoulos authored
      The allows `-E create_symlink` to work on Windows.  It utilizes
      `uv_fs_symlink`.  I am still unsure exactly which Windows platforms will
      work without requiring Administrator privileges or needing a user/group
      with the "Create Symbolic Links" User Rights.  It does work with my
      Windows 10 Pro with Developer Mode turned on.  In the test suite check
      that the symlink either worked or failed with a permissions error.
      
      Use recent changes in cmSystemTools::FileExists to check that a symlink
      is broken.
      afb7f6e4
  12. 31 Aug, 2018 1 commit
  13. 04 Jun, 2018 1 commit
  14. 29 May, 2018 1 commit
    • Brad King's avatar
      cmSystemTools: Revert GetRealPath implementation on Windows · 83630d49
      Brad King authored
      The use of `uv_fs_realpath` introduced by commit v3.11.0-rc1~445^2~1
      (cmSystemTools: Implement GetRealPath on Windows, 2017-10-02) causes
      `subst` drives to be expanded on Windows, breaking existing use cases.
      Revert its use until an alternative implementation can be chosen.
      
      Preserve the behavior introduced by commit v3.11.0-rc1~445^2
      (cmTimestamp: For symlinks switch to timestamp of resolved path,
      2017-10-02) by retaining use of `uv_fs_realpath` in a function of
      a different name.
      
      Fixes: #18033
      Issue: #17206
      83630d49
  15. 31 Jan, 2018 1 commit
    • Pavel Solodovnikov's avatar
      Reduce raw string pointers usage. · 653b8946
      Pavel Solodovnikov authored
      * Change some functions to take `std::string` instead of
        `const char*` in the following classes: `cmMakeFile`, `cmake`,
        `cmCoreTryCompile`, `cmSystemTools`,  `cmState`, `cmLocalGenerator`
        and a few others.
      * Greatly reduce using of `const char*` overloads for
        `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`.
      * Remove many redundant `c_str()` conversions throughout the code.
      653b8946
  16. 23 Jan, 2018 2 commits
    • Wouter Klouwen's avatar
      Make use of std::chrono throughout every component · e6a80ccf
      Wouter Klouwen authored
      This commit continues the changes made in CTest to support std::chrono
      by
      applying it throughout every component where a duration was used.
      
      No functional change intended.
      e6a80ccf
    • Brad King's avatar
      Extend libuv file translate mode workaround to all executables · 98628de8
      Brad King authored
      Since libuv commit v1.14.1~7 (win: add uv__once_init() calls,
      2017-08-30) the libuv initialization of the file translate mode may take
      place even if we do not use a uv loop.  This change was included in our
      libuv update commit f4a26c74 (libuv 2018-01-19).  Therefore use of
      libuv even through `cmSystemTools::GetRealPath` in any executable may
      trigger its file translate mode setting.
      
      Factor out the logic added to `cmake.exe` by commit v3.9.0-rc4~10^2
      (cmake: Fix default file translate mode when using libuv, 2017-06-13)
      and re-use to initialize all executables.
      
      Issue: #16962
      98628de8
  17. 08 Jan, 2018 1 commit
  18. 03 Jan, 2018 1 commit
  19. 24 Oct, 2017 1 commit
  20. 13 Sep, 2017 1 commit
    • Brad King's avatar
      get_filename_component: Revise PROGRAM/PROGRAM_ARGS split semantics · 31f73eb1
      Brad King authored
      The KWSys `SystemTools::SplitProgramFromArgs` implementation goes into
      an infinite loop when the value is just " " (a space).  Since the
      "program path with unquoted spaces plus command-line arguments"
      operation it is trying to provide is poorly defined (string parsing
      should not depend on filesystem content), just stop using it.
      
      Instead consider the main two use cases the old approach tried to handle:
      
      * The value is the name or absolute path of a program with no quoting
        or escaping, but also no command-line arguments.  In this case we
        can use the value as given with no parsing, and assume no arguments.
      
      * The value is a command-line string containing the program name/path
        plus arguments.  In this case we now assume that the command line
        is properly quoted or escaped.
      
      Fixes: #17262
      31f73eb1
  21. 26 Aug, 2017 1 commit
  22. 24 Aug, 2017 1 commit
  23. 14 Jul, 2017 1 commit
  24. 25 Apr, 2017 1 commit
  25. 24 Apr, 2017 1 commit
  26. 21 Apr, 2017 1 commit
  27. 19 Apr, 2017 1 commit
  28. 11 Apr, 2017 1 commit
    • Daniel Pfeifer's avatar
      Use quotes for non-system includes · 1d829c86
      Daniel Pfeifer authored
      Automate with:
      
      git grep -l '#include <cm_' -- Source \
        | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g'
      
      git grep -l '#include <cmsys/' -- Source \
        | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g'
      
      git grep -l '#include <cm[A-Z]' -- Source \
        | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
      1d829c86
  29. 24 Mar, 2017 1 commit
  30. 23 Mar, 2017 1 commit
  31. 14 Nov, 2016 1 commit
  32. 08 Nov, 2016 1 commit
  33. 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.
      86578ecc
  34. 13 Sep, 2016 1 commit
  35. 16 Aug, 2016 1 commit