1. 31 Mar, 2019 1 commit
  2. 11 Feb, 2019 1 commit
    • Saleem Abdulrasool's avatar
      Create and use `cmGeneratorTarget::Names` · fc8b90af
      Saleem Abdulrasool authored
      Rather than taking a number of out parameters for the various names,
      create a structure that is reused for both `GetLibraryNames` and
      `GetExecutableNames`.  Replace uses according to the new interface.
      fc8b90af
  3. 29 Jan, 2019 1 commit
  4. 25 Jan, 2019 2 commits
  5. 18 Jan, 2019 1 commit
  6. 15 Dec, 2018 1 commit
  7. 11 Nov, 2018 1 commit
  8. 31 Oct, 2018 2 commits
    • Brad King's avatar
      CSharp: Fix regression in VS project type selection for custom target · 1acd1c2b
      Brad King authored
      A target created by `add_custom_target` should always be a `.vcxproj`
      file even if it has `.cs` sources involved in custom commands and such.
      The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
      (remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
      2018-03-19).  The reason is that the `HasLanguage` method added by
      commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
      wrapper for GetLanguages(), 2018-03-19) does not check the target type
      and so is not a suitable check for deciding the project file extension.
      
      The `HasLanguage` method was an attempt at an abstraction that turns
      out not to work very well.  Replace it with a dedicated `IsCSharpOnly`
      method that considers the target type, sources, and non-transitive
      `LINKER_LANGUAGE`.
      
      Fixes: #18515
      1acd1c2b
    • Brad King's avatar
      CSharp: Fix regression in VS project type selection for custom target · a56edad6
      Brad King authored
      A target created by `add_custom_target` should always be a `.vcxproj`
      file even if it has `.cs` sources involved in custom commands and such.
      The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
      (remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
      2018-03-19).  The reason is that the `HasLanguage` method added by
      commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
      wrapper for GetLanguages(), 2018-03-19) does not check the target type
      and so is not a suitable check for deciding the project file extension.
      
      The `HasLanguage` method was an attempt at an abstraction that turns
      out not to work very well.  Replace it with a dedicated `IsCSharpOnly`
      method that considers the target type, sources, and non-transitive
      `LINKER_LANGUAGE`.
      
      Fixes: #18515
      a56edad6
  9. 18 Oct, 2018 3 commits
    • Brad King's avatar
      Add generator APIs to get build settings with backtraces · 753ab3c9
      Brad King authored
      In cmGeneratorTarget and cmLocalGenerator we offer several APIs to get
      build settings like include directories, compile definitions, source
      files, etc.  Add corresponding APIs that include backtrace information.
      753ab3c9
    • Brad King's avatar
      add_dependencies: Track backtraces internally · a6e02f88
      Brad King authored
      Record backtraces for "utility" dependencies created by
      `add_dependencies` calls.
      a6e02f88
    • Brad King's avatar
      cmLinkItem: Add backtrace · a093b1a4
      Brad King authored
      Carry a backtrace on every link item, not just link implementation
      items.  For now the non-impl items will still have empty backtraces at
      runtime, but this will allow us to introduce values over time.
      a093b1a4
  10. 16 Oct, 2018 1 commit
  11. 02 Oct, 2018 1 commit
    • Brad King's avatar
      CSharp: Fix regression in VS project type selection · 375b420f
      Brad King authored
      A that target contains only `.cs` sources should be generated as a
      `.csproj` project even if it links to non-CSharp static libraries.
      The latter case was broken by refactoring in commit v3.12.0-rc1~160^2~7
      (remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget,
      2018-03-19).  The reason is that the `HasLanguage` method added by
      commit v3.12.0-rc1~239^2~6 (cmGeneratorTarget: add HasLanguage() as
      wrapper for GetLanguages(), 2018-03-19) enforces its "exclusive" check
      on the combined set of source file languages and the link language.
      To restore the original `TargetIsCSharpOnly` semantics, update
      `HasLanguage` to enforce exclusiveness only on the list of sources.
      
      Fixes: #18239
      375b420f
  12. 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
  13. 12 Sep, 2018 1 commit
  14. 07 Sep, 2018 1 commit
    • Brad King's avatar
      cmLinkItem: Convert to a "sum type" over a string and target pointer · fc7e4d1e
      Brad King authored
      Avoid exposing the item name implicitly as std::string.  When the item
      is a target, avoid storing a second copy of its name.
      
      Most link item construction is paired with calls to `FindTargetToLink`
      to get the possible target pointer.  Rename these methods to
      `ResolveLinkItem` and refactor them to construct the entire item.
      fc7e4d1e
  15. 15 Aug, 2018 1 commit
  16. 11 Jul, 2018 1 commit
  17. 02 Jul, 2018 1 commit
  18. 27 Jun, 2018 1 commit
  19. 06 Jun, 2018 1 commit
    • Marc Chevrier's avatar
      LINK_OPTIONS: Add new family of properties · c1f5a44b
      Marc Chevrier authored
      This family enable to manage link flags
      
      Three new properties:
      * directory property: LINK_OPTIONS
      * target properties: LINK_OPTIONS and INTERFACE_LINK_OPTIONS
      
      Two new commands
      * add_link_options(): to populate directory property
      * target_link_options(): to populate target properties
      
      Fixes: #16543
      c1f5a44b
  20. 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
  21. 05 Apr, 2018 3 commits
  22. 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
  23. 30 Aug, 2017 1 commit
  24. 26 Aug, 2017 1 commit
  25. 24 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. 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
  29. 01 May, 2017 1 commit
    • Brad King's avatar
      Features: Refactor <LANG>_STANDARD update · b115bc49
      Brad King authored
      In order to support generator expressions in target COMPILE_FEATURES
      we apply them at generate time.  Move this step to the beginning of
      generation instead of doing it on demand while collecting flags.
      This avoids repeating the process unnecessarily, and will then allow
      `cmLocalGenerator::AddCompilerRequirementFlag` to be used any time
      during generation.
      b115bc49
  30. 24 Apr, 2017 1 commit
  31. 21 Apr, 2017 1 commit
  32. 20 Apr, 2017 2 commits
  33. 18 Apr, 2017 1 commit