1. 27 Jun, 2018 1 commit
  2. 06 Jun, 2018 2 commits
  3. 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
  4. 21 May, 2018 1 commit
  5. 07 May, 2018 1 commit
  6. 23 Apr, 2018 1 commit
  7. 05 Apr, 2018 4 commits
  8. 14 Mar, 2018 1 commit
    • Brad King's avatar
      target_compile_options: Add syntax to specify shell strings · ce0b9832
      Brad King authored
      Options specified via `COMPILE_OPTIONS` and `INTERFACE_COMPILE_OPTIONS`
      are deduplicated, but individual options can legitimately be duplicated
      when grouped with other options, e.g.
      
          -D A -D B
      
      After deduplication that becomes `-D A B`.  Therefore we need a way to
      treat groups of options as units during deduplication.  A simple approach
      is to specify each group as one option, e.g.
      
          "-D A" "-D B"
      
      However, that conflicts with options that legitimately have spaces.  To
      break this ambiguity, add a `SHELL:` prefix syntax to specify that an
      option should be parsed like shell command line arguments after
      deduplication, e.g.
      
          "SHELL:-D A" "SHELL:-D B"
      
      These will survive deduplication intact, and then be parsed to produce
      `-D A -D B` on the final command line.
      
      Fixes: #15826
      ce0b9832
  9. 12 Mar, 2018 1 commit
    • Brad King's avatar
      Genex: Fix COMPILE_LANGUAGE in SYSTEM include directories · 2deb9b7f
      Brad King authored
      When evaluating `INTERFACE_SYSTEM_INCLUDE_DIRECTORIES`, or evaluating
      `INTERFACE_INCLUDE_DIRECTORIES` on an imported target, thread the
      compile language through to the generator expression evaluator so
      that it can support `$<COMPILE_LANGUAGE:...>`.
      
      Fixes: #17811
      2deb9b7f
  10. 09 Mar, 2018 1 commit
  11. 01 Mar, 2018 3 commits
    • Deniz Bahadir's avatar
      objlib: Link object-files from `OBJECT` libraries. · 57538224
      Deniz Bahadir authored
      Note: This finally links the object-files of the `OBJECT` library from
      the right-hand side of `target_link_libraries` to the target on the
      left-hand side. However, this will only happen with directly linked
      `OBJECT` libraries, not with `OBJECT` libraries "linked" through
      property `INTERFACE_LINK_LIBRARIES` of a target on the right-hand side!
      
      Fixes: #14778
      57538224
    • Deniz Bahadir's avatar
      objlib: Allow `OBJECT` libraries to link to `OBJECT` libraries. · 9a7f039e
      Deniz Bahadir authored
      Note: This still does not link the object-files of the `OBJECT` library
      from the right-hand side of `target_link_libraries` to the target on the
      left-hand side. (In this particular case of another `OBJECT` library on
      the left-hand side this would not make any sense anyway. The target on
      the left-hand side has no link-step.)
      
      Issue: #14778
      9a7f039e
    • Deniz Bahadir's avatar
      objlib: Allow other libraries to link to `OBJECT` libraries. · dfb6e840
      Deniz Bahadir authored
      Note: This only allows `OBJECT` libraries to be on the right-hand side
      of `target_link_libraries` but still does not link its object-files to
      the target on the left-hand side.
      
      Issue: #14778
      dfb6e840
  12. 28 Feb, 2018 1 commit
    • Brad King's avatar
      Do not generate rules for .def generation where not supported · 1ac042aa
      Brad King authored
      Our `cmake -E __create_def` helper used for `WINDOWS_EXPORT_ALL_SYMBOLS`
      and merging of multiple `.def` files is available only with CMake hosted
      on Windows.  However, we may generate use of it on other platforms since
      commit v3.9.0-rc1~405^2 (Support WINDOWS_EXPORT_ALL_SYMBOLS with `.def`
      files, 2017-03-13) when multiple `.def` files are listed.  This results
      in a build error because the tool doesn't exist.
      
      Fix our logic to avoid using the tool on non-Windows platforms.  Instead
      silently ignore all but the first `.def` source as we did before.
      
      Issue: #17773
      1ac042aa
  13. 31 Jan, 2018 2 commits
    • Ben Boeckel's avatar
      88ed556d
    • 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
  14. 26 Jan, 2018 1 commit
  15. 03 Jan, 2018 1 commit
  16. 22 Dec, 2017 1 commit
  17. 20 Dec, 2017 1 commit
  18. 05 Oct, 2017 1 commit
  19. 25 Sep, 2017 1 commit
  20. 15 Sep, 2017 1 commit
  21. 12 Sep, 2017 1 commit
  22. 01 Sep, 2017 1 commit
    • Brad King's avatar
      Genex: Fix TARGET_PROPERTY value of SOURCES · 068cc545
      Brad King authored
      Refactoring in commit v3.8.0-rc1~445^2~2 (cmTarget: Move sanity checks
      and computed property access to callers, 2016-10-13) exposed a typo in
      commit v3.8.0-rc1~445^2~3 (cmGeneratorTarget: Implement
      cmTargetPropertyComputer interface, 2016-10-13).  Together they broke
      the `$<TARGET_PROPERTY:mytgt,SOURCES>` generator expression in the case
      that the `SOURCES` target property is populated in part by the
      `target_sources` command.  Add the missing `;`-separator.
      
      Fixes: #17243
      068cc545
  23. 30 Aug, 2017 1 commit
  24. 24 Aug, 2017 1 commit
  25. 22 Aug, 2017 1 commit
  26. 10 Aug, 2017 1 commit
    • Sebastian Holtermann's avatar
      Autogen: Clear sources meta data cache · 952fc65d
      Sebastian Holtermann authored
      Adds cmGeneratorTarget::clearSourcesCache() which clears the cache
      of precomputed sources lists and object names. The cache gets
      recomputed on demand.
      
      Clearing the cache is necessary in case an OBJECT library
      gets a source added after a target (ORIGIN) that includes it
      computed it's external sources cache.
      This may happen in AUTOMOC when ORIGIN is processed before the
      OBJECT library which gets a mocs_compilation.cpp file added.
      
      Closes #17152
      Closes #17139
      Closes #17085
      Closes #15967
      952fc65d
  27. 14 Jul, 2017 1 commit
    • Brad King's avatar
      Diagnose object library self-reference · d89e10cd
      Brad King authored
      The code
      
          add_library(A OBJECT a.c)
          target_sources(A PRIVATE $<TARGET_OBJECTS:A>)
      
      used to crash CMake via infinite recursion while evaluating the
      generator expression.  Then the change in commit v3.9.0-rc1~266^2~1
      (cmGeneratorTarget: Replace source classifier implementation,
      2017-04-07) avoided the infinite recursion because GetKindedSources now
      creates a map entry and initializes it once.  If it is called again on
      the same target during that initialization, the partially computed
      results are returned.  This is still wrong but does not crash.
      Detect and diagnose this case instead.
      
      Co-Author: Ben Boeckel <ben.boeckel@kitware.com>
      Fixes: #16578
      d89e10cd
  28. 13 Jul, 2017 1 commit
    • Brad King's avatar
      Android: Always add standard include directories last · 4bafa392
      Brad King authored
      The logic added in commit v3.6.0-rc1~30^2 (Add a variable to specify
      language-wide system include directories, 2016-05-24) to use
      `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` incorrectly filters them by
      `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`.  Rather than recognizing
      this, commit v3.8.0-rc1~60^2 (Android: Pass sysroot include directory
      explicitly, 2017-01-20) worked around the problem by incorrectly
      removing `/usr/include` from `CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`
      so it worked in `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`.
      
      By not filtering out `/usr/include` from user-specified include
      directories, we allow the code
      
          include_directories(${CMAKE_SYSROOT}/usr/include)
      
      to place the include directory too early on the command line.
      
      Fix support for standard include directories to not be filtered by
      implicit include directories, and do not remove `/usr/include` from the
      list of implicit include directories for Android builds.  Add a test
      case to verify that an explicit `/usr/include` is ignored in favor
      of the standard directory at the end.
      
      Fixes: #17059
      4bafa392
  29. 14 Jun, 2017 1 commit
    • Brad King's avatar
      IPO: Consider support for each language separately · ba247cca
      Brad King authored
      We only define `INTERPROCEDURAL_OPTIMIZATION` behavior for C, CXX, and
      Fortran languages.  Do not try to enable support for other languages.
      Furthermore, each language builds with a different compiler, so check
      for support by CMake and the compiler for each language independently.
      
      Fixes: #16944
      ba247cca
  30. 03 Jun, 2017 2 commits
  31. 01 Jun, 2017 2 commits