1. 30 May, 2018 1 commit
  2. 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
  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.
      a008578d
  4. 19 Nov, 2017 3 commits
    • Sebastian Holtermann's avatar
      Autogen: Detect rcc feature once during configuration · ab9d5896
      Sebastian Holtermann authored
      We used to detect the `rcc` features before every `rcc` list invocation
      wich resulted in `rcc` be called twice for every listing operation.
      
      Now we detect the `rcc` list capabilities once during configuration and
      pass it to the cmake_autorcc target in the info file.
      ab9d5896
    • Sebastian Holtermann's avatar
      Autogen: Add and use cmQtAutoGenerator base class · 75819b86
      Sebastian Holtermann authored
      Adds the new base class `cmQtAutoGenerator` which contains common
      variables and methods used by `cmQtAutoGeneratorMocUic` and
      `cmQtAutoGeneratorRcc`.
      75819b86
    • Sebastian Holtermann's avatar
      Autogen: Introduce standalone RCC generator class · b2a0b549
      Sebastian Holtermann authored
      Introduces the standalone RCC generator class `cmQtAutoGeneratorRcc`.
      
      Every instance of `cmQtAutoGeneratorRcc` class handles the
      `rcc` invocation for a single `.qrc` file.
      The class will be used in the future to allow parallel `.qrc` file
      processing by calling `cmake -E cmake_autorcc <INFO_FILE> <CONFIG>`.
      b2a0b549