1. 08 May, 2020 3 commits
  2. 22 Apr, 2020 1 commit
  3. 09 Apr, 2020 2 commits
    • Ben Boeckel's avatar
      SystemTools: handle splitting a string starting with the separator · 986519af
      Ben Boeckel authored
      If a string started with the separator, the first component would have
      the separator included in it.
    • Brad King's avatar
      SystemTools: Fix FileIsExecutable on Windows · 41700ca4
      Brad King authored
      Since commit 66724af8 (SystemTools: Teach FindProgram to find
      non-readable programs, 2020-04-04), `FindProgram` uses the new
      `FileIsExecutable` method.  On Windows this changed the check
      from `GetFileAttributesW` to `_waccess`, but the latter returns
      success even for Windows Store stubs like
      Since the goal of the original change was to fix executable
      permissions checks on UNIX-like platforms, simply restore the
      old check code on Windows.
  4. 06 Apr, 2020 2 commits
  5. 04 Apr, 2020 3 commits
  6. 24 Mar, 2020 5 commits
  7. 03 Mar, 2020 2 commits
    • Hans Johnson's avatar
      STYLE: Use auto for variable type matches the type of the initializer · cc8fc323
      Hans Johnson authored
      This check is responsible for using the auto type specifier for variable
      declarations to improve code readability and maintainability.
      The auto type specifier will only be introduced in situations where the
      variable type matches the type of the initializer expression. In other words
      auto should deduce the same type that was originally spelled in the source
    • Hans Johnson's avatar
      PERF: emplace_back method results in potentially more efficient code · 91429382
      Hans Johnson authored
      The check flags insertions to an STL-style container done by calling the
      push_back method with an explicitly-constructed temporary of the container
      element type. In this case, the corresponding emplace_back method results in
      less verbose and potentially more efficient code.
  8. 02 Mar, 2020 4 commits
    • Hans Johnson's avatar
      STYLE: Prefer c++11 'using' to 'typedef' · 7be4043f
      Hans Johnson authored
      The check converts the usage of typedef with using keyword.
      cd ${BLDDIR}
      run-clang-tidy.py -extra-arg=-D__clang__ -checks=-*,modernize-use-using  -header-filter=.* -fix
      # https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-using.html
    • Hans Johnson's avatar
      PERF: readability container size empty · 691d5612
      Hans Johnson authored
      The emptiness of a container should be checked using the empty() method
      instead of the size() method. It is not guaranteed that size() is a
      constant-time function, and it is generally more efficient and also
      shows clearer intent to use empty(). Furthermore some containers may
      implement the empty() method but not implement the size() method. Using
      empty() whenever possible makes it easier to switch to another container
      in the future.
      run-clang-tidy.py -extra-arg=-D__clang__ -checks=-*,readability-container-size-empty  -header-filter=.* -fix
    • Hans Johnson's avatar
      STYLE: Make prototype match definition names · 3b30d0ff
      Hans Johnson authored
      Enforce consistency in large projects, where it often happens that a definition
      of function is refactored, changing the parameter names, but its declaration in
      header file is not updated. With this check, we can easily find and correct
      such inconsistencies, keeping declaration and definition always in sync.
      Unnamed parameters are allowed and are not taken into account when comparing
      function declarations
    • Hans Johnson's avatar
      STYLE: Remove redundant void argument lists · 8a7fe7ac
      Hans Johnson authored
      Find and remove redundant void argument lists.
  9. 18 Feb, 2020 1 commit
  10. 13 Feb, 2020 2 commits
  11. 12 Feb, 2020 1 commit
  12. 14 Nov, 2019 1 commit
  13. 29 Oct, 2019 1 commit
  14. 17 Sep, 2019 2 commits
  15. 28 Aug, 2019 1 commit
    • Jon Chronopoulos's avatar
      SystemTools: do not special case a junction in RemoveFile · 38486236
      Jon Chronopoulos authored
      The fix in commit 9f6cd407 (SystemTools: Fix removing of soft links to
      directories on Windows., 2017-12-14) made the infastructure added by
      commit de83c4d4 (SystemTools: support deleting junction points,
      2016-02-17) unnecessary.  Remove it.
      Before this commit, when a file on Windows was deleted, it would check
      if a file is a junction and then delete just the junction.
      Now just skip the special case of a junction and allow the rest of the
      code to delete it correctly. Can handle symlinks and junctions.
  16. 26 Aug, 2019 1 commit
  17. 19 Aug, 2019 1 commit
  18. 25 Jul, 2019 1 commit
  19. 24 Jul, 2019 2 commits
  20. 20 Jun, 2019 2 commits
  21. 29 May, 2019 1 commit
    • Zsolt Parragi's avatar
      Fixing issues when building with clang 8.0 on Windows · 887b1da5
      Zsolt Parragi authored
      * Clang with the MSVC STL requires C++14
      * Deprecatoion warning suppressions were specific to MSVC and Intel
      * An assignment inside a condition resulted in a warning
      * kwsysProcessSetExitException was declared, but never defined or used
  22. 17 Apr, 2019 1 commit
    • Ben Boeckel's avatar
      SystemTools: support hiding the translation map · 84bd7c9e
      Ben Boeckel authored
      When determining full paths, CMake would treat the as-called path for
      the source and build directories as real paths even if they were
      symlinks. This causes problems when determining the relative path
      between the source and build directories when they are symlinks.
      Take the following setup as an example:
              build/ -> /mnt/builds/project/build
      With the translation map and /mnt/src/project/build/ as the build
      directory, CMake would use ../src as the relative path to the source
      tree from the build tree rather than ../../../src/project/src and
      lookups using ../src would fail. If the build directory were instead
      used *as* /mnt/builds/project/build, everything would work just
      This patch makes the core logic which does this logic optional so that
      it can be experimented with in CMake itself.