1. 30 Jul, 2018 1 commit
  2. 11 Jul, 2018 3 commits
  3. 02 Jul, 2018 1 commit
  4. 21 Jun, 2018 1 commit
  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. 30 May, 2018 2 commits
    • Sebastian Holtermann's avatar
      Autogen: Let AUTORCC generate output for all configurations · 41685c8b
      Sebastian Holtermann authored
      For multi configuration generators let AUTORCC generate
      the rcc output for all configurations.  This is a workaround
      for the incomplete `$<CONFIG>` support in the DEPENDS and OUTPUT
      clauses of a custom_command/custom_target.  Since we can't depend
      on the per-config rcc output file we somehow must ensure the successful
      rcc build for one configuration doesn't shadow the need to rcc rebuild
      for a second configuration.
      
      Closes #18006
      41685c8b
    • Sebastian Holtermann's avatar
      Autogen: Add lock file to AUTORCC commands · 2930a198
      Sebastian Holtermann authored
      By using a per .qrc lock file in AUTORCC, the same
      `cmake -E cmake_autorcc ...` command can be called concurrently.
      2930a198
  7. 14 May, 2018 1 commit
  8. 06 Feb, 2018 1 commit
  9. 02 Feb, 2018 1 commit
    • Sebastian Holtermann's avatar
      Autogen: Improved multi-config include scheme · a8ee7406
      Sebastian Holtermann authored
      For multi configuration generators AUTOMOC generates the
      moc files that are included in `mocs_compilation.cpp`
      in `AUTOGEN_BUILD_DIR/include_$<CONFIG>/`. By doing so each
      configuration reads different moc files when compiling
      `mocs_compilation.cpp`. Since we do not (need to) rewrite
      `mocs_compilation.cpp` on a configuration change anymore,
      the files also does not need to be recompiled anymore.
      Not having to rewrite and recompile `mocs_compilation.cpp`
      on a configuration change anymore was the main objective of
      this patch.
      
      In a similar fashion AUTORCC generates a `qrc_BASE_CMAKE.cpp`
      file below `AUTOGEN_BUILD_DIR/include_$<CONFIG>/` and
      `qrc_BASE.cpp` becomes a mere wrapper that includes this
      actuall rcc output file (when using multi configuration
      generators).
      
      The template files `Modules/AutoRccInfo.cmake.in` and
      `Modules/AutogenInfo.cmake.in` were removed in favor
      of writing the info `.cmake` files manually.
      
      Closes #17230
      a8ee7406
  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. 23 Jan, 2018 1 commit
  12. 17 Jan, 2018 2 commits
    • Sebastian Holtermann's avatar
    • Sebastian Holtermann's avatar
      Autogen: Process files concurrently in AUTOMOC and AUTOUIC · a008578d
      Sebastian Holtermann authored
      This introduces concurrent thread processing in the `_autogen`
      target wich processes AUTOMOC and AUTOUIC.
      Source file parsing is distributed among the threads by
      using a job queue from which the threads pull new parse jobs.
      Each thread might start an independent ``moc`` or ``uic`` process.
      Altogether this roughly speeds up the AUTOMOC and AUTOUIC build
      process by the number of physical CPUs on the host system.
      
      The exact number of threads to start in  the `_autogen` target
      is controlled by the new AUTOGEN_PARALLEL target property which
      is initialized by the new CMAKE_AUTOGEN_PARALLEL variable.
      If AUTOGEN_PARALLEL is empty or unset (which is the default)
      the thread count is set to the number of physical CPUs on
      the host system.
      
      The AUTOMOC/AUTOUIC generator and the AUTORCC generator are
      refactored to use a libuv loop internally.
      
      Closes #17422.
      a008578d
  13. 10 Jan, 2018 2 commits
    • Sebastian Holtermann's avatar
      Autogen: Ignore not existing source files in cmMakefile · d592bfc9
      Sebastian Holtermann authored
      Until CMake 3.10 a list of source files that had the AUTOUIC_OPTIONS property
      populated was kept in `cmMakefile::QtUiFilesWithOptions`.  In the process to
      remove all AUTOUIC related code from `cmMakefile` for CMake 3.10, the pre
      filtered list was replaced by a loop in `cmQtAutoGeneratorInitializer` over
      all source files in the `cmMakefile`.  This loop introduced the problem that
      file paths were computed for source files that weren't in the target's sources
      and that might not even have existed.  If the path for an unused and not
      existing file was computed a `cmake::FATAL_ERROR` with the error message
      "Cannot find source file:" was thrown nevertheless.
      This caused some projects to fail in CMake 3.10.
      
      This patch adds a test for path errors in the loops in
      `cmQtAutoGeneratorInitializer` that iterate over all source files in a
      `cmMakefile`. If a path error appears, the file is silently ignored.
      If the file is part of the target's sources, the path error will still be
      caught in the loop over all the target's sources.
      
      This is the fix for CMake 3.10.1.
      d592bfc9
    • Sebastian Holtermann's avatar
      Autogen: Ignore not existing source files in cmMakefile · 513eb014
      Sebastian Holtermann authored
      Until CMake 3.10 a list of source files that had the AUTOUIC_OPTIONS property
      populated was kept in `cmMakefile::QtUiFilesWithOptions`.  In the process to
      remove all AUTOUIC related code from `cmMakefile` for CMake 3.10, the pre
      filtered list was replaced by a loop in `cmQtAutoGeneratorInitializer` over
      all source files in the `cmMakefile`.  This loop introduced the problem that
      file paths were computed for source files that weren't in the target's sources
      and that might not even have existed.  If the path for an unused and not
      existing file was computed a `cmake::FATAL_ERROR` with the error message
      "Cannot find source file:" was thrown nevertheless.
      This caused some projects to fail in CMake 3.10.
      
      This patch adds a test for path errors in the loops in
      `cmQtAutoGeneratorInitializer` that iterate over all source files in a
      `cmMakefile`. If a path error appears, the file is silently ignored.
      If the file is part of the target's sources, the path error will still be
      caught in the loop over all the target's sources.
      
      Closes #17573
      Closes #17589
      513eb014
  14. 07 Dec, 2017 2 commits
  15. 20 Nov, 2017 1 commit
  16. 19 Nov, 2017 6 commits
  17. 27 Oct, 2017 1 commit
  18. 09 Oct, 2017 1 commit
  19. 29 Sep, 2017 1 commit
  20. 28 Sep, 2017 2 commits
  21. 25 Sep, 2017 2 commits
  22. 13 Sep, 2017 1 commit
    • Sebastian Holtermann's avatar
      Autogen: Backport autogen target dependency as file dependency fix · d0f15817
      Sebastian Holtermann authored
      Target dependencies of the origin target were mistakenly forwarded to
      the _autogen target as *file* dependencies.  This patch introduces
      proper distinction between *target* and *file* dependencies of the
      _autogen target.
      
      This patch also changes when PRE_BUILD is used for AUTOGEN in the Visual
      Studio generator. Formerly PRE_BUILD was disabled when the origin target
      depended on *any* other target. Now PRE_BUILD is only disabled if a
      dependency of the _autogen target to an additional *file* is detected.
      
      Fixes: #17278, #17205
      d0f15817
  23. 12 Sep, 2017 1 commit
  24. 09 Sep, 2017 1 commit
  25. 07 Sep, 2017 3 commits