1. 02 Aug, 2019 1 commit
    • Brad King's avatar
      Make CMAKE_LINK_LIBRARY_FILE_FLAG work like CMAKE_LINK_LIBRARY_FLAG · f6d6dbc2
      Brad King authored
      The `CMAKE_LINK_LIBRARY_FILE_FLAG` variable is meant for linkers that
      want library file paths to be preceded by a flag.  This is used only
      for OpenWatcom to add the `library` argument before library file paths.
      Refactor the approach to treat `CMAKE_LINK_LIBRARY_FILE_FLAG` as a
      command-line string fragment to add just before the library file path.
      This has two advantages:
      
      * `CMAKE_LINK_LIBRARY_FILE_FLAG` now works like `CMAKE_LINK_LIBRARY_FLAG`.
      * `CMAKE_LINK_LIBRARY_FILE_FLAG` can now be an attached flag whose value
        is the library file path.
      
      Technically this is a change in behavior, but this setting was created
      for internal use and should be rarely used outside of CMake itself.
      
      Fixes: #19541
      f6d6dbc2
  2. 29 Jul, 2019 1 commit
  3. 16 Jul, 2019 1 commit
    • Brad King's avatar
      AIX: Create import library for executables with exports · 2fa920c0
      Brad King authored
      On AIX, plugins meant to be loaded into executables via `dlopen` must be
      linked with access to a list of symbols exported from the executable in
      order to use them (when not using runtime linking).  The AIX linker
      supports specifying this list as an "import file" passed on the command
      line either via the `-bI:...` option or (with a leading `#! .` line) as
      a normal input file like any other library file.
      
      The linker import file plays the same role on AIX as import libraries do
      on Windows.  Teach CMake to enable its import library abstraction on AIX
      for executables with the `ENABLE_EXPORTS` target property set.  Teach
      our internal `ExportImportList` script to optionally generate a leading
      `#! .` line at the top of the generated export/import list.  Update our
      rule for linking an executable with exports to generate a public-facing
      "import library" implemented as an AIX linker import file.
      
      With this approach, our existing infrastructure for handling import
      libraries on Windows will now work for AIX linker import files too:
      
      * Plugins that link to their executable's symbols will be automatically
        linked using the import file on the command line.
      
      * The executable's import file will be (optionally) installed and
        exported for use in linking externally-built plugins.
      
      This will allow executables and their plugins to build even if we later
      turn off runtime linking.
      
      Issue: #19163
      2fa920c0
  4. 12 Jul, 2019 1 commit
  5. 25 Jun, 2019 1 commit
  6. 20 Feb, 2019 2 commits
  7. 28 Jan, 2019 1 commit
  8. 23 Jan, 2019 1 commit
  9. 17 Jan, 2019 1 commit
  10. 16 Jan, 2019 1 commit
  11. 11 Jan, 2019 1 commit
  12. 26 Oct, 2018 1 commit
    • Peter Wu's avatar
      RPATH: Add option for using $ORIGIN in build tree · 6114d85a
      Peter Wu authored
      This makes binaries independent of the build directory by not embedding
      the build directory via RPATH.  The tests are partially based on the
      existing RuntimePath test, but with the check moved into a POST_BUILD
      command such that it can be skipped when the platform lacks support.
      
      Fixes: #18413
      6114d85a
  13. 25 Sep, 2018 1 commit
    • Marc Chevrier's avatar
      LINK_DIRECTORIES: Add new properties and commands · a71caab4
      Marc Chevrier authored
      These new capabilities enable to manage link directories
      
      Two new properties:
      * target properties: LINK_DIRECTORIES and INTERFACE_LINK_DIRECTORIES
      
      One new command
      * target_link_directories(): to populate target properties
      
      Fixes: #17215
      a71caab4
  14. 18 Sep, 2018 1 commit
  15. 10 Sep, 2018 1 commit
  16. 01 Jun, 2018 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format-6.0 · d7204e64
      Kitware Robot authored
      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.
      d7204e64
  17. 22 Mar, 2018 1 commit
  18. 19 Mar, 2018 1 commit
  19. 01 Mar, 2018 1 commit
  20. 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
  21. 26 Jan, 2018 1 commit
  22. 22 Jan, 2018 1 commit
    • Byoungchan Lee's avatar
      cmComputeLinkInformation: Better RPATH detection for versioned libraries. · 5cbf3653
      Byoungchan Lee authored
      Some libraries uses the non-conventional SONAME scheme like
      `libssl.so.1.1` or `libboost_system.so.1.64.0`, but CMake didn't count on
      such versioned libraries. This commit modify regular expressions to match
      relaxed format of shared library name for determining various linker options,
      especially `RPATH`.
      Note that support for one component has been available since v2.8.12.
      
      Fixes: #15938
      5cbf3653
  23. 15 Sep, 2017 1 commit
  24. 12 Sep, 2017 1 commit
  25. 24 Aug, 2017 1 commit
  26. 01 Jun, 2017 1 commit
  27. 09 May, 2017 1 commit
    • Brad King's avatar
      Add options for separate compile and link sysroots · 53e89b6a
      Brad King authored
      Add `CMAKE_SYSROOT_COMPILE` and `CMAKE_SYSROOT_LINK` variables to as
      operation-specific alternatives to `CMAKE_SYSROOT`.  This will be useful
      for Android NDKs that compile and link with different sysroot values
      (e.g. `r14` with unified headers).
      
      Co-Author: Florent Castelli <florent.castelli@gmail.com>
      53e89b6a
  28. 20 Apr, 2017 1 commit
  29. 09 Nov, 2016 1 commit
    • Brad King's avatar
      Allow imported INTERFACE libraries to specify a link library name · 09cda9d5
      Brad King authored
      Add an `IMPORTED_LIBNAME[_<CONFIG>]` target property to specify a library
      name to be placed on the link line in place of an interface library
      since it has no library file of its own.  Restrict use of the property
      to imported `INTERFACE` libraries.
      
      This will be particularly useful for find modules that need to provide
      imported libraries from system SDKs where the full path to the library
      file is not known.  Now such find modules will be able to provide an
      imported interface library and set `IMPORTED_LIBNAME` to refer to the
      SDK library by name.
      
      Issue: #15267
      09cda9d5
  30. 19 Oct, 2016 3 commits
  31. 03 Oct, 2016 1 commit
  32. 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 lin...
      86578ecc
  33. 23 Aug, 2016 1 commit
  34. 28 Jun, 2016 1 commit
  35. 02 Jun, 2016 1 commit
    • Daniel Pfeifer's avatar
      Simplify boolean expressions · 7f6b8d33
      Daniel Pfeifer authored
      Use clang-tidy's readability-simplify-boolean-expr checker.
      After applying the fix-its, revise all changes *very* carefully.
      Be aware of false positives and invalid changes.
      7f6b8d33
  36. 16 May, 2016 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · d9fd2f54
      Kitware Robot authored
      Run the `Utilities/Scripts/clang-format.bash` script to update
      all our 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.
      d9fd2f54
  37. 13 May, 2016 1 commit