1. 11 Nov, 2018 1 commit
  2. 03 Nov, 2018 1 commit
    • Sebastian Holtermann's avatar
      Autogen: Add (CMAKE_)AUTOGEN_ORIGIN_DEPENDS support · b5e895b5
      Sebastian Holtermann authored
      This adds
      
      - the variable ``CMAKE_AUTOGEN_ORIGIN_DEPENDS`` which initializes
      - the target property ``AUTOGEN_ORIGIN_DEPENDS``
      
      which controls whether or not the origin target dependencies
      should be forwarded to the corresponding ``_autogen`` target.
      
      The default value of ``CMAKE_AUTOGEN_ORIGIN_DEPENDS`` is ``ON``
      which corresponds to the behavior that is in place since CMake 3.9.
      
      Closes: #18493
      b5e895b5
  3. 18 Oct, 2018 1 commit
  4. 10 Oct, 2018 1 commit
    • Brad King's avatar
      cmLocalGenerator: Remove AddCompileDefinitions method · 8f076acd
      Brad King authored
      This method offers the same definitions as `GetTargetDefines` except
      that it excludes the "export" macro on shared libraries.  Update call
      sites to use `GetTargetDefines` instead.  Some of them were incorrectly
      excluding the export macro.
      8f076acd
  5. 18 Sep, 2018 1 commit
  6. 05 Sep, 2018 1 commit
  7. 27 Aug, 2018 1 commit
  8. 13 Aug, 2018 2 commits
  9. 07 Aug, 2018 1 commit
    • Sebastian Holtermann's avatar
      cmGeneratedFileStream: clang-tidy applied to remove redundant ``c_str`` calls · b6802cd5
      Sebastian Holtermann authored
      After changing the ``cmGeneratedFileStream`` methods to accept
      ``std::string const&`` instead of ``const char*`` we don't
      need to call ``std::string::c_str`` anymore when passing
      a ``std::string`` to a ``cmGeneratedFileStream`` method.
      
      This patch removes all redundant ``std::string::c_str``
      calls when passing a string to a ``cmGeneratedFileStream`` method.
      
      It was generated by building CMake with clang-tidy enabled using
      the following options:
      
      -DCMAKE_CXX_CLANG_TIDY=/usr/bin/clang-tidy-4.0;-checks=-*,readability-redundant-string-cstr;-fix;-fix-errors
      b6802cd5
  10. 30 Jul, 2018 5 commits
  11. 11 Jul, 2018 3 commits
  12. 02 Jul, 2018 1 commit
  13. 21 Jun, 2018 1 commit
  14. 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
  15. 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
  16. 14 May, 2018 1 commit
  17. 06 Feb, 2018 1 commit
  18. 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
  19. 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
  20. 23 Jan, 2018 1 commit
  21. 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
  22. 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
  23. 07 Dec, 2017 2 commits
  24. 20 Nov, 2017 1 commit
  25. 19 Nov, 2017 5 commits