1. 07 Aug, 2018 1 commit
  2. 30 Jul, 2018 1 commit
  3. 25 Jul, 2018 5 commits
    • Sebastian Holtermann's avatar
      cmLocalGenerator: Extend the functionality of ``GetIncludeDirectories()`` · b0b820ea
      Sebastian Holtermann authored
      What ``cmLocalGenerator::GetIncludeDirectories`` does
      -----------------------------------------------------
      
      In general it concatenates the
      
      1. ``target->GetIncludeDirectories(LANG)`` and the
      2. ``CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES``.
      
      Additionally it performs some sorting and special treatment of the
      
      - ``CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES``.
      
      By default all ``CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES`` are stripped from
      the result list.
      
      When explicitly requested (by setting ``stripImplicitInclDirs=false``) *some*
      implicit directories are appended to the result list.  The implicit directories
      that *are* appended are those that were requested to be included by
      
      1. ``target->GetIncludeDirectories(LANG)`` or
      2. ``CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES``.
      
      All other implicit directories are still stripped from the result list.
      
      The reason to not simply append all implicit directories is that Qt4's moc has
      problems to parse some headers that might be found in the implicit system
      include directories (See commit d2536579
      and
      [QTBUG-28045](https://bugreports.qt.io/browse/QTBUG-28045)
      ).
      That has been solved in Qt5's moc though.
      
      Extension request to ``cmLocalGenerator::GetIncludeDirectories``
      ----------------------------------------------------------------
      
      For Qt5's moc we like to have an option that allows to append *all* implict
      include directories to the result list, not just those that were user requested.
      
      Changes to ``cmLocalGenerator::GetIncludeDirectories``
      ------------------------------------------------------
      
      - Shorten the function parameter name ``stripImplicitInclDirs`` to
        ``stripImplicitDirs``.
      
      - Add new boolean function parameter ``appendAllImplicitDirs``
        with a default value ``false``.
      
      The old default behavior of the function stays the same, but a specialized
      behavior can be requested by AUTOMOC for Qt4/Qt5 respectively.
      b0b820ea
    • Sebastian Holtermann's avatar
      cmLocalGenerator: Style changes: Private local variable renames · 1f36652e
      Sebastian Holtermann authored
      Code style change in ``cmLocalGenerator::GetIncludeDirectories``.
      
      Rename a variable to reflect its purpose a little bit better.
      1f36652e
    • Sebastian Holtermann's avatar
      cmLocalGenerator: Style change: Wrap temporary strings and code in braces · db866d05
      Sebastian Holtermann authored
      Code style change in ``cmLocalGenerator::GetIncludeDirectories``.
      
      Embrace ``{}`` temporary strings and code that uses them to minimize their
      lifetime.
      db866d05
    • Sebastian Holtermann's avatar
      cmLocalGenerator: Style change: Wrap temporary strings and code in braces · 3713dc9b
      Sebastian Holtermann authored
      Code style change in ``cmLocalGenerator::GetIncludeDirectories``.
      
      Embrace ``{}`` temporary strings and code that uses them to minimize their
      lifetime.
      3713dc9b
    • Sebastian Holtermann's avatar
      cmLocalGenerator: Style change: Use return value of std::set::insert · d1077c1c
      Sebastian Holtermann authored
      Code style change in ``cmLocalGenerator::GetIncludeDirectories()``.
      
      Use the return value of ``std::set::insert`` instead of testing
      if the entry already exists in the set using ``std::find``.
      d1077c1c
  4. 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
  5. 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
  6. 23 Apr, 2018 1 commit
  7. 27 Mar, 2018 1 commit
  8. 26 Mar, 2018 1 commit
    • Brad King's avatar
      Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF" · 70c50aa2
      Brad King authored
      Revert commit v3.8.0-rc1~305^2 (Remove CTestTestfile.cmake when BUILD_TESTING
      is OFF, 2016-11-14) again.  We reverted it once in commit v3.8.0-rc3~22^2
      (Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF", 2017-03-06) but
      it was accidentally restored by commit v3.11.0-rc1~387^2 (server: add
      "ctestInfo" request to get test info, 2017-10-25), perhaps due to conflict
      resolution during rebase.
      
      We cannot remove `CTestTestfile.cmake` when testing is off because it breaks
      projects that never enable testing but create their own `CTestTestfile.cmake`
      manually instead.  Revert the change again and add a test case.
      70c50aa2
  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. 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
  11. 30 Jan, 2018 1 commit
    • Frank Winklmeier's avatar
      cmLocalGenerator: change ImportedGeneratorTargets from vector to map · aed227fd
      Frank Winklmeier authored
      For large number of targets significant amount of time is spent in
      cmLocalGenerator::FindGeneratorTargetToUse, which uses find_if on a
      vector to locate the given target. Using a map instead of vector for
      ImportedGeneratorTargets (as done for cmMakefile::ImportedTargets)
      provides a significant speedup (up to factor of 2).
      aed227fd
  12. 26 Jan, 2018 1 commit
  13. 24 Jan, 2018 1 commit
  14. 23 Jan, 2018 1 commit
  15. 08 Nov, 2017 1 commit
    • Domen Vrankar's avatar
      CMake: enable setting default dir creation permissions · deeba85f
      Domen Vrankar authored
      Introduces CMAKE_DEFAULT_DIRECTORY_INSTALL_PERMISSIONS
      variable which enables the user to specify the default
      permissions for directory creation. This setting is then
      used to auto set the permissions on directories which
      are implicitly created by install() and file(INSTALL)
      commands such as CMAKE_INSTALL_PREFIX directories.
      deeba85f
  16. 03 Nov, 2017 1 commit
  17. 23 Oct, 2017 1 commit
    • Matthias Männich's avatar
      Replace cmArray{Begin,End,Size} by their standard counterparts · 57132765
      Matthias Männich authored
      std::{begin,end} are part of C++11, std::{cbegin,cend} are part of C++14
      and an standard compliant implementation has been introduced within the
      'cm' namespace: cm::{cbegin,cend}.
      
      std::size is only part of C++17, hence exposing a compliant implementation
      within namespace cm (cm::size).
      
      where possible, the standard implementations are reused.
      57132765
  18. 21 Sep, 2017 1 commit
  19. 12 Sep, 2017 1 commit
  20. 30 Aug, 2017 1 commit
  21. 24 Aug, 2017 1 commit
  22. 16 Aug, 2017 1 commit
    • Aaron Orenstein's avatar
      Performance: Add an index to Change cmLocalGenerator::GeneratorTargets. · af3fd6f2
      Aaron Orenstein authored
      Add an index to Change cmLocalGenerator::GeneratorTargets for faster lookup by
      name.
      
      Also changed a bunch of uses of cmLocalGenerator::GetGeneratorTargets() to take
      const references instead of copying the vector.
      
      Represent generator targets as a map (name -> target) to make name lookups more
      efficient instead of looping through the entire vector to find the desired one.
      af3fd6f2
  23. 14 Jul, 2017 3 commits
  24. 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
  25. 12 Jul, 2017 1 commit
    • Matthew Woehlke's avatar
      Add TEST_INCLUDE_FILES · ed5bde30
      Matthew Woehlke authored
      Add new directory property TEST_INCLUDE_FILES. This supersedes
      TEST_INCLUDE_FILE, though the latter is of course retained for
      compatibility.
      
      Basically, this is a list rather than a single file. This allows the
      feature to be used by generic utilities without conflicting with local
      use.
      ed5bde30
  26. 10 Jul, 2017 1 commit
  27. 29 Jun, 2017 3 commits
  28. 28 Jun, 2017 1 commit
  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 1 commit
  31. 01 Jun, 2017 1 commit
  32. 26 May, 2017 1 commit