summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'autogen-parallel'Brad King2018-01-1814-2297/+3645
|\ | | | | | | | | | | | | | | | | | | | | | | 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
| * Autogen: Rename cmQtAutogeneratorInitializer to cmQtAutoGenInitializerSebastian Holtermann2018-01-175-30/+30
| |
| * Autogen: Process files concurrently in AUTOMOC and AUTOUICSebastian Holtermann2018-01-1711-2271/+3619
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge topic 'ctest-libuv-output-decode'Brad King2018-01-182-9/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | 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
| * | CTest: Fix process output read error casesBrad King2018-01-171-0/+5
| | | | | | | | | | | | | | | | | | | | | 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`.
| * | CTest: Fix decoding of MBCS character split by bufferingBrad King2018-01-172-9/+10
| | | | | | | | | | | | | | | | | | Use a single `cmProcessOutput` instance persistently to decode all output of a test process so that partial character bytes can be buffered.
* | | Merge topic 'fix_ninja_cuda'Brad King2018-01-181-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 2bd232b5 Ninja: Fixes CUDA device link in Windows Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1662
| * | | Ninja: Fixes CUDA device link in WindowsFrancisco Facioni2018-01-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | nvcc in linker mode doesn't support response files Fixes: #17644
* | | | Merge topic 'msvc_cuda_8_explicitly_specify_cuda_language'Brad King2018-01-181-0/+11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 46abfedb CUDA: MSVC will now state files are cuda files when needed Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1658
| * | | | CUDA: MSVC will now state files are cuda files when neededRobert Maynard2018-01-121-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | CMake Nightly Date StampKitware Robot2018-01-181-1/+1
| | | | |
* | | | | Merge topic 'cmSourceGroup-modern-cxx'Craig Scott2018-01-173-46/+24
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | 969c1f94 cmSourceGroup: code improvements; use std::string and C++11 loops Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1656
| * | | | cmSourceGroup: code improvements; use std::string and C++11 loopsVitaly Stakhovsky2018-01-113-46/+24
| | | | | | | | | | | | | | | | | | | | Topic-rename: cmSourceGroup-modern-cxx
* | | | | CMake Nightly Date StampKitware Robot2018-01-171-1/+1
| |_|_|/ |/| | |
* | | | Merge topic 'extend-compile-language-genex'Brad King2018-01-165-79/+102
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-125-63/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-125-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | | | |
* | | | | 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-121-0/+6
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 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-111-0/+6
| | | | | | | | | | | | | | | | 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-118-411/+876
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | 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
| * | | | 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 'specify-source-extensions'Brad King2018-01-111-13/+13
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | efd279cd cmake: specify source file extensions Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1645
| * | | | | cmake: specify source file extensionsBen Boeckel2018-01-091-13/+13
| | |/ / / | |/| | |
* | | | | Merge topic 'cuda_msvc_support_complex_gencode_signatures'Brad King2018-01-111-8/+20
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a91fde13 CUDA: gencode signature that list multiple code types now supported. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !1618
| * | | | | CUDA: gencode signature that list multiple code types now supported.Robert Maynard2018-01-101-8/+20
| | |_|_|/ | |/| | | | | | | | | | | | | Fixes #17263