| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
9cfa213a Autogen: Rename cmQtAutogeneratorInitializer to cmQtAutoGenInitializer
79908ae4 Autogen: Add release notes for (CMAKE_)AUTOGEN_PARALLEL
45ee4979 Autogen: Add documentation for (CMAKE_)AUTOGEN_PARALLEL
6f4b6613 Autogen: Tests: Add AUTOGEN_PARALLEL tests
a008578d Autogen: Process files concurrently in AUTOMOC and AUTOUIC
488baaf0 Autogen: Tests: Fix MocInclude test(s)
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1632
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
a6e9b9c9 CTest: Fix process output read error cases
c10119df CTest: Fix decoding of MBCS character split by buffering
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1667
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The libuv documentation states that the stream read callback may
be called with `nread == 0` for EAGAIN. Handle this gracefully.
It also states that the callee is responsible for closing the
stream on error. Always close the stream for `nread < 0`.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Use a single `cmProcessOutput` instance persistently to decode
all output of a test process so that partial character bytes
can be buffered.
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
2bd232b5 Ninja: Fixes CUDA device link in Windows
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1662
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
nvcc in linker mode doesn't support response files
Fixes: #17644
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
46abfedb CUDA: MSVC will now state files are cuda files when needed
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1658
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The MSVC CUDA build customizations before CUDA 9 would not explicitly
add the -x cu option when building. This caused .cpp and .c files
invoked with CudaCompile to be compiled as host code and not
cuda. Now when we detect CUDA < 9 we will explicitly add this
option to correct this bug.
|
| | | | | |
|
|\ \ \ \ \
| |_|_|_|/
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
969c1f94 cmSourceGroup: code improvements; use std::string and C++11 loops
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1656
|
| | | | |
| | | | |
| | | | |
| | | | | |
Topic-rename: cmSourceGroup-modern-cxx
|
| |_|_|/
|/| | | |
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
506fda1c Genex: Enable COMPILE_LANGUAGE for INCLUDE_DIRECTORIES with VS and Xcode
c2f79c98 Genex: Enable COMPILE_LANGUAGE for COMPILE_DEFINITIONS with VS and Xcode
0795d25b cmVisualStudio10TargetGenerator: Factor out include dir computation
1ab4d186 cmLocalVisualStudio7Generator: Clarify variable name of compiled language
07e1a743 cmLocalVisualStudio7Generator: Clarify condition for target that compiles
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1657
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The set of compile flags used for a target's C and C++ sources is based
on the linker language. By default this is always the C++ flags if any
C++ sources appear in the target, and otherwise the C flags. Therefore
we can define the `COMPILE_LANGUAGE` generator expression in
`INCLUDE_DIRECTORIES` to match the selected language.
This is not exactly the same as for other generators, but is the best VS
and Xcode can do. It is also sufficient for many use cases since the
set of include directories for C and C++ is frequently similar but may
be distinct from those for other languages like CUDA.
Fixes: #17435
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The set of compile flags used for a target's C and C++ sources is based
on the linker language. By default this is always the C++ flags if any
C++ sources appear in the target, and otherwise the C flags. Therefore
we can define the `COMPILE_LANGUAGE` generator expression in
`COMPILE_DEFINITIONS` to match the selected language.
This is not exactly the same as for other generators, but is the best VS
and Xcode can do. It is also sufficient for many use cases since the
set of definitions for C and C++ is frequently similar but may be
distinct from those for other languages like CUDA.
Issue: #17435
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| |_|_|/
|/| | | |
|
| | | | |
|
| | | | |
|
| |_|/
|/| | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
dcc606ad CUDA: Allow -G to control device debuging on MSVC.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1619
|
| | | |
| | | |
| | | |
| | | | |
Fixes #17551
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
d6dfde3c cmSourceFile: mark known locations as such
b0716fbc cmSourceFileLocation: allow skipping ambiguous extensions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1646
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Primarily, this includes:
- the rule files generated for custom targets;
- source files representing custom targets directly;
- outputs of custom commands;
- byproducts of custom commands; and
- dependencies of custom commands.
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The ambiguous extension logic is an old behavior that ends up taking
lots of extra compute cycles to execute. This is triggered by various
CMake codepaths which pass extension-less paths down when CMake actually
knows that they are not ambiguous. These codepaths will be indicated in
upcoming changes.
Various APIs have gained a cmSourceFileLocationKind parameter, but they
are all optional and default to the existing behavior.
|
| | | | |
|
|\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
b5e21d7d CTest: Re-implement test process handling using libuv
fcebff75 cmProcess: Use explicit enum for process exit exception
3dd2edf4 cmProcess: Use explicit enum for process state
5238e6db cmProcess: Remove unused ReportStatus method
c13b68e6 cmCTestRunTest: Modernize constructor and destructor decls
4d6b0903 cmCTestRunTest: Drop unused members
05da65bc cmCTestMultiProcessHandler: Factor out duplicate test finish logic
dd945345 cmCTestMultiProcessHandler: Add helper to make libuv use SA_RESTART
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1455
|
| | | |
| | | |
| | | |
| | | | |
Co-Author: Brad King <brad.king@kitware.com>
|
| | | |
| | | |
| | | |
| | | | |
Translate the values from KWSys Process.
|
| | | |
| | | |
| | | |
| | | | |
Translate the values from KWSys Process.
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Prior to 1.19, libuv does not use SA_RESTART in its signal handler.
Add a helper to cause libuv to install its handler and then revise
the handler's flags to add SA_RESTART.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If `StartTestProcess` does not start a test, propagate this information
back up to the `StartNextTests` loop so that it can move on to another
candidate without allocating processors to a test that didn't run.
Otherwise we have to wait for the next time `RunTests` loops around and
calls `StartNextTests` again.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Avoid creating a cmCTestRunTest instance if the stop time has been
reached. If the stop time occurs in the small time between creating an
instance and computing the child process timeout, we will simply compute
a zero timeout. This is already done for the case that we StartAgain
after the stop time.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Calculate the stop time up front instead of re-parsing its string for
every test.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This member was added by commit v2.8.2~285 (Better detection of
stop_time being passed, 2010-03-19), but its logic has no effect.
The member is only used for comparison against a value to which
it was just assigned.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
be304fb8 Merge branch 'backport-autogen-nexist-source-fix' into autogen-nexist-source-fix
d592bfc9 Autogen: Ignore not existing source files in cmMakefile
513eb014 Autogen: Ignore not existing source files in cmMakefile
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1651
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
efd279cd cmake: specify source file extensions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1645
|
| | |/ / /
| |/| | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
a91fde13 CUDA: gencode signature that list multiple code types now supported.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1618
|
| | |_|_|/
| |/| | |
| | | | |
| | | | | |
Fixes #17263
|