summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake 3.28.2v3.28.2Brad King2024-01-291-1/+1
|
* Autogen: Forward dependencies when both Makefile and DEPFILE are usedOrkun Tokdemir2024-01-281-1/+10
| | | | | | | | | | | | Since commit ebc9e448b3 (Autogen: Add depfile support for Makefiles, 2023-09-07, v3.28.0-rc1~101^2~1) CMake does not generate the correct dependency graph when both `Makefile` and `DEPFILE` are used. The build of `<target_name>_autogen_timestamp_deps` fails due to missing dependencies. To tackle that problem, forward target dependencies to both `<target_name>_autogen_timestamp_deps` and `<target_name>_autogen` instead of just `<target_name>_autogen`. Fixes: #25600
* cmQtAutoGenInitializer: Improve Const-correctnessOrkun Tokdemir2024-01-261-1/+1
|
* Revert use of libuv for process execution for 3.28Brad King2024-01-2431-1221/+1186
| | | | | | | | | | | | | | Wide use of CMake 3.28.{1,0[-rcN]} has uncovered some hangs and crashes in libuv SIGCHLD handling on some platforms, particularly in virtualization environments on macOS hosts. Although the bug does not seem to be in CMake, we can restore stability in the CMake 3.28 release series for users of such platforms by reverting our new uses of libuv for process execution. Revert implementation changes merged by commit 4771544386 (Merge topic 'replace-cmsysprocess-with-cmuvprocesschain', 2023-09-06, v3.28.0-rc1~138), but keep test suite updates. Issue: #25414, #25500, #25562, #25589
* cmUVProcessChain: Tolerate fileno() of invalid FILE streamBrad King2024-01-241-1/+5
| | | | | | | | On Windows, in a GUI process without a console, the `std{in,out,err}` standard FILE streams may not be open. Avoid passing an invalid file descriptor to the child process, and let libuv attach NUL instead. Fixes: #25625
* cmUVProcessChain: Simplify SetExternalStream usageBrad King2024-01-248-40/+26
| | | | | It is commonly called with the `fileno()` of a `FILE*` stream, so accept the latter directly.
* cmUVProcessChain: Simplify builder initializationBrad King2024-01-242-8/+3
|
* cxxmodules: make export trampoline script files uniqueBen Boeckel2024-01-188-27/+55
| | | | | | | | | | | Include the name of the `EXPORT` in the filename when generating export information for C++ modules. This allows the same directory to be used for multiple sets of C++ module-using targets. For `export(TARGETS)` uses, generate a name based on the hash of the concatenation of the target names involved with the `export()` call. Fixes: #25609
* Source: Simplify hasher object constructionBrad King2024-01-182-7/+6
|
* cxxmodules: compute link information for C++ module-consuming targetsMatheus Izvekov2024-01-141-1/+2
| | | | | | | | | Compute link information for all C++ targets which support modules instead of just those which may provide modules, as they may import modules as well. This captures `OBJECT` libraries using modules which otherwise do not have link steps. Fixes: #25592
* Merge topic 'vs-scan-for-modules' into release-3.28Brad King2024-01-101-5/+6
|\ | | | | | | | | | | | | | | | | | | 405dc7d19c Tests/CXXModules/scan_properties: use `ixx` extension 029ddc3410 cmVisualStudio10TargetGenerator: always specify scanning 6c9614cbf4 Tests/CXXModules: add a test case for VS generation without flags 34f4423851 cmVisualStudio10TargetGenerator: fix typo in flag name Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9104
| * cmVisualStudio10TargetGenerator: always specify scanningBen Boeckel2024-01-061-3/+4
| | | | | | | | | | | | | | Set that sources should not be scanned on a target-wide basis and then enable on a per-TU basis as needed. Fixes: #25519
| * cmVisualStudio10TargetGenerator: fix typo in flag nameBen Boeckel2024-01-061-3/+3
| | | | | | | | | | It is case insensitive, so this only matches the official flag name and still works.
* | Merge topic 'cxxmodules-no-unity' into release-3.28Brad King2024-01-103-1/+39
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 63bbb3768d cmLocalGenerator: ignore scanned sources for unity builds 76b5383123 cmGlobalGenerator: add unity sources after computing target compile features 7fc2a83fe6 Tests/CXXModules: add a test with unity build support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9118
| * | cmLocalGenerator: ignore scanned sources for unity buildsBen Boeckel2024-01-051-0/+9
| | |
| * | cmGlobalGenerator: add unity sources after computing target compile featuresBen Boeckel2024-01-052-1/+30
| |/ | | | | | | | | | | We need to know which sources will be scanned for C++ module dependencies in order to exclude them from unity builds. The addition of unity sources will not change the set of features.
* | Makefile: Fix double escaping when DEPFILE is usedOrkun Tokdemir2024-01-091-3/+2
| | | | | | | | | | | | | | | | | | | | In commit cfd8a5ac1f (Makefiles: Add support of DEPFILE for add_custom_command, 2020-12-04, v3.20.0-rc1~237^2~1) we added a `ConvertToOutputPath` call on a path given to the `depends` field of `WriteMakeRule`. The latter already handles escaping for Makefile syntax. Fixes: #25554
* | Makefile: Reduce string copiesOrkun Tokdemir2024-01-081-1/+1
| |
* | Source: Restore compilation on OpenBSDRafael Sadowski2024-01-053-7/+7
|/ | | | We cannot use `OpenBSD` as a name, it is defined in `sys/param.h`.
* Merge topic 'cxxmodules-no-compile-commands-modmap' into release-3.28Brad King2024-01-032-10/+10
|\ | | | | | | | | | | | | | | 73fbad3d93 cmNinjaTargetGenerator: use scan flag for modmap usage in exported commands Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9100
| * cmNinjaTargetGenerator: use scan flag for modmap usage in exported commandsBen Boeckel2023-12-222-10/+10
| | | | | | | | See: https://discourse.cmake.org/t/how-to-control-the-location-of-the-c-20-binary-module-interface-bmi-output-directory/7968
* | cmDyndepCollation: clarify CXX_MODULES-without-BMI error messageBen Boeckel2023-12-261-1/+2
| | | | | | | | Fixes: #25493
* | Ninja: LINK_OPTIONS property should support newlinesMarc Chevrier2023-12-205-1/+27
|/ | | | Fixes: #25513
* Xcode: Restore support for standalone IMPORTED_LOCATION_<CONFIG>Marc Chevrier2023-12-181-5/+17
| | | | | | | | | | | In commit 878ae03832 (macOS: IMPORTED framework: Honor SYSTEM target property in all cases, 2023-08-27, v3.28.0-rc1~162^2) we broke support for `IMPORTED_LOCATION_<CONFIG>` without `IMPORTED_CONFIGURATIONS`. Previously it worked if the importing project's configurations match the set of `IMPORTED_LOCATION_<CONFIG>` properties set. Fix that case. Fixes: #25506 Issue: #25515
* CMake 3.28.1v3.28.1Brad King2023-12-141-1/+1
|
* cmGlobalXCodeGenerator: disable C++ module scanning for force-lang filesBen Boeckel2023-12-111-0/+1
|
* cmLocalGenerator: disable C++ module scanning for unity sourcesBen Boeckel2023-12-111-0/+1
|
* cmLocalGenerator: disable C++ module scanning for copied PCH sourcesBen Boeckel2023-12-111-0/+1
|
* cmQtAutoGenInitializer: disable C++ module scanning for autogen sourcesBen Boeckel2023-12-111-0/+1
|
* cmGeneratorTarget: disable C++ module scanning for verify targetsBen Boeckel2023-12-111-0/+1
|
* CMake 3.28.0v3.28.0Brad King2023-12-061-1/+1
|
* Merge topic 'fix-cxx-module-transitive-requirements' into release-3.28Brad King2023-12-061-5/+8
|\ | | | | | | | | | | | | | | e9b0dcbbfa cmCxxModuleMapper: Fix transitive requirements computation Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9030
| * cmCxxModuleMapper: Fix transitive requirements computationnamniav2023-12-051-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously CMake may generate incomplete transitive requirements in CMakeFiles/<target>.dir/CXXModules.json and therefore in module mapper for compiler, when source files were listed in CMakeList.txt in a certain order. This commit fixes the problem by correctly tracking unfinished transitive requirements computation of module units. There have been a simple circular test case whose circular dependency was reported by build system. Now with this correct implementation it's reported by CMake generating module mappers. Add two test cases for transitive requirements computation, one with adding source files in hardcoded order, and the other in randomized order. Fixes: #25465
* | cmComputeLinkInformation: Restore soname lookup for non-imported targetsBrad King2023-12-052-12/+12
| | | | | | | | | | | | | | | | | | In commit 7351d590ee (cmTarget: Add a way to represent imported shared library stubs, 2023-07-17, v3.28.0-rc1~344^2) we accidentally stopped passing the SONAME of a non-imported SHARED library to our runtime search path ordering logic. Unfortunately I have not found a way to add a test case for this, but it at least shouldn't regress existing tests or those added by that commit.
* | cmGeneratorTarget: Add helper to check for known runtime artifactBrad King2023-12-052-0/+14
|/
* Merge topic 'RH-gcc-toolset-10-bug-check' into release-3.28Brad King2023-12-051-0/+28
|\ | | | | | | | | | | | | | | 40af103402 cmCMakePath: do not use std::filesystem::path with RH gcc-toolset-10 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9026
| * cmCMakePath: do not use std::filesystem::path with RH gcc-toolset-10Marc Chevrier2023-12-041-0/+28
| | | | | | | | Fixes: #25458, #25453
* | Merge topic 'cxxmodules-pch' into release-3.28Brad King2023-12-052-8/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 40dc13b242 cmNinjaTargetGenerator: PCH files do not need dyndep f61c64cd1c cmLocalGenerator: prevent scanning of PCH source files ea8c37b759 Tests/CXXModules: add a test which scans a PCH-using source Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9032
| * | cmNinjaTargetGenerator: PCH files do not need dyndepBen Boeckel2023-12-041-8/+7
| | | | | | | | | | | | Fixes: #24209
| * | cmLocalGenerator: prevent scanning of PCH source filesBen Boeckel2023-12-041-0/+3
| |/
* | Merge topic 'cmFileCopier-error-loss' into release-3.28Brad King2023-12-057-59/+77
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | a820877d03 errors: avoid constructing a stream before getting the last error 5cf7018af6 cmFileCopier: remember error statuses and get their strings 0639a32d3a cmFileTimes: return status codes from APIs Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9023
| * | errors: avoid constructing a stream before getting the last errorBen Boeckel2023-12-025-28/+20
| | | | | | | | | | | | | | | Constructing a stream may involve operations that change the global error state. Avoid the streams by using `cmStrCat` instead.
| * | cmFileCopier: remember error statuses and get their stringsBen Boeckel2023-12-021-14/+23
| | | | | | | | | | | | | | | | | | | | | | | | The last error may have changed between the original call and the `GetLastSystemError()` call. Remember the status explicitly and ask it for its error string. Reported on Discourse: https://discourse.cmake.org/t/9539
| * | cmFileTimes: return status codes from APIsBen Boeckel2023-12-022-17/+34
| | | | | | | | | | | | | | | This avoids accidentally overwriting the global error state before fetching the intended error code.
* | | cmFileLockResult: Fix inclusion of windows.h when cross-compilingBrad King2023-12-041-1/+1
| |/ |/| | | | | | | | | | | | | | | In commit 64821d8a26 (cmFileLockResult: Remove expensive windows.h include, 2023-06-16, v3.28.0-rc1~446^2~13) we accidentally capitalized the name of the header. This matters when cross-compiling from a host with a case-sensitive filesystem. Fixes: #25474
* | CMake 3.28.0-rc6v3.28.0-rc6Brad King2023-11-301-1/+1
| |
* | Merge topic 'ccmake-install-rds-crash' into release-3.28Brad King2023-11-301-0/+2
|\ \ | | | | | | | | | | | | | | | | | | d01120a47a cmGlobalGenerator: clear RuntimeDependencySet members at configure Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9013
| * | cmGlobalGenerator: clear RuntimeDependencySet members at configureBen Boeckel2023-11-291-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit f2617cf8e6 (Source: Add cmInstallRuntimeDependencySet, 2021-05-19) introduced via !6186 to 3.21 added storage to the global generator for runtime dependency sets. However, this was not cleared at the start of configure in the `ClearGeneratorMembers()` method. When using `ccmake` to configure (and, presumably `cmake-gui` too), projects using `install(TARGETS … RUNTIME_DEPENDENCY_SET)` would use dependency set tracking instances from previous configure runs that held references to targets free'd with the `cmMakefile` instance that held them. Clear the dependency sets at the beginning of configure so that they are not remembered and trigger via use-after-free bugs when used. Fixes: #25446
* | Merge topic 'cxxmodules-diagnostics' into release-3.28Brad King2023-11-291-7/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | cbd549b09e cxxmodules: Add more suggestions to no-modules-support diagnostics Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9011
| * | cxxmodules: Add more suggestions to no-modules-support diagnosticsBrad King2023-11-281-7/+12
| |/ | | | | | | | | | | Tell users what generators *do* support C++ modules. Report the current generator to make clear it is not one of those supporting modules. Also clarify the purpose of the existing documentation references.