summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* LexerParser: Do not override existing _POSIX_C_SOURCE definitionBrad King2021-02-051-1/+1
| | | | | | | | | | In commit f034b0f663 (CMake compilation: do not use compiler extensions, 2020-03-14, v3.18.0-rc1~494^2) we explicitly defined `_POSIX_C_SOURCE` to ensure availability of POSIX APIs even when compiler extensions are not enabled. Update the code to avoid redefining `_POSIX_C_SOURCE` if it is already defined. This occurs when building our release binaries as configured in `Utilities/Release/linux`, where we define `_POSIX_C_SOURCE` explicitly on the compiler command line.
* Merge branch 'backport-ninja-no-cleandead' into release-3.18Brad King2020-12-142-15/+1
|\ | | | | | | Merge-request: !5614
| * Ninja: Remove cleandead on regenerationBrad King2020-12-142-15/+1
| | | | | | | | | | | | | | | | | | | | | | Remove the `cleandead` tool invocation added by commit fb18215904 (Ninja: clean ninja metadata once generated, 2019-05-13, v3.17.0-rc1~207^2). The tool deletes files that were not previously deleted by regenerating the build system. Also, there are use cases where no-longer-generated files should not be removed, such as Qt's TS files. Fixes: #21549
| * CMake 3.17.5v3.17.5Brad King2020-09-151-1/+1
| |
* | CMake 3.18.5v3.18.5Brad King2020-11-181-1/+1
| |
* | VS: Don't compute CUDA options unless necessaryRaul Tambre2020-10-273-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the following scenario (with 3.18 policies): 1. A CXX target is created. 2. CUDA language is enabled. CMake 3.18 introduced CMP0104, which requires CUDA_ARCHITECTURES to be set. Because the CXX target was created before CUDA was enabled it wouldn't have it set. The Visual Studio generator would however end up computing CUDA compile options for the CXX target, which would result in a fatal error due to the policy violation. There doesn't seem to be a reason to do this for targets that don't actually use the CUDA language, so we can skip and generate the CXX target just fine. Fixes: #21341
* | Merge branch 'ninja-multi-per-config-sources' into release-3.18Brad King2020-10-261-1/+3
|\ \ | | | | | | | | | Merge-request: !5430
| * | Ninja Multi-Config: Don't try to calculate dependencies for "all"Kyle Edwards2020-10-261-1/+3
| | |
* | | cmake: Fix '-E cat' command for binary files on WindowsJohnny Jazeix2020-10-143-7/+26
| | | | | | | | | | | | | | | | | | | | | Reset `std::cout` to write in binary mode with no encoding conversions. Co-Author: Brad King <brad.king@kitware.com> Fixes: #21295
* | | cmConsoleBuf: Factor out cout/cerr console buffer managementBrad King2020-10-147-36/+65
| | |
* | | clang-format: Fix include block order in ctest.cxx and cpack.cxxBrad King2020-10-142-13/+14
|/ /
* | CMake 3.18.4v3.18.4Brad King2020-10-061-1/+1
| |
* | VS: Fix regression in C# source linksKinan Mahdi2020-10-051-1/+8
| | | | | | | | | | | | Fix logic used since commit ac6b18cd90 (CSharp: Add support for source groups with out-of-source builds, 2020-02-18, v3.18.0-rc1~645^2). Add a check of the physical file location for C# source groups.
* | CMake 3.18.3v3.18.3Brad King2020-09-221-1/+1
| |
* | Merge topic 'foreach-int-parse-range-check' into release-3.18Brad King2020-09-211-0/+6
|\ \ | | | | | | | | | | | | | | | | | | 0412b55b83 foreach: Fix crash parsing integer out of range Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5239
| * | foreach: Fix crash parsing integer out of rangeBen McMorran2020-09-181-0/+6
| | |
* | | Ninja Multi-Config: Fix dependencies of custom commandsKyle Edwards2020-09-171-0/+1
|/ / | | | | | | | | | | | | | | | | | | a9fd3a10 addressed the scenario where the depending target is a utility target, but not the scenario where the dependent target is a utility target. Account for this scenario. Also add a Qt-specific test case. Fixes: #21118
* | file(GENERATE): Create output file structures for all directories firstJosef Angstenberger2020-09-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 36ded610af (PCH: Generate sources during Compute step, 2019-10-05, v3.16.0-rc1~2^2) the source file lookup is done earlier than before. Its parent commit f1fb63b306 (file(GENERATE): Create output file structures even earlier, 2019-10-07, v3.16.0-rc1~2^2~1) prepared for that. However, that commit did not account for generating and using files in separate subdirectories. Fix this by evaluating all generated files before adding automatic files. Fixes: #21144
* | Merge topic 'automoc-rerun-missing-dependency' into release-3.18Brad King2020-09-101-7/+15
|\ \ | | | | | | | | | | | | | | | | | | 9ac3503d30 AutoMoc: Re-run moc if a dependency is missing Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5180
| * | AutoMoc: Re-run moc if a dependency is missingJoerg Bornemann2020-09-091-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AutoMoc uses the moc-emitted dependency file of Qt 5.15 to track dependencies. Such a dependency may well live outside the project and can vanish, for example when installing a new compiler version. This situation was detected before, but merely a warning was issued. Now, we're considering a generated file as out of date if a dependency is missing and re-generate it. We also have to remove the missing dependency from the ParseCache. Otherwise the AUTOMOC target for all generators other than Ninja will always be out of date. The ParseCacheChanged flag had to be made atomic, because we're potentially accessing it from multiple threads. The dependencies vector itself is not vulnerable in this regard, because there's one vector per file, and we're accessing exactly one ParseCacheT::FileHandleT per thread. Fixes: #21136
* | | PCH: Fix 30s wait for VS2008 when used via -Tv90Cristian Adam2020-09-071-8/+20
|/ / | | | | | | | | Fixes: #21142 Backport: release
* | Ninja Multi-Config: Fix dependencies of utility targetsKyle Edwards2020-09-021-1/+2
| | | | | | | | Fixes: #21118
* | Ninja Multi-Config: Fix cleaning of utility targets with commandsKyle Edwards2020-09-021-0/+2
| |
* | Ninja Multi-Config: Fix clean:all targetKyle Edwards2020-09-021-0/+1
| |
* | Merge branch 'backport-3.17-automoc-depend-project-file'Brad King2020-08-312-1/+4
|\ \ | |/
| * AutoMoc: Restore support for re-running after project file changesJoerg Bornemann2020-08-312-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For Qt >= 5.15.0 and Ninja generators AutoMoc creates a depfile to let Ninja decide when to run AutoMoc. This was introduced by commit aebfbcaa46 (AutoGen: Use depfiles for the XXX_autogen ninja targets, 2020-01-14, v3.17.0-rc1~58^2). However, AutoMoc was not triggered after adding a new moc-able file to the project. This patch adds the project file (and potentially included files) to the dependencies in the depfile. Now, a re-run of AutoMoc is triggered if the project file changes. Fixes: #21127
| * Merge branch 'backport-3.17-automoc_timestamp_deps' into release-3.17Brad King2020-08-052-3/+48
| |\ | | | | | | | | | Merge-request: !5085
* | | AutoGen: Fix moc and uic dependencies when building Qt itselfAlexandru Croitor2020-08-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building Qt itself, the moc and uic executables are spcecified via a generator expression of the form $<TARGET_FILE:Qt6::moc>, which ends populating Moc's and Uic's 'Executable' field but not the ExecutableTarget and ExecutableTargetName fields. In such a scenario, the code in cmQtAutoGenInitializer::InitAutogenTarget fails to add a dependency on moc (or uic), because ExecutableTarget is null. First try to add a dependency on the ExecutableTarget if it's not empty, otherwise try to add a dependency on the path specified in the 'Executable' field. Issue: #21118
* | | CMake 3.18.2v3.18.2Brad King2020-08-201-1/+1
| | |
* | | Merge topic 'osx-archs-apple-only' into release-3.18Brad King2020-08-111-0/+3
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 70ce1ad64a PCH: Avoid Apple-specific architecture flags on other platforms Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5118
| * | | PCH: Avoid Apple-specific architecture flags on other platformsBrad King2020-08-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit f593b354da (PCH: Add support for multi architecture iOS projects, 2020-04-02, v3.18.0-rc1~414^2) the `OSX_ARCHITECTURES` target property (and corresponding `CMAKE_OSX_ARCHITECTURES` variable) affects flags on non-Apple platforms by accident. Add a missing condition to avoid this. Fixes: #21072
* | | | Xcode: Explicitly turn off signing in try_compile projectsBrad King2020-08-101-0/+6
| | | | | | | | | | | | | | | | Fixes: #18407, #20571, #20688
* | | | Merge topic 'reuse_pch_no_delay' into release-3.18Brad King2020-08-061-1/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ef97fbe6c2 PCH: Avoid unnecessary 30s delay on MSBuild Generator with REUSE_FROM Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5102
| * | | | PCH: Avoid unnecessary 30s delay on MSBuild Generator with REUSE_FROMCristian Adam2020-08-051-1/+1
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | Fix logic added by commit 1f791eb160 (Multi-Ninja: Fix reusable PCHs for MSVC, 2020-05-24, v3.18.0-rc1~72^2) to avoid an unnecessary delay. Fixes: #21054
* | | | Merge topic 'automoc_timestamp_deps' into release-3.18Brad King2020-08-062-3/+48
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9a9ed4b9d3 Merge branch 'backport-3.17-automoc_timestamp_deps' 7445c9a58a AutoGen: Add test to check for correct AutoMoc dependencies a79056bb02 AutoGen: Fix over-specified direct dependencies of custom command Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Aleix <aleixpol@kde.org> Merge-request: !5085
| * \ \ \ Merge branch 'backport-3.17-automoc_timestamp_deps'Brad King2020-08-052-3/+48
| |\ \ \ \ | | |/ / / | |/| | / | | | |/ | | |/|
| | * | AutoGen: Fix over-specified direct dependencies of custom commandAlexandru Croitor2020-08-032-3/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The AutoMoc timestamp creating custom command explicitly depended on all dependencies of the origin target (associated to the AutoGen target). When an origin target depended on a shared library 'libfoo.so', if it was re-linked, the AutoMoc custom command would touch its output timestamp file, and thus cause needless rebuilding of sources, despite the shared library not having any influence on the AutoMoc generated files. Introduce a new '<target>_autogen_timestamp_deps' utility target, which will serve as an 'order-only' dependency for the custom command. This will prevent needless rebuilding, because touching 'libfoo.so' will not cause the custom command to be re-executed. The new AutoMoc dependency tree looks like: '_autogen_timestamp_deps (serves as order-only dep)' <- '<target_autogen>/timestamp' file ( + moc deps file) <- '<target>_autogen' target. Fixes: #21020
* | | | Merge topic 'ninja-multi-rsp-remove-path' into release-3.18Brad King2020-08-061-10/+2
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| | | | | | | | | | cdb50af2f6 Ninja: Restore shorter path to response files Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: alcroito <alexandru.croitor@qt.io> Merge-request: !5094
| * | Ninja: Restore shorter path to response filesKyle Edwards2020-08-031-10/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | In commit 99ed39b011 (Ninja Multi-Config: Make link response files per-config, 2020-07-15, v3.17.4~3^2), we added the target directory to the response file under the mistaken assumption that two different targets with the same name could be in different directories. However, this causes the path to the response file to be too long to fit on a command line. Take the path back out, while leaving in the per-config split. Fixes: #21050
| * CMake 3.17.4v3.17.4Brad King2020-07-301-1/+1
| |
| * Merge branch 'backport-3.17-graphviz-restore-per-target' into release-3.17Brad King2020-07-212-7/+145
| |\ | | | | | | | | | Merge-request: !5039
| * \ Merge branch 'ninja-multi-rsp' into release-3.17Brad King2020-07-161-4/+14
| |\ \ | | | | | | | | | | | | Merge-request: !5020
| * \ \ Merge topic 'vs-sln-version-16' into release-3.17Brad King2020-06-031-1/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b69010b719 VS: Fix .sln support for VS Version Selector with VS 2019 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4844
| * \ \ \ Merge topic 'pch-fix-bad-ClearSourcesCache' into release-3.17Brad King2020-06-012-3/+17
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 902858367f Merge branch 'backport-3.16-pch-fix-bad-ClearSourcesCache' fa7b041eca PCH: Fix logic error that incorrectly clears sources during VS generation Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4815
* | | | | | CMake 3.18.1v3.18.1Brad King2020-07-301-1/+1
| | | | | |
* | | | | | Unity Builds: Do not set SKIP_AUTOGEN to source filesCristian Adam2020-07-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: #21028
* | | | | | Merge topic 'revert-add_test-special-chars' into release-3.18Brad King2020-07-281-7/+7
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5fc5f4d26e add_test: Revert "Allow special characters in test name" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5067
| * | | | | | add_test: Revert "Allow special characters in test name"Brad King2020-07-271-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit f84af8e270 (add_test: Allow special characters in test name, 2020-05-16, v3.18.0-rc1~142^2). Unfortunately the fix breaks projects that were working around the limitation with manual escaping. The fix can be re-introduced with a policy in a future version. Also add a 3.18.1 release note explaining the change. Fixes: #21017, #20965 Issue: #19391
* | | | | | | Merge topic 'xcode-12-legacy-deprecation' into release-3.18Brad King2020-07-271-0/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 36fc3a1e84 Xcode: Suppress legacy build system deprecation warning Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !5052
| * | | | | | | Xcode: Suppress legacy build system deprecation warningBrad King2020-07-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xcode 12 beta 3 now warns about using the legacy build system. Since generation of the build system is CMake's responsibility, the warning is not relevant to our users. Suppress it. Issue: #18088