summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Autogen: Process files concurrently in AUTOMOC and AUTOUICSebastian Holtermann2018-01-1713-2275/+3620
| | | | | | | | | | | | | | | | | | | | | | 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.
* Autogen: Tests: Fix MocInclude test(s)Sebastian Holtermann2018-01-179-0/+18
|
* Merge topic 'fix-documentation'Brad King2018-01-171-2/+4
|\ | | | | | | | | | | | | 60216e15 Help: Improved MAIN_DEPENDENCY documentation of add_custom_command() Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1665
| * Help: Improved MAIN_DEPENDENCY documentation of add_custom_command()Christoph Ruediger2018-01-161-2/+4
| |
* | CMake Nightly Date StampKitware Robot2018-01-171-1/+1
| |
* | Merge topic 'extend-compile-language-genex'Brad King2018-01-1633-247/+219
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | Genex: Enable COMPILE_LANGUAGE for INCLUDE_DIRECTORIES with VS and XcodeBrad King2018-01-1221-144/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | Genex: Enable COMPILE_LANGUAGE for COMPILE_DEFINITIONS with VS and XcodeBrad King2018-01-1224-115/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | cmVisualStudio10TargetGenerator: Factor out include dir computationBrad King2018-01-112-6/+16
| | |
| * | cmLocalVisualStudio7Generator: Clarify variable name of compiled languageBrad King2018-01-111-4/+6
| | |
| * | cmLocalVisualStudio7Generator: Clarify condition for target that compilesBrad King2018-01-111-1/+1
| | |
* | | Merge topic 'CheckIncludeFile-required-libs'Brad King2018-01-164-0/+20
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | f74c2580 CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1620
| * | | CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIESDon Hinton2018-01-104-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is needed when cross compiling and the compiler requires a specific linker different from the default, e.g., when cross compiling from Darwin to Linux and passing `-fuse-ld=lld` to clang. Fixes: #9514
* | | | Merge topic 'gnu-visibility-aix'Brad King2018-01-164-6/+13
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | e1f0518d GNU: Use -fvisibility on AIX when supported eae0a85d Tests: Remove redundant code from RunCMake.GenerateExportHeader case Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1659
| * | | GNU: Use -fvisibility on AIX when supportedBrad King2018-01-122-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revise the logic from commit v3.7.0-rc1~173^2~2 (GNU: Do not use -fvisibility on AIX or HP-UX, 2016-09-03) to add a version check. The GCC 7 release notes [1] state that visibility support has been added for AIX 7.1 and above. [1] https://gcc.gnu.org/gcc-7/changes.html
| * | | Tests: Remove redundant code from RunCMake.GenerateExportHeader caseBrad King2018-01-122-4/+0
| | | | | | | | | | | | | | | | | | | | Drop extra `add_compiler_export_flags` calls from subdirectories because it is already called in the top-level directory before entering them.
* | | | CMake Nightly Date StampKitware Robot2018-01-161-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2018-01-151-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2018-01-141-1/+1
| | | |
* | | | CMake Nightly Date StampKitware Robot2018-01-131-1/+1
|/ / /
* | | Merge topic 'cuda_allow_G_to_device_debugging_on_msvc'Brad King2018-01-124-1/+97
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | dcc606ad CUDA: Allow -G to control device debuging on MSVC. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1619
| * | | CUDA: Allow -G to control device debuging on MSVC.Robert Maynard2018-01-114-1/+97
| | | | | | | | | | | | | | | | Fixes #17551
* | | | Merge topic 'avoid-ambiguous-extension-logic-for-known-paths'Brad King2018-01-129-25/+70
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d6dfde3c cmSourceFile: mark known locations as such b0716fbc cmSourceFileLocation: allow skipping ambiguous extensions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1646
| * | | | cmSourceFile: mark known locations as suchBen Boeckel2018-01-103-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | cmSourceFileLocation: allow skipping ambiguous extensionsBen Boeckel2018-01-109-18/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | CMake Nightly Date StampKitware Robot2018-01-121-1/+1
| | | | |
* | | | | Merge topic 'ctest-libuv'Brad King2018-01-119-412/+882
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | CTest: Re-implement test process handling using libuvBryon Bean2018-01-106-195/+695
| | | | | | | | | | | | | | | | | | | | Co-Author: Brad King <brad.king@kitware.com>
| * | | | cmProcess: Use explicit enum for process exit exceptionBryon Bean2018-01-103-7/+33
| | | | | | | | | | | | | | | | | | | | Translate the values from KWSys Process.
| * | | | cmProcess: Use explicit enum for process stateBryon Bean2018-01-103-13/+40
| | | | | | | | | | | | | | | | | | | | Translate the values from KWSys Process.
| * | | | cmProcess: Remove unused ReportStatus methodBryon Bean2018-01-102-61/+0
| | | | |
| * | | | cmCTestRunTest: Modernize constructor and destructor declsBryon Bean2018-01-102-6/+3
| | | | |
| * | | | cmCTestRunTest: Drop unused membersBryon Bean2018-01-101-8/+0
| | | | |
| * | | | cmCTestMultiProcessHandler: Factor out duplicate test finish logicBryon Bean2018-01-102-36/+38
| | | | |
| * | | | cmCTestMultiProcessHandler: Add helper to make libuv use SA_RESTARTBrad King2018-01-101-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | cmCTestMultiProcessHandler: Fix StartNextTests loop on not-started testBrad King2018-01-082-19/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | cmCTestMultiProcessHandler: Check stop time more directlyBrad King2018-01-083-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | cmCTestRunTest: Subsume ResolveTimeout into only call siteBrad King2018-01-082-29/+18
| | | | |
| * | | | cmCTest: Refactor stop time calculationsBrad King2018-01-083-82/+42
| | | | | | | | | | | | | | | | | | | | | | | | | Calculate the stop time up front instead of re-parsing its string for every test.
| * | | | cmCTest: Remove unused member LastStopTimeoutBrad King2018-01-083-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | libuv: unix: restart syscalls interrupted by our signal handlerBrad King2018-01-081-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BSD `signal(2)` semantics make some system calls (e.g. for `write`) restartable when interrupted by a signal handler. Use `SA_RESTART` to enable these semantics everywhere that supports them. This is required by C++ stream libraries that interpret `EINTR` as any other error, set `badbit`, and stop writing. I've observed this with `libstdc++` during a `std::cout.flush()` call interrupted by `SIGCHLD`.
* | | | | Merge branch 'release-3.10'Brad King2018-01-110-0/+0
|\ \ \ \ \
| * \ \ \ \ Merge branch 'backport-autogen-nexist-source-fix' into release-3.10Brad King2018-01-101-5/+17
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Merge-request: !1650
* | \ \ \ \ \ Merge topic 'autogen-nexist-source-fix'Brad King2018-01-111-4/+17
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * \ \ \ \ \ \ Merge branch 'backport-autogen-nexist-source-fix' into autogen-nexist-source-fixBrad King2018-01-110-0/+0
| |\ \ \ \ \ \ \ | | | |/ / / / / | | |/| | | | |
| | * | | | | | Autogen: Ignore not existing source files in cmMakefileSebastian Holtermann2018-01-101-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | | Autogen: Ignore not existing source files in cmMakefileSebastian Holtermann2018-01-101-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | | | | Merge topic 'msvc-asm'Brad King2018-01-111-0/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6c3f374e MSVC: Avoid warning when enabling ASM language with C compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1655
| * | | | | | | | MSVC: Avoid warning when enabling ASM language with C compilerBrad King2018-01-101-0/+1
| | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `CMakeASMInformation` module warns when no compiler-specific module is found for the `ASM` language. Add a minimal `Compiler/MSVC-ASM` module to avoid the warning for MSVC. Fixes: #17532
* | | | | | | | Merge topic 'specify-source-extensions'Brad King2018-01-113-25/+27
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | efd279cd cmake: specify source file extensions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1645