1. 11 Feb, 2020 1 commit
    • Kyle Edwards's avatar
      install: Fix regression when using default destinations · 9442ae50
      Kyle Edwards authored and Brad King's avatar Brad King committed
      In commit 9fc20a4f (install: Add sane set of defaults for DESTINATION
      and file type parameters, 2018-11-02, v3.14.0-rc1~410^2~1), a regression
      was introduced, in which an `install(TARGETS)` with a
      RUNTIME/LIBRARY/ARCHIVE DESTINATION but no PUBLIC_HEADER/PRIVATE_HEADER
      DESTINATION would then install the headers.  The old behavior did not do
      this.  Restore the old behavior.
      
      Fixes: #20326
      9442ae50
  2. 21 Jan, 2020 2 commits
  3. 14 Jan, 2020 1 commit
  4. 01 Oct, 2019 1 commit
  5. 20 Sep, 2019 1 commit
  6. 19 Sep, 2019 3 commits
  7. 18 Sep, 2019 1 commit
  8. 16 Sep, 2019 1 commit
  9. 23 Aug, 2019 2 commits
  10. 22 Aug, 2019 1 commit
    • Sebastian Holtermann's avatar
      Source sweep: Use cmStrCat for string concatenation · 9b334397
      Sebastian Holtermann authored
      This patch is generated by a python script that uses regular expressions to
      search for string concatenation patterns of the kind
      
      ```
      std::string str = <ARG0>;
      str += <ARG1>;
      str += <ARG2>;
      ...
      ```
      
      and replaces them with a single `cmStrCat` call
      
      ```
      std::string str = cmStrCat(<ARG0>, <ARG1>, <ARG2>, ...);
      ```
      
      If any `<ARGX>` is itself a concatenated string of the kind
      
      ```
      a + b + c + ...;
      ```
      
      then `<ARGX>` is split into multiple arguments for the `cmStrCat` call.
      
      If there's a sequence of literals in the `<ARGX>`, then all literals in the
      sequence are concatenated and merged into a single literal argument for
      the `cmStrCat` call.
      
      Single character strings are converted to single char arguments for
      the `cmStrCat` call.
      
      `std::to_string(...)` wrappings are removed from `cmStrCat` arguments,
      because it supports numeric types as well as string types.
      
      `arg.substr(x)` arguments to `cmStrCat` are replaced with
      `cm::string_view(arg).substr(x)`
      9b334397
  11. 14 Aug, 2019 1 commit
  12. 09 Aug, 2019 1 commit
  13. 31 Jul, 2019 1 commit
    • Brad King's avatar
      fileapi: Fix codemodel target install destination for cross-dir rules · d70a0f86
      Brad King authored
      Since commit e89ad0f9 (install: Allow installing targets created in
      another directory, 2018-06-18, v3.13.0-rc1~407^2) we support calling
      `install(TARGETS)` for targets created in another directory.  However,
      install generators are associated with the directory in which the call
      to `install()` appears.  This may not be the same directory in which the
      target is defined.  Record in each target the list of install generators
      it has.
      
      Fixes: #19546
      d70a0f86
  14. 29 Jul, 2019 1 commit
  15. 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
  16. 12 Jul, 2019 1 commit
  17. 11 Apr, 2019 1 commit
  18. 04 Apr, 2019 1 commit
  19. 07 Mar, 2019 1 commit
    • Brad King's avatar
      install: Do not crash on imported global target · 47389c56
      Brad King authored
      Since commit e89ad0f9 (install: Allow installing targets created in
      another directory, 2018-06-18, v3.13.0-rc1~407^2) the `install(TARGETS)`
      command may find a global-scoped target outside the calling directory.
      Ignore an `IMPORTED GLOBAL` target if it is found in this way.  Imported
      targets cannot be installed, and trying to do so violates internal
      invariants.
      
      Fixes: #19022
      47389c56
  20. 28 Jan, 2019 1 commit
  21. 16 Jan, 2019 1 commit
  22. 07 Nov, 2018 1 commit
    • Kyle Edwards's avatar
      install: Add sane set of defaults for DESTINATION and file type parameters · 9fc20a4f
      Kyle Edwards authored
      If the user does not specify a DESTINATION for a target type, the
      install() command checks to see if the appropriate variable from
      GNUInstallDirs is set. If it is not, then it uses an appropriate
      hard-coded guess.
      
      In addition, for FILES and DIRECTORY, the user can specify a file
      type instead of a DESTINATION, and the command will use the
      appropriate variable from GNUInstallDirs, or a hard-coded guess if
      it is not set.
      9fc20a4f
  23. 18 Oct, 2018 1 commit
  24. 18 Sep, 2018 1 commit
  25. 30 Aug, 2018 1 commit
  26. 18 Jun, 2018 1 commit
  27. 01 Jun, 2018 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format-6.0 · d7204e64
      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.
      d7204e64
  28. 03 May, 2018 1 commit
  29. 09 Mar, 2018 1 commit
  30. 28 Feb, 2018 1 commit
    • Brad King's avatar
      install,export: Maybe transform OBJECT libraries to INTERFACE libraries · ea0ce73a
      Brad King authored
      Teach the `install` and `export` commands to support installing and
      exporting `OBJECT` libraries without their object files.  Transform
      them to `INTERFACE` libraries in such cases.
      
      For `install(TARGETS)`, activate this when no destination for the object
      files is specified.  For `export`, activate this only under Xcode with
      multiple architectures when we have no well-defined object file
      locations to give to clients.
      ea0ce73a
  31. 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
  32. 26 Jan, 2018 1 commit
  33. 12 Sep, 2017 1 commit
  34. 24 Aug, 2017 1 commit
  35. 03 Jun, 2017 1 commit
  36. 01 Jun, 2017 1 commit