| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The class name `cmQtAutoGeneratorMocUic` is long and cumbersome. This renames
it to `cmQtAutoMocUic`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This factors out the concurrency framework in `cmQtAutoGeneratorMocUic` to a
dedicated class `cmWorkerPool` which might be reused in other places.
`cmWorkerPool` supports fence jobs that require that
- all other jobs before in the queue have been processed before the fence
job processing gets started,
- no jobs later in the queue will be processed before the fence job processing
has been completed.
Fence jobs are needed where the completion of all previous jobs in the queue
is a requirement for further processing. E.g. in `cmQtAutoGeneratorMocUic`
the generation of `mocs_compilation.cpp` requires that all previous
source file parse jobs have been completed.
|
|
|
|
|
|
|
|
| |
`cmQtAutoGenerator` automatically started a libuv loop in the constructor.
The loop is needed in `cmQtAutoGeneratorMocUic`, but not in
`cmQtAutoGeneratorRcc` (anymore). To avoid starting the loop in
`cmQtAutoGeneratorRcc`, this patch moves the loop variables and startup code
from `cmQtAutoGenerator` to `cmQtAutoGeneratorMocUic`.
|
|
|
|
|
|
|
|
|
|
|
|
| |
`cmQtAutoGenerator::FileSystem` used to have a reference to a
`cmQtAutoGenerator::Logger` instances. This was used for utility methods
that automatically generated an error message on demand. Unfortunately this
resulted in double error messages in some places. To fix these and with
the additional purpose of removing the dependency of
`cmQtAutoGenerator::FileSystem` to `cmQtAutoGenerator::Logger`, this patch
removes the `Logger` reference in `cmQtAutoGenerator::FileSystem`.
In the process some silent error conditions gained error messages and
some existing error messages were extended.
|
|
|
|
|
|
|
| |
`cmQtAutoGenerator` automatically added `cmQtAutoGenerator::Logger` and
`cmQtAutoGenerator::FileSystem` member variables to all inherited classes.
This patch moves these members variable declarations to the inherited classes,
where needed.
|
|
|
|
|
|
|
|
|
|
|
|
| |
If by some chance the moc executable does not exist while running
AUTOMOC, instead of showing an error, the CMake Autogen invocation
hangs indefinitely.
This happens because UVProcessFinished() is not called if the process
does not launch correctly.
Make sure to call UVProcessFinished() even if the process launch fails,
and also report the error returned by libuv.
|
|
|
|
|
|
|
|
|
|
|
| |
`CollapseCombinedPath` was introduced by commit 551d3343cd (cmDependsC:
Collapse relative include paths, 2013-06-19, v2.8.12~237^2) where the
existing `CollapseFullPath` should have been used instead. Then its use
proliferated slightly. Since `CollapseCombinedPath` is less widely used
and less robust (see issue #19049), use `CollapseFullPath` everywhere
instead.
Issue: #19050
|
|
|
|
|
|
|
|
| |
The computation of additional source headers and and private headers for
AUTOGEN is moved from the _autogen target to the configuration stage. This
makes them available for _autogen target dependency computations.
Closes: #18949
|
|
|
|
|
|
|
| |
In AUTOGEN this replaces simple file name lists with two list (for
headers and sources) of structs with file name and file flags.
The file name lists that are passed to the _autogen target via
AutogenInfo.cmake are filtered from these two lists.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds support for AUTOMOC to moc header files with the same but different
extensions (e.g `obj.h`, `obj.hpp`, `obj.hxx`). If a moc file would appear
multiple times in `mocs_compilation.cpp`, a number suffix is appended
to the name to make it unique.
Closes #14489
|
| |
|
|
|
|
|
|
| |
Suppress some cases in `Source/cmGeneratorExpressionNode.cxx` and
`Source/cmUVHandlePtr.h` where a few older compilers require a
user-defined default constructor (with `{}`).
|
|\
| |
| |
| |
| |
| |
| | |
25caf7bafe cmMakefile::ReadListFile() accepts std::string argument
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2821
|
| |
| |
| |
| | |
Same for cmMakefile::ReadDependentFile(); some cleanup
|
|/ |
|
|
|
|
|
| |
IWYU now correctly requires `<utility>` for `std::move`. It also
requires a container header when used via a range-based for loop.
|
| |
|
|
|
|
|
|
|
|
| |
On Windows systems we used to add a "-DWIN32" definition to the ``moc``
defines. This is not necessary anymore when we have a
``moc_predefs.h`` file that provides all compiler predefines.
Closes #18623
|
| |
|
| |
|
|
|
|
|
| |
Setting CMAKE_AUTOGEN_VERBOSE enables verbose output during
AUTOMOC, AUTOUIC and AUTORCC generation.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
| |
No functional changes, just docs, comments and error messages.
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
b11e2c80b1 Autogen: Print moc/uic/rcc output to stdout
1d2c9d8c6d Autogen: Use std::istreambuf_iterator for file so string reading
ccc38fa509 Autogen: Protected calls to cmFilePathChecksum
719b24c872 Autogen: Protected calls to cmQtAutoGen::SubDirPrefix
9a73615815 Autogen: Protected calls to cmSystemTools::GetFilenameWithoutLastExtension
65203ce407 Autogen: Protected calls to cmSystemTools::Split/JoinPath
14a86c9ea7 Autogen: Protected calls to cmSystemTools::CollapseCombinedPath
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1918
|
| |
| |
| |
| |
| |
| |
| |
| | |
The output of moc/uic/rcc used to be discarded unless
the program failed. This lets moc/uic/rcc print their
output to stdout even on success.
Closes #17860
|
| |
| |
| |
| |
| | |
Closes #17861
Closes #17862
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
| |
Found via `codespell -q 3 -I ../cmake-whitelist.txt`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
When moc/uic include was found on the first line of
a file it was ignored. This fixes the issue by extending
the regular expression for include detection.
Closes #17655
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Some are user-facing. Others are source comments.
|
| |
|
|
|
|
|
| |
Remove the cmQtAutoGenDigest classes and make
cmQtAutoGeneratorInitializer instantiable instead.
|
|
|
|
|
|
| |
Adds the new base class `cmQtAutoGenerator` which contains common
variables and methods used by `cmQtAutoGeneratorMocUic` and
`cmQtAutoGeneratorRcc`.
|
|
|