summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* LinkerId: Use empty string for unknown linker idBrad King2024-01-031-4/+0
| | | | | | | Since commit c26c6ac488 (Link Step: compute effective linker used by the compiler, 2023-05-27) we used `UNKNOWN` if the linker id is not known. This convention is not used elsewhere, and logic using the linker id is easier when `if(CMAKE_C_COMPILER_LINKER_ID)` is false on unknown id.
* LinkerId: Match Apple linker on all Apple platformsBrad King2024-01-032-2/+2
| | | | | | `cmake_determine_linker_id` is only used for macOS because Apple device platforms set `_CMAKE_FEATURE_DETECTION_TARGET_TYPE` to `STATIC_LIBRARY`, but we might as well prepare for them anyway.
* LinkerId: Fix detection of GNU linker id without parenthesis in version outputBrad King2024-01-034-2/+8
|
* LinkerId: Fix detection of linker tool without pathBrad King2024-01-0314-14/+14
| | | | | Some compiler drivers invoke the linker tool as just `ld`, with no path, expecting it to be in the `PATH`.
* LinkerId: Fix detection of linker tool for Clang on OpenBSDBrad King2024-01-033-3/+3
| | | | Do not match quotes as part of the path.
* LinkerId: Fix detection of linker tool for MSVCBrad King2024-01-032-5/+5
| | | | | | Previously we matched an entire build system output line and then extracted the relevant portion in a separate brittle step. Match it directly. Use the `CMAKE_LINKER` value directly if available.
* LinkerId: Fix detection of linker tool for GNU on SunOS sparc32Brad King2024-01-035-5/+15
| | | | | | We do not use `-Wl,-v` on SunOS because not all GNU deployments use the `collect2` helper, and those that do do not always print the underlying `ld` command line. Parse the `--with-ld=` option as a fallback.
* LinkerId: Fix detection of linker tool for XL compilersBrad King2024-01-0313-12/+14
| | | | | These compilers print an explicit `export XL_LINKER=` line. Parse it separately.
* LinkerId: Fix detection of linker tool for XL as nvcc host compilerBrad King2024-01-032-3/+5
| | | | | | | When IBM XL is used as the host compiler for nvcc, it generates a comma-separated link line. Parse the `exec:` line syntax separately, as was done in commit b5f20da94d (CMakeParseImplicitLinkInfo supports comma separated link lines, 2019-08-23, v3.16.0-rc1~181^2).
* LinkerId: Prepare detection of linker tool for multiple match attemptsBrad King2024-01-031-8/+12
|
* Tests: Cover detection of linker tool for Intel on WindowsBrad King2024-01-0313-0/+138
|
* Tests: Cover detection of linker tool for MSVCBrad King2024-01-039-0/+148
| | | | Cover both Ninja and Visual Studio generators.
* Tests: Cover detection of linker tool while parsing implicit link infoBrad King2024-01-0394-2/+110
| | | | | There are a few cases where content besides the path is picked up. Match them for now. We will fix them in following commits.
* Tests: Update sample data for parsing implicit link/include informationBrad King2024-01-0354-1/+1148
| | | | | | Since commit c26c6ac488 (Link Step: compute effective linker used by the compiler, 2023-05-27) we use `CMAKE_${lang}_VERBOSE_LINK_FLAG` when detecting implicit link information. Generate sample test data with it.
* Tests: Improve isolation of cases parsing implicit link/include informationBrad King2024-01-032-69/+51
|
* Tests: Add unit tests for internal cmake_determine_linker_id helperBrad King2024-01-0327-0/+106
|
* Merge topic 'package-dispatch-apple'Brad King2023-12-1828-2/+182
|\ | | | | | | | | | | | | | | 1dd4a9baff Tests: Cover generate_apple_platform_selection_file on all platforms 3148db4533 CMakePackageConfigHelpers: Fix Apple platform selection for tvOS Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9077
| * Tests: Cover generate_apple_platform_selection_file on all platformsBrad King2023-12-1627-0/+180
| | | | | | | | | | | | | | | | The test added by commit 37bc3400cd (CMakePackageConfigHelpers: Add generate_apple_platform_selection_file(), 2023-11-03) covers importing only on macOS, and is specific to the xcframework test case. Add a dedicated test for `generate_apple_platform_selection_file` that covers export and import on all platforms.
| * CMakePackageConfigHelpers: Fix Apple platform selection for tvOSBrad King2023-12-151-2/+2
| | | | | | | | | | Fix the tvOS SDK name in commit 37bc3400cd (CMakePackageConfigHelpers: Add generate_apple_platform_selection_file(), 2023-11-03).
* | CMake Nightly Date StampKitware Robot2023-12-181-1/+1
| |
* | Merge topic 'fc-provider-find-package-args'Craig Scott2023-12-174-2/+21
|\ \ | | | | | | | | | | | | | | | | | | 0415304970 FetchContent: Fix FIND_PACKAGE_ARGS not being passed to dep providers Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9080
| * | FetchContent: Fix FIND_PACKAGE_ARGS not being passed to dep providersCraig Scott2023-12-164-2/+21
| |/ | | | | | | Fixes: #25504
* | Merge topic 'doc-fc-fully-disconnected'Craig Scott2023-12-171-0/+11
|\ \ | | | | | | | | | | | | | | | | | | 18c514a86d Help: Add note not to use FETCHCONTENT_FULLY_DISCONNECTED on first run Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9081
| * | Help: Add note not to use FETCHCONTENT_FULLY_DISCONNECTED on first runCraig Scott2023-12-161-0/+11
| |/ | | | | | | Fixes: #25481
* | Merge topic 'doc-embed-xcode-limitations'Craig Scott2023-12-171-0/+16
|\ \ | | | | | | | | | | | | | | | | | | ba5882a6c1 Help: Document Xcode project visibility constraints for embedding Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9078
| * | Help: Document Xcode project visibility constraints for embeddingCraig Scott2023-12-151-0/+16
| |/ | | | | | | Fixes: #22412
* | CMake Nightly Date StampKitware Robot2023-12-171-1/+1
| |
* | Merge topic 'swift-split-compilation-model'Brad King2023-12-1611-60/+344
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 9bed4f4d81 Swift/Ninja: Split compilation model 64b3367845 cmGlobalGenerator: Allow passing language to GetLangaugeOutputExtension Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8907
| * | Swift/Ninja: Split compilation modelEvan Wilde2023-12-159-47/+323
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Splitting the Swift build into an object build and a separate link step, instead of building and linking in one step. The immediate benefit is LSP support because we are able to emit compile-commands for Swift files now. Additionally, it is possible to specify flags to the compile step, enabling folks to emit C and C++ headers from their Swift builds for C/C++ interop, without needing custom commands. Eventually, this gives us a path toward working object libraries. Object Libraries: - Object libraries don't work today because CMake doesn't emit targets for object libraries into the Ninja build file. - tl;dr: Object libraries work if they aren't WMO. Still need work to make WMO'd object libraries work. Object libraries still don't completely work with this patch because, while we emit the targets, the `TARGET_OBJECTS` generator expression expansion has a separate mechanism for determining what the names of the objects are based on the input source files, so targets that depend on an object library built with a whole-module optimization will depend on objects based on the name of the source file instead of the actual emitted object file. These features require being able to accurately model wholemodule builds though, because we actually need to track object files and WMO affects what objects are emitted. For that, we require CMP0157 use the NEW policy. When it's OLD, we have to fall back on the old behavior and cannot provide object libraries or the compile-commands for LSP. Issue: #25308
| * | cmGlobalGenerator: Allow passing language to GetLangaugeOutputExtensionEvan Wilde2023-12-052-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original GetLanguageOutputExtension took a sourcefile instead of the name of the language itself. This implementation provided a convenient handler for when the SourceFile doesn't know what language it is, but there are times where we know the language, but don't necessarily have a source file. Adding an overload that takes the name of the language and returns the extension of that language, or empty string if no extension is registered.
* | | CMake Nightly Date StampKitware Robot2023-12-161-1/+1
| |/ |/|
* | Merge topic 'cmake-test-launcher'Brad King2023-12-1537-22/+503
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 88863d83d6 fileapi: Add test launcher to codemodel-v2 1ec0372ed4 add_test: Optionally use a launcher for tests running in-project targets 478a5f4e04 fileapi: Make launcher attribute 'arguments' optional b44e38a397 cmFileAPICodemodel: Add missing std::move() Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8963
| * | fileapi: Add test launcher to codemodel-v2Ralf Habacker2023-12-1313-6/+257
| | | | | | | | | | | | | | | We do not need to bump the minor version because it was recently bumped by addition of the cross-compiling emulator as another kind of launcher.
| * | add_test: Optionally use a launcher for tests running in-project targetsRalf Habacker2023-12-1323-7/+233
| | | | | | | | | | | | | | | | | | | | | Add a `CMAKE_TEST_LAUNCHER` variable and corresponding `TEST_LAUNCHER` target property. Issue: #23672
| * | fileapi: Make launcher attribute 'arguments' optionalRalf Habacker2023-12-133-8/+12
| | | | | | | | | | | | | | | This was missed in commit 80a64c9ce5 (fileapi: Add cross-compiling emulator to codemodel-v2, 2023-11-11).
| * | cmFileAPICodemodel: Add missing std::move()Ralf Habacker2023-12-131-2/+2
| |/ | | | | | | | | This was missed in commit 80a64c9ce5 (fileapi: Add cross-compiling emulator to codemodel-v2, 2023-11-11).
* | Merge topic 'update-curl'Brad King2023-12-15151-4569/+5550
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fe2fe52c86 curl: Set build options the way we need for CMake 548f0cfd1d Merge branch 'upstream-curl' into update-curl fe5ffe06a9 curl 2023-12-06 (7161cb17) 38f85b8390 curl: Update script to get curl 8.5.0 Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9069
| * | curl: Set build options the way we need for CMakeBrad King2023-12-121-2/+5
| | | | | | | | | | | | Set options added by the update to curl 8.5.0.
| * | Merge branch 'upstream-curl' into update-curlBrad King2023-12-12150-4566/+5544
| |\ \ | | | | | | | | | | | | | | | | * upstream-curl: curl 2023-12-06 (7161cb17)
| | * | curl 2023-12-06 (7161cb17)Curl Upstream2023-12-12150-4564/+5543
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code extracted from: https://github.com/curl/curl.git at commit 7161cb17c01dcff1dc5bf89a18437d9d729f1ecd (curl-8_5_0).
| * | | curl: Update script to get curl 8.5.0Brad King2023-12-121-1/+1
| | | |
* | | | Merge branch 'release-3.28'Brad King2023-12-150-0/+0
|\ \ \ \
| * \ \ \ Merge topic 'FindCUDAToolkit-cupti' into release-3.28Brad King2023-12-159-4/+45
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 04959e0285 Tests: Verify CUDA::cupti existence on a subset of machines 09a3c8b46b CUDAToolkit: Correctly search all include paths from compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9072
* | \ \ \ \ Merge topic 'FindCUDAToolkit-cupti'Brad King2023-12-159-4/+45
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 04959e0285 Tests: Verify CUDA::cupti existence on a subset of machines 09a3c8b46b CUDAToolkit: Correctly search all include paths from compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9072
| * | | | | Tests: Verify CUDA::cupti existence on a subset of machinesRobert Maynard2023-12-148-1/+42
| | | | | | | | | | | | | | | | | | | | | | | | When we know that the cupti library exists explicitly request the CUDA Toolkit test to verify the existence
| * | | | | CUDAToolkit: Correctly search all include paths from compilerRobert Maynard2023-12-141-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CUDAToolkit usage of `find_path( PATHS )` was incorrectly quoting a list of paths causing none of them to be used.
* | | | | | Merge branch 'release-3.28'Brad King2023-12-150-0/+0
|\ \ \ \ \ \ | | |/ / / / | |/| | | |
| * | | | | Merge topic 'FindBoost-1.84' into release-3.28Brad King2023-12-151-1/+2
| |\ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 9dc0392df0 FindBoost: Add support for Boost 1.84 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9075
* | | | | | Merge topic 'FindBoost-1.84'Brad King2023-12-151-1/+2
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 9dc0392df0 FindBoost: Add support for Boost 1.84 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !9075
| * | | | | FindBoost: Add support for Boost 1.84Brad King2023-12-141-1/+2
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the list of known versions. Run the command cmake -DBOOST_DIR=/path/to/boost_1_84_0 \ -P Utilities/Scripts/BoostScanDeps.cmake to extract dependencies from the 1.84.0 source tree. They are the same as 1.83's dependencies, so just update the version check for warning about newer versions. Fixes: #25499