1. 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
      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
  2. 18 Jan, 2018 1 commit
  3. 17 Jan, 2018 1 commit
    • 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.
  4. 03 Jan, 2018 1 commit
  5. 19 Nov, 2017 5 commits
  6. 03 Nov, 2017 1 commit
    • luz.paz's avatar
      Fix trivial typos in text · 777e87ae
      luz.paz authored
      Some are user facing.
      Found using
          codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt`
      whereby the whitelist contained:
  7. 31 Oct, 2017 2 commits
  8. 30 Oct, 2017 1 commit
  9. 28 Oct, 2017 1 commit
  10. 27 Sep, 2017 1 commit
  11. 25 Sep, 2017 2 commits
  12. 20 Sep, 2017 2 commits
    • Sebastian Holtermann's avatar
    • Sebastian Holtermann's avatar
      Autogen: Refactor cmQtAutoGenerators · 15346bec
      Sebastian Holtermann authored
      The refactoring of cmQtAutoGenerators serializes the program flow and
      makes it less jumpy in terms of function calling.
      Instead of keeping and passing multiple std::vectors and std::maps in
      function arguments, single lists with job descriptions are used,
      one job list for MOC, UIC, RCC respectively.
      Several utility functions and methods were replaced with scoped lambdas
      and the remaining methods were sorted by their scope (MOC, UIC, RCC).
      Error and warning messages were refactored to be more verbose
      about the problem at hand.
      The source parsing algorithms were rewritten in large parts.
      In the process a lack of functionality of CMAKE_AUTOMOC_DEPEND_FILTERS
      was discovered and fixed. CMAKE_AUTOMOC_DEPEND_FILTERS did not extract
      dependency file names from headers that were not in the target sources
      but were registered to AUTOMOC by a `#include "moc_<NAME>.cpp"` statement.
      A test for this use case is provided in a follow up commit.
  13. 12 Sep, 2017 1 commit
  14. 07 Sep, 2017 12 commits
  15. 30 Aug, 2017 1 commit
  16. 26 Aug, 2017 1 commit
  17. 24 Aug, 2017 1 commit
  18. 18 Aug, 2017 1 commit
  19. 15 Aug, 2017 1 commit
    • Sebastian Holtermann's avatar
      Autogen: Restore AUTOUIC lookup paths from 3.8.2 · 02e6c548
      Sebastian Holtermann authored
      When encountering an `#include "<PATH>ui_<BASE>.h"` statement,
      search for `<BASE>.ui` in
       - <SOURCE_DIR>/<BASE>.ui
       - <SOURCE_DIR>/<PATH><BASE>.ui
      In CMake 3.8.2 the lookup list was
        - <SOURCE_DIR>/<BASE>.ui
      In CMake 3.9.[01] the lookup list was
       - <SOURCE_DIR>/<PATH><BASE.ui>
      Closes #17168
  20. 12 Aug, 2017 1 commit
  21. 08 Aug, 2017 1 commit
  22. 05 Aug, 2017 1 commit
    • Sebastian Holtermann's avatar
      Autogen: Generate rcc wrapper file on demand · 6d83757f
      Sebastian Holtermann authored
      For multi configuration generators remove per-config
      qrc_FOO_$<CONFIG>.cpp source file support.
      Instead use a single source file qrc_FOO.cpp which is a wrapper
      that includes the actual rcc generated qrc_FOO_CONFIG.cpp file.
      This way, after a repeated configuration change, only the wrapper file
      qrc_FOO.cpp must be regenerated to include the appropriate
      qrc_FOO_CONFIG.cpp file.