1. 19 Jul, 2019 1 commit
  2. 22 Jan, 2019 1 commit
  3. 08 Nov, 2018 1 commit
  4. 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
  5. 10 Sep, 2018 1 commit
    • Brad King's avatar
      Fix transitive usage requirements through same-name imported targets · f35be599
      Brad King authored
      If two imported targets in different directories have the same name we
      should still be able to propagate transitive usage requirements from
      both.  Fix the DAG checker to work with target pointers instead of
      target names since the pointers will not be duplicated even if the names
      are.
      
      Fixes: #18345
      f35be599
  6. 27 Jun, 2018 1 commit
  7. 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
  8. 23 Apr, 2018 1 commit
  9. 30 Aug, 2017 1 commit
  10. 26 Aug, 2017 1 commit
  11. 24 Aug, 2017 1 commit
  12. 11 Apr, 2017 1 commit
    • Daniel Pfeifer's avatar
      Use quotes for non-system includes · 1d829c86
      Daniel Pfeifer authored
      Automate with:
      
      git grep -l '#include <cm_' -- Source \
        | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g'
      
      git grep -l '#include <cmsys/' -- Source \
        | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g'
      
      git grep -l '#include <cm[A-Z]' -- Source \
        | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
      1d829c86
  13. 27 Sep, 2016 1 commit
    • Brad King's avatar
      Simplify CMake per-source license notices · 86578ecc
      Brad King authored
      Per-source copyright/license notice headers that spell out copyright holder
      names and years are hard to maintain and often out-of-date or plain wrong.
      Precise contributor information is already maintained automatically by the
      version control tool.  Ultimately it is the receiver of a file who is
      responsible for determining its licensing status, and per-source notices are
      merely a convenience.  Therefore it is simpler and more accurate for
      each source to have a generic notice of the license name and references to
      more detailed information on copyright holders and full license terms.
      
      Our `Copyright.txt` file now contains a list of Contributors whose names
      appeared source-level copyright notices.  It also references version control
      history for more precise information.  Therefore we no longer need to spell
      out the list of Contributors in each source file notice.
      
      Replace CMake per-source copyright/license notice headers with a short
      description of the license and links to `Copyright.txt` and online information
      available from "https://cmake.org/licensing".  The online URL also handles
      cases of modules being copied out of our source into other projects, so we
      can drop our notices about replacing links with full license text.
      
      Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
      of the replacements mechanically.  Manually fix up shebang lines and trailing
      newlines in a few files.  Manually update the notices in a few files that the
      script does not handle.
      86578ecc
  14. 03 Sep, 2016 2 commits
  15. 28 Jun, 2016 1 commit
  16. 16 May, 2016 1 commit
    • Kitware Robot's avatar
      Revise C++ coding style using clang-format · d9fd2f54
      Kitware Robot authored
      Run the `Utilities/Scripts/clang-format.bash` script to update
      all our C++ code to a new style defined by `.clang-format`.
      Use `clang-format` version 3.8.
      
      * 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.
      d9fd2f54
  17. 09 May, 2016 1 commit
    • Brad King's avatar
      Remove `//------...` horizontal separator comments · 0ac18d40
      Brad King authored
      Modern editors provide plenty of ways to visually separate functions.
      Drop the explicit comments that previously served this purpose.
      Use the following command to automate the change:
      
          $ git ls-files -z -- \
              "*.c" "*.cc" "*.cpp" "*.cxx" "*.h" "*.hh" "*.hpp" "*.hxx" |
            egrep -z -v "^Source/cmCommandArgumentLexer\." |
            egrep -z -v "^Source/cmCommandArgumentParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmDependsJavaLexer\." |
            egrep -z -v "^Source/cmDependsJavaParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmExprLexer\." |
            egrep -z -v "^Source/cmExprParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmFortranLexer\." |
            egrep -z -v "^Source/cmFortranParser(\.y|\.cxx|Tokens\.h)" |
            egrep -z -v "^Source/cmListFileLexer\." |
            egrep -z -v "^Source/cm_sha2" |
            egrep -z -v "^Source/(kwsys|CursesDialog/form)/" |
            egrep -z -v "^Utilities/(KW|cm).*/" |
            xargs -0 sed -i '/^\(\/\/---*\|\/\*---*\*\/\)$/ {d;}'
      
      This avoids modifying third-party sources and generated sources.
      0ac18d40
  18. 05 Jun, 2014 1 commit
  19. 07 Apr, 2014 1 commit
    • Stephen Kelly's avatar
      cmTarget: Transitively evaluate compiler features. · 5412dede
      Stephen Kelly authored
      Extend the interface of the target_compile_features command with
      PUBLIC and INTERFACE keywords. Populate the INTERFACE_COMPILER_FEATURES
      target property if they are set. Consume the INTERFACE_COMPILER_FEATURES
      target property from linked dependent targets to determine the final
      required compiler features and the compile flag, if needed.
      
      Use the same pattern of origin-debugging which is used for other
      build properties.
      5412dede
  20. 02 Apr, 2014 1 commit
  21. 08 Mar, 2014 1 commit
    • Ben Boeckel's avatar
      strings: Remove cmStdString references · 270eb96d
      Ben Boeckel authored
      Casts from std::string -> cmStdString were high on the list of things
      taking up time. Avoid such implicit casts across function calls by just
      using std::string everywhere.
      
      The comment that the symbol name is too long is no longer relevant since
      modern debuggers alias the templates anyways and the size is a
      non-issue since the underlying methods are generated since it's
      inherited.
      270eb96d
  22. 06 Jan, 2014 4 commits
  23. 27 Nov, 2013 1 commit
    • Stephen Kelly's avatar
      QtAutoUic: Add INTERFACE_AUTOUIC_OPTIONS target property. · 98093c45
      Stephen Kelly authored
      Transitively consume the property from linked dependents.
      
      Implement configuration-specific support by following the pattern
      set out for compile definitions and includes in cmQtAutoGenerators.
      
      Implement support for origin-tracking with CMAKE_DEBUG_TARGET_PROPERTIES.
      
      This is motivated by the needs of KDE, which provides a separate
      translation system based on gettext instead of the Qt linguist
      translation system. The Qt uic tool provides command line options
      for configuring the method used to translate text, and to add an
      include directive to the generated file to provide the method.
      
       http://thread.gmane.org/gmane.comp.kde.devel.frameworks/7930/focus=7992
      
      Implement the interface to provide the uic options as a usage-requirement
      on the KI18n target, as designed for KDE.
      98093c45
  24. 09 Nov, 2013 1 commit
  25. 16 Jul, 2013 1 commit
  26. 07 Jul, 2013 1 commit
  27. 24 Jun, 2013 1 commit
  28. 10 Jun, 2013 1 commit
  29. 02 Jun, 2013 1 commit
  30. 23 Feb, 2013 1 commit
  31. 02 Feb, 2013 1 commit
    • Stephen Kelly's avatar
      Optimize genex evaluation for includes and defines. · 089fe1c1
      Stephen Kelly authored
      While porting boost to use these features, the generation step took
      too long (several minutes before I stopped it). The reason was that
      the boost libraries form a large interdependent mesh. The libraries
      list their dependencies in their INTERFACE such as:
      
       $<LINKED:boost::core>;$<LINKED:boost::config>;$<LINKED:boost::mpl>
      
      As boost::core already depends on the boost::config libraries, that
      expression has no impact on the end-content, as it is removed after
      the generation step. There is no DAG issue though, so the generator
      expression evaluation would fully evaluate them. In the case of the
      config library, it also depends on the core library, so all depends
      are followed through that again, despite the fact that they've just
      been evaluated. After this patch, the evaluation skips libraries if
      they have already been seen via depends or directly in the content.
      
      This patch keeps track of targets whose INTERFACE has been consumed
      already. The INCLUDE_DIRECTORIES and COMPILE_DEFINITIONS properties
      are whitelisted because repeated content will be stripped out later
      during generation. For other properties now and in the future, that
      may not be the case.
      089fe1c1
  32. 31 Jan, 2013 1 commit
  33. 20 Jan, 2013 1 commit
  34. 04 Jan, 2013 1 commit
    • Stephen Kelly's avatar
      Make cycles in target properties ignored, not an error. · c67b8124
      Stephen Kelly authored
      Constructs such as these are an error as they are direct self-references:
      
       set_property(TARGET foo APPEND PROPERTY
         INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>)
       set_property(TARGET foo APPEND PROPERTY
         INCLUDE_DIRECTORIES $<TARGET_PROPERTY:INCLUDE_DIRECTORIES>)
      
      However, this is an indirect self-reference in a cycle, and not an error:
      
       set_property(TARGET foo APPEND PROPERTY
         INCLUDE_DIRECTORIES $<TARGET_PROPERTY:bar,INCLUDE_DIRECTORIES>)
       set_property(TARGET bar APPEND PROPERTY
         INCLUDE_DIRECTORIES $<TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES>)
      c67b8124
  35. 28 Sep, 2012 1 commit