1. 19 Jul, 2019 7 commits
  2. 18 Jul, 2019 18 commits
  3. 17 Jul, 2019 10 commits
  4. 16 Jul, 2019 5 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
      Merge topic 'aix-explicit-exports' · c3d9d800
      Brad King authored
      c2c3d225 Tests: Drop RunCMake workaround for AIX ld warnings about GNU atexit
      9f5c2040 AIX: Explicitly compute executable exports for both XL and GNU
      0f150b69 AIX: Explicitly compute shared object exports for both XL and GNU
      a5bf4e79 AIX: Drop redundant -brtl flags
      9cb5f040 XL: De-duplicate shared object creation flags
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !3556
      c3d9d800
    • Brad King's avatar
      Merge topic 'doc-ENABLE_EXPORTS' · 76a540ba
      Brad King authored
      84ddeb8f Help: Clarify ENABLE_EXPORTS per-platform link behavior
      e29ccfca Help: Simplify CMAKE_ENABLE_EXPORTS documentation
      Acked-by: Kitware Robot's avatarKitware Robot <kwrobot@kitware.com>
      Merge-request: !3560
      76a540ba
    • 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