summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* codespell: Fix typosBrad King2023-11-179-16/+16
|
* codespell: Match valgrind output without repeating a spelling errorBrad King2023-11-171-4/+4
|
* CMake 3.28.0-rc5v3.28.0-rc5Brad King2023-11-151-1/+1
|
* Merge branch 'backport-target-objects' into target-objectsBrad King2023-11-145-23/+46
|\
| * cmComputeLinkInformation: Track targets named by TARGET_OBJECTS sourcesBrad King2023-11-145-21/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit b6a5382217 (Ninja: depend on language module information files directly, 2023-02-10, v3.27.0-rc1~502^2), the return value of `cmCommonTargetGenerator::GetLinkedTargetDirectories` must account for linked object libraries because they may provide modules (#25112). These were added by commit b665966933 (cmComputeLinkInformation: track OBJECT library dependencies, 2023-07-22, v3.27.1~5^2). However, targets named by `$<TARGET_OBJECTS:...>` sources are also needed (#25365). The latter were added by commit 22da18b995 (Fortran: Restore support for TARGET_OBJECTS providing modules, 2023-10-27, v3.28.0-rc4~9^2) and commit 035302b7e3 (cmComputeLinkDepends: also copy the target from object link items, 2023-10-27, v3.28.0-rc4~9^2~2). However, their approach added link entries not actually specified by projects. It also incorrectly re-used `cmComputeLinkDepends::AddLinkObject` for object library targets when it is meant for their individual object files. These problems caused additional regressions (#25417). Revert the implementation parts of those commits and leave behind an assertion and comment to help avoid the mistake in the future. Instead, track targets named by `$<TARGET_OBJECTS:...>` sources with a dedicated member. Issue: #25112 Issue: #25365 Fixes: #25417 Co-authored-by: Ben Boeckel <ben.boeckel@kitware.com>
| * cmCommonTargetGenerator: Factor out GetLinkedTargetDirectories loop bodyBrad King2023-11-141-9/+8
| | | | | | | | Re-use the body in multiple loops instead of allocating to combine them.
* | cmCommonTargetGenerator: Drop unused local variableBrad King2023-11-141-1/+0
| |
* | cmComputeLinkInformation: Simplify recording OBJECT libraries as link itemsBrad King2023-11-141-1/+1
| | | | | | | | | | | | Simplify commit 2c7acd34e2 (cmComputeLinkInformation: add `OBJECT` libraries as link items, 2023-07-24, v3.28.0-rc1~279^2) using the existing local variables.
* | cmGeneratorExpressionNode: Fix short-circuit logicMartin Duffy2023-11-131-1/+1
| | | | | | | | | | | | | | | | Fix logic added by commit 634079b86d (cmGeneratorExpressionEvaluator: Short-circuit boolean operators, 2023-09-11, v3.28.0-rc1~47^2) and add missing test cases. Fixes: #25412
* | Merge topic 'cxx23' into release-3.28Brad King2023-11-084-11/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter 85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly 641c02a3ce cmList: Avoid using operator-> on input iterator e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr) Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !8950
| * | cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleterBrad King2023-11-071-1/+1
| | | | | | | | | | | | | | | | | | The libc++ `unique_ptr` implementation requires this since C++23. Fixes: #25388
| * | cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publiclyBrad King2023-11-072-9/+12
| | |
| * | cmList: Avoid using operator-> on input iteratorBrad King2023-11-071-1/+1
| | | | | | | | | | | | As of C++23, some standard library iterator types deprecate it.
* | | Merge topic 'static-library-link-xcframework' into release-3.28Brad King2023-11-071-21/+72
|\ \ \ | |/ / |/| | | | | | | | | | | | | | 7d19246138 Xcode: Fix linking against .xcframework from static libraries Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8949
| * | Xcode: Fix linking against .xcframework from static librariesKyle Edwards2023-11-061-21/+72
| | | | | | | | | | | | Issue: #21752
* | | CMake 3.28.0-rc4v3.28.0-rc4Brad King2023-11-061-1/+1
|/ /
* | cmSystemTools::RunSingleCommand(): Pass stdin to child processKyle Edwards2023-11-021-1/+3
| | | | | | | | Fixes: #25383
* | Merge topic 'cxxmodules-cmp0155-graceful-fallback-without-scanner' into ↵Brad King2023-11-016-13/+33
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | release-3.28 1f507580a1 cmGlobalGenerator: give context about module queries 889aa0354a CMP0155: ignore scanning for sources if no scanner is available Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8925
| * | cmGlobalGenerator: give context about module queriesBen Boeckel2023-11-015-8/+22
| | | | | | | | | | | | | | | | | | Some queries are merely investigating support in order to change behavior. Let the method know so that any internal errors can be skipped over.
| * | CMP0155: ignore scanning for sources if no scanner is availableBen Boeckel2023-11-012-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows for a more graceful transition for projects using C++20 without scanner support (e.g., Clang 15 or GCC 13). While newer compilers will (needlessly) scan, it allows C++20-using projects to use older compilers without having to set `CMAKE_CXX_SCAN_FOR_MODULES` to support newer CMake minimum versions. Fixes: #25357
* | | ctest: Allow colored output on Windows if CLICOLOR_FORCE is set to 1Cristian Adam2023-11-011-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | Windows 10 supports ANSI colors since v1511. For earlier versions of Windows installing ANSICON will enable ANSI colors in cmd.exe. For those setups where the environment is set up with CLICOLOR_FORCE set to 1 ctest should honor the setting and emit colored ANSI output.
* | | Merge topic 'modules-depends-via-target-objects' into release-3.28Brad King2023-10-313-1/+22
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 22da18b995 Fortran: Restore support for TARGET_OBJECTS providing modules 64d9240564 cmComputeLinkInformation: skip over linking to items for object purposes 035302b7e3 cmComputeLinkDepends: also copy the target from object link items 861876b936 Tests/ObjectLibrary: fix comment Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !8923
| * | Fortran: Restore support for TARGET_OBJECTS providing modulesBen Boeckel2023-10-302-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Continue b665966933 (cmComputeLinkInformation: track OBJECT library dependencies, 2023-07-22) which added explicitly listed `OBJECT` libraries to the list of targets which the collator needs to consider. Now also consider targets which provide objects directly to the target via a `$<TARGET_OBJECT>` source lists. Also add tests which use target objects directly and through an `INTERFACE` library with target objects in its own sources. Fixes: #25365
| * | cmComputeLinkInformation: skip over linking to items for object purposesBen Boeckel2023-10-271-1/+1
| | | | | | | | | | | | | | | If a name is only found because it is a link entry of kind `Object`, do not add anything to the link line.
| * | cmComputeLinkDepends: also copy the target from object link itemsBen Boeckel2023-10-271-0/+1
| | |
| * | CMake 3.27.7v3.27.7Brad King2023-10-061-1/+1
| | |
* | | Merge topic 'cxxmodules-ninja-forced-rsp-files' into release-3.28Brad King2023-10-301-2/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 09c962a6a4 Tests/CXXModules: test forced rsp files with ninja Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8926
| * | | Tests/CXXModules: test forced rsp files with ninjaBen Boeckel2023-10-281-2/+1
| | |/ | |/| | | | | | | Fixes: #25367
* | | CMP0153: Add suggestion to use execute_process()Kyle Edwards2023-10-271-3/+5
| | |
* | | cmState::AddDisallowedCommand(): Allow additional warning infoKyle Edwards2023-10-272-7/+14
|/ /
* | CMake 3.28.0-rc3v3.28.0-rc3Brad King2023-10-241-1/+1
| |
* | Merge topic 'cmcldeps-quote-rc' into release-3.28Brad King2023-10-241-1/+2
|\ \ | | | | | | | | | | | | | | | | | | 03080d18eb cmcldeps: Restore support for rc.exe path not fully GetShortPathName-d Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8912
| * | cmcldeps: Restore support for rc.exe path not fully GetShortPathName-dBrad King2023-10-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some cases `GetShortPathNameW` may not remove all spaces. If that happens with the path to `rc.exe`, cmcldeps needs to explicitly quote the path in the command it runs. This was exposed by commit 50a6e78a82 (cmSystemTools::RunSingleCommand(): Replace cmsysProcess with cmUVProcessChain, 2023-07-25, v3.28.0-rc1~138^2~4) because the underlying process execution library no longer reconstructs the command line without quotes around commands without spaces. Fixes: #25355
* | | source_group: Restore behavior of TREE with empty FILESBrad King2023-10-231-2/+5
|/ / | | | | | | | | | | | | | | Since commit d85238a2f2 (source_group: Fix TREE without FILES, 2023-06-29, v3.28.0-rc1~399^2~1) we incorrectly treat a FILES argument with no values as if it were not given at all. Fixes: #25353
* | cmNinjaTargetGenerator: do not order-depend on C++ module sourcesBen Boeckel2023-10-201-4/+9
| | | | | | | | | | | | | | | | | | C++ module sources should not be included by any other TUs, so their presence cannot matter for order-only dependencies of the entire target. Exclude them. Update CMP0154 to take this into consideration and add tests to the `CXXModules` suite (which already deals with module support detection).
* | cmNinjaTargetGenerator: use the file set visibility APIBen Boeckel2023-10-201-1/+1
| |
* | cmFileSet: add a query for includeable file set typesBen Boeckel2023-10-202-0/+7
| |
* | cmNinjaTargetGenerator: avoid traversing old outputs repeatedlyBen Boeckel2023-10-201-0/+3
| | | | | | | | | | We actually only need to look at outputs just added to the vector, not all outputs that have been detected so far.
* | CMake 3.28.0-rc2v3.28.0-rc2Brad King2023-10-181-1/+1
| |
* | Merge topic 'cxxmodules-vs-no-synthetic-targets' into release-3.28Brad King2023-10-181-0/+9
|\ \ | | | | | | | | | | | | | | | | | | | | | 17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8895
| * | VS: Explicitly disallow C++ modules provided by imported targetsBen Boeckel2023-10-171-0/+9
| | | | | | | | | | | | | | | | | | | | | The `-ifcOnly` flag is understood by MSBuild, but there are unresolved questions about how to integrate with with CMake's model. See: #25328
* | | Merge topic 'cxxmodules-export-fileset-info' into release-3.28Brad King2023-10-174-9/+40
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0f36156740 cxxmodules: include `INCLUDES DESTINATION` directories Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8886
| * | | cxxmodules: include `INCLUDES DESTINATION` directoriesBen Boeckel2023-10-164-9/+40
| |/ / | | | | | | | | | | | | | | | | | | These paths are added outside the normal property management mechanisms. Shuttle the value to the C++ module export as needed. Fixes: #25289
* | | Merge topic 'execute_process-output_file-directory' into release-3.28Brad King2023-10-171-18/+44
|\ \ \ | |/ / |/| | | | | | | | | | | | | | 35f031e3b2 execute_process(): Restore opening files relative to WORKING_DIRECTORY Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8883
| * | execute_process(): Restore opening files relative to WORKING_DIRECTORYKyle Edwards2023-10-161-18/+44
| | | | | | | | | | | | | | | | | | | | | | | | Prior to 5420639a, execute_process() would open INPUT_FILE, OUTPUT_FILE, and ERROR_FILE relative to the WORKING_DIRECTORY argument if it was provided. Restore this behavior for backwards compatibility. Fixes: #25338
* | | Autogen: Revert "AUTO*_EXECUTABLE: add support for per-config values"Orkun Tokdemir2023-10-1312-451/+175
|/ / | | | | | | | | | | | | | | | | | | | | Changing the `timestamp` file to `timestamp_$<CONFIG>` causes some user projects to break when using Qt versions older than 6.6. Revert commit fddd0f0443 (Autogen: AUTO*_EXECUTABLE: add support for per-config values, 2023-06-14, v3.28.0-rc1~96^2~1) pending further investigation. Issue: #20074
* | CMake 3.28.0-rc1v3.28.0-rc1Brad King2023-10-111-1/+1
| |
* | Merge topic 'cxxmodules-try_compile' into release-3.28Brad King2023-10-111-0/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | fd81024e80 cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compile Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !8865
| * | cxxmodules: Honor CMAKE_CXX_SCAN_FOR_MODULES in try_compileBrad King2023-10-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under CMP0155's NEW behavior, projects that explicitly enable C++20 support with `set(CMAKE_CXX_STANDARD 20)` may also explicitly disable scanning with `set(CMAKE_CXX_SCAN_FOR_MODULES OFF)`. We already propagate `CMAKE_CXX_STANDARD` into `try_compile` test projects, so propagate `CMAKE_CXX_SCAN_FOR_MODULES` too. Fixes: #25313
* | | cxxmodules: Reference documentation in no-modules-support diagnosticsBrad King2023-10-111-9/+11
|/ / | | | | | | | | | | Help users avoid errors about module support when they may not need it. While at it, polish sentence syntax in the diagnostic messages.