Skip to content
Snippets Groups Projects
  1. Nov 03, 2024
    • Brad King's avatar
      SystemTools: Remove path translation map · 47dce1a3
      Brad King authored
      CMake used this to preserve symlinks through realpath operations, but
      its presence caused some undesired side effects.  Those realpath
      operations are being replaced with a hand-written alternative that
      explicitly preserves symlinks when possible and does not have the side
      effects.  Therefore we no longer need the path translation map.
      
      Issue: cmake/cmake#16228
      47dce1a3
  2. Oct 25, 2021
  3. Sep 17, 2019
  4. Apr 17, 2019
    • Ben Boeckel's avatar
      SystemTools: support hiding the translation map · 84bd7c9e
      Ben Boeckel authored and Brad King's avatar Brad King committed
      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:
      
          /mnt/src/project/
              src/
              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
      fine.
      
      This patch makes the core logic which does this logic optional so that
      it can be experimented with in CMake itself.
      84bd7c9e
  5. May 31, 2018
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format-6.0 · 828b6837
      Kitware Robot authored and Brad King's avatar Brad King committed
      Run the `clang-format.bash` script to update all our C and C++ code to a
      new style defined by `.clang-format`.  Use `clang-format` version 6.0.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      828b6837
  6. Dec 21, 2017
  7. Nov 29, 2017
    • Brad King's avatar
      Configure: Add KWSYS_FALLTHROUGH macro for C++ code · 1b09cf0d
      Brad King authored
      Some C++ compilers now warn when a switch case falls through to another
      case, but compilers vary in how to suppress the warning with an explicit
      fallthrough specifier.  Provide a macro for the specifier.
      1b09cf0d
  8. Nov 04, 2016
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · 6c973b46
      Kitware Robot authored and Brad King's avatar Brad King committed
      Run the `clang-format.bash` script to update all our C and C++ code to a new
      style defined by `.clang-format`.  Use `clang-format` version 3.8.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      
      Change-Id: Ie3aedc03bfe5c3999d4a077fafb8c6f3bbffc5c5
      6c973b46
    • Brad King's avatar
      Simplify KWSys per-source license notices · c41c1bc4
      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 KWSys 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#kwsys".
      
      Run the `filter-notices.bash` script to perform the replacements mechanically.
      Manually fix up the shebang line in one file.
      
      Change-Id: I8497f7c868664dcf54a8608ab302ad93c860b334
      c41c1bc4
  9. Jul 19, 2016
    • Dāvis Mosāns's avatar
      FStream: Add MinGW support · 9d1dbd95
      Dāvis Mosāns authored and Brad King's avatar Brad King committed
      std::basic_filebuf::open(const wchar_t *) isn't part of C++ standard
      and it's only present for MSVC but it isn't present in libstdc++ (MinGW)
      so we implement this functionality using GNU libstdc++ stdio_filebuf
      extension and _wfopen function.
      
      Change-Id: I7df7a1b22ba272db23c8d962cb66ec71a278ef06
      9d1dbd95
  10. Oct 06, 2015
  11. Aug 28, 2015
  12. Oct 31, 2013
  13. Jun 29, 2010
  14. Sep 28, 2009
    • Brad King's avatar
      Convert KWSys to OSI-approved BSD License · 62db264e
      Brad King authored
      This converts the KWSys license to a pure 3-clause OSI-approved BSD
      License.  We drop the previous license clause requiring modified
      versions to be plainly marked.  We also update the KWSys copyright to
      cover the full development time range.
      62db264e
  15. Sep 22, 2009
  16. Aug 31, 2009
    • Brad King's avatar
      Define kwsys_ios_binary macro for std::ios::binary · 9350c584
      Brad King authored
      The 'binary' openmode does not exist on all compilers.  We define macro
      <kwsys>_ios_binary, where <kwsys> is the KWSys namespace, to refer to
      std::ios::binary if it exists and 0 otherwise.  Sample usage:
      
        kwsys_ios::ifstream fin(fn, kwsys_ios::ios::in | kwsys_ios_binary);
      9350c584
  17. Apr 14, 2009
    • Brad King's avatar
      ENH: Skip KWSys name maros in case of identity · 0e3a5ecd
      Brad King authored
      All KWSys C symbol names begin with the KWSYS_NAMESPACE defined at
      configuration time.  For ease of editing we write canonical names with
      the prefix 'kwsys' and use macros to map them to the configured prefix
      at preprocessing time.  In the case of standalone KWSys, the prefix is
      'kwsys', so the macros were previously defined to their own names.
      
      We now skip defining the macros in the identity case so that the final
      symbol names are never themselves macros.  This will allow the symbols
      to be further transformed behind the scenes to help linkers in special
      cases on some platforms.
      0e3a5ecd
  18. Jun 09, 2005
  19. Apr 21, 2005
  20. Apr 15, 2005
  21. Apr 13, 2005
  22. Mar 29, 2005
  23. Mar 26, 2005
Loading