1. 21 Jul, 2019 1 commit
    • Alex Turbov's avatar
      CPack: Introduce CPACK_INSTALL_SCRIPTS variable · 5f966016
      Alex Turbov authored
      The singular name `CPACK_INSTALL_SCRIPT` has existed but was not linked
      from the CPack documentation.  Also, it supported multiple values and
      should have had a plural name.  Add a plural-named alternative now.
      If both `CPACK_INSTALL_SCRIPTS` and `CPACK_INSTALL_SCRIPT` are set then
      ignore the latter with a warning.
      Signed-off-by: Alex Turbov's avatarAlex Turbov <i.zaufi@gmail.com>
      5f966016
  2. 20 Jul, 2019 1 commit
  3. 19 Jul, 2019 4 commits
  4. 18 Jul, 2019 1 commit
  5. 17 Jul, 2019 3 commits
    • Saleem Abdulrasool's avatar
      Swift: support multithreaded compilation · 47e28cbe
      Saleem Abdulrasool authored
      Query the number of logical CPUs available to enable parallel
      compilation for Swift.
      47e28cbe
    • Brad King's avatar
      AIX: Do not enable runtime linking by default anymore · 3fb3157d
      Brad King authored
      We've long created shared objects on AIX using the linker's `-G` option
      (also offered by the XL front-end).  The `-G` option implies `-brtl` and
      enables runtime linking.  This has been largely unnecessary because we
      provide all dependencies on the link line and both XL and GNU compilers
      offer builtin behavior to export symbols.  Since commit 0f150b69 (AIX:
      Explicitly compute shared object exports for both XL and GNU,
      2019-07-11) we compute exports explicitly and consistently.
      Therefore runtime linking is no longer necessary for shared objects.
      
      We've also long created executables on AIX using the linker's `-brtl`
      option to enable runtime linking in case they load plugins at runtime.
      Since commit 9f5c2040 (AIX: Explicitly compute executable exports for
      both XL and GNU, 2019-07-12) and commit 2fa920c0 (AIX: Create import
      library for executables with exports, 2019-07-16) we now provide the
      linker enough information to fully resolve symbols in plugins up front.
      Therefore runtime linking is no longer necessary for executables.
      
      Drop use of `-G` for creating shared objects and use the XL `-qmkshrobj`
      and GCC `-shared` options instead.  Both invoke the linker with the
      `-bM:SRE -bnoentry` options to create a shared object without runtime
      linking enabled.  Also drop use of `-brtl` for creating executables.
      
      Issue: #19163
      3fb3157d
    • Craig Scott's avatar
      0518e675
  6. 16 Jul, 2019 4 commits
    • 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
    • Brad King's avatar
      Help: Clarify ENABLE_EXPORTS per-platform link behavior · 84ddeb8f
      Brad King authored
      Spell out the behavior on each platform in a bullet list.
      84ddeb8f
    • Brad King's avatar
      Help: Simplify CMAKE_ENABLE_EXPORTS documentation · e29ccfca
      Brad King authored
      In real projects the variable form should rarely be used because the
      decision to export symbols from an executable is very specific.
      Remove its main description, which duplicates the `ENABLE_EXPORTS`
      target property, and simply reference the property instead.
      e29ccfca
    • Alex Turbov's avatar
      project: Keep leading `0` in PROJECT_VERSION components · 0ba5891e
      Alex Turbov authored
      Introduce CMake policy `CMP0096` to make `project()` keep leading zeros
      in version components.  As a side effect, it now allows really long
      version numbers.
      
      Fixes: #19421
      Co-Author: Brad King <brad.king@kitware.com>
      0ba5891e
  7. 12 Jul, 2019 1 commit
  8. 11 Jul, 2019 2 commits
  9. 10 Jul, 2019 1 commit
  10. 09 Jul, 2019 4 commits
  11. 08 Jul, 2019 1 commit
    • Craig Scott's avatar
      Help: Use consistent levels for cmake --loglevel and message() · 14ed40d6
      Craig Scott authored
      The message() command requires uppercase log levels. Even
      though the cmake --loglevel option is not case sensitive, show
      the supported values as uppercase to match the message()
      docs as closely as possible, since they are related to the same
      feature.
      
      Also fixes the wrong string being shown for the warning level
      by cmake --help.
      14ed40d6
  12. 03 Jul, 2019 5 commits
  13. 02 Jul, 2019 3 commits
  14. 01 Jul, 2019 1 commit
    • Brad King's avatar
      Add deprecation warnings for policies CMP0067 and below · cf821ff3
      Brad King authored
      The OLD behaviors of all policies are deprecated, but only by
      documentation.  Add an explicit deprecation diagnostic for policies
      introduced in CMake 3.8 and below to encourage projects to port away
      from setting policies to OLD.
      cf821ff3
  15. 30 Jun, 2019 1 commit
  16. 29 Jun, 2019 1 commit
  17. 27 Jun, 2019 1 commit
  18. 26 Jun, 2019 1 commit
  19. 25 Jun, 2019 3 commits
  20. 24 Jun, 2019 1 commit