summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Ninja: Restore slash style for MinGW tools when extra languages are enabledBrad King2023-03-272-5/+7
| | | | | | | | | | Since commit f3ca199c9b (cmGlobalNinjaGenerator: Factor out GNU-like command-line detection on Windows, 2023-03-18, v3.26.1~2^2~6), we accidentally "unrecognize" MinGW tools on Windows if a language other than C or CXX is enabled. This causes the wrong slash style to be generated in paths in `build.ninja`. Fixes: #24642
* Merge topic 'module-depends-static-lib-cycle' into release-3.26Brad King2023-03-2710-3/+42
|\ | | | | | | | | | | | | | | | | 01d7860fdb Ninja,Makefile: Restore Fortran module scanning in static library cycle 846baa7c5b cmGlobalGenerator: Factor out helper to check target ordering Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8363
| * Ninja,Makefile: Restore Fortran module scanning in static library cycleBrad King2023-03-248-1/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since * commit eed295fd8a (cmGlobalNinjaGenerator: require that dependency info files work, 2023-02-01, v3.26.0-rc1~1^2~1), and * commit 13810dee17 (cmDependsFortran: require that dependency info files work, 2023-02-01, v3.26.0-rc1~1^2), the Ninja and Makefile generators' module dependency scanning requires that scanning results from from linked targets is available before scanning the current target. In the case of a static library cycle, we cannot expect this information from other static libraries in the cycle. Previously we supported cyclic cases at the cost of silently ignoring missing information. We already compute a global order of targets that respects all `add_dependencies`, but may break `target_link_libraries` dependencies that occur in a static library cycle. Use this order to filter the linked targets so we only expect scanning results to be available from those targets that build before the current target. This approach is sufficient to support module dependency scanning in static library cycles as long as module dependencies do not cross between two libraries in the same cycle. Fixes: #24631
| * cmGlobalGenerator: Factor out helper to check target orderingBrad King2023-03-242-2/+12
|/
* CMake 3.26.1v3.26.1Brad King2023-03-232-1/+13
|
* Merge topic 'FindHDF5-CXX-without-C' into release-3.26Brad King2023-03-231-38/+28
|\ | | | | | | | | | | | | | | a6bb4975ab FindHDF5: Restore parallel HDF5 detection with only CXX enabled Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8355
| * FindHDF5: Restore parallel HDF5 detection with only CXX enabledBrad King2023-03-221-38/+28
|/ | | | | | | | | | | | Since commit 14c46fb16a (FindHDF5: Find C component with only CXX compiler, 2022-12-13, v3.26.0-rc1~175^2), if CXX is enabled but C is not, the `_HDF5_test_regular_compiler_C` helper writes a `.cpp` source but the `_HDF5_invoke_compiler` still expects a `.c` source. Refactor the logic to select a name for the source file up front, and use it in both helpers. Fixes: #24627 Issue: #24241
* Merge topic 'clang-windows-cxx-modules' into release-3.26Brad King2023-03-218-76/+96
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1b7c26da49 Ninja: Wrap rules using '>' shell redirection with 'cmd /C' on Windows ffd8537acf Clang: Record Clang 16.0 C++ modules flags only for GNU-like front-end 6013227230 cmGlobalNinjaGenerator: Use forward slashes in clang modmap format on Windows d9d74b5e8a cmDyndepCollation: Drop outdated mentions of CXX_MODULE_INTERNAL_PARTITIONS edab56d29a cmLocalNinjaGenerator: De-duplicate condition for using 'cmd /C' on Windows 8ebe3f92b3 cmGlobalNinjaGenerator: Detect GNU-like command-line for dyndep collator f3ca199c9b cmGlobalNinjaGenerator: Factor out GNU-like command-line detection on Windows f79817fcf0 cmCxxModuleMapper: Use value semantics in path conversion callback ... Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8346
| * Ninja: Wrap rules using '>' shell redirection with 'cmd /C' on WindowsBrad King2023-03-201-1/+18
| | | | | | | | | | | | | | | | This is needed for the clang-scan-deps rule added by commit 0e21e55fc5 (Clang: Record Clang 16.0 C++ modules flags only for GNU-like front-end, 2023-03-16). Fixes: #24611
| * Clang: Record Clang 16.0 C++ modules flags only for GNU-like front-endBrad King2023-03-201-13/+15
| | | | | | | | | | | | | | | | | | | | | | The settings added by commit 3fe8e33f27 (Clang: Record Clang 16.0 flags for our experimental C++ modules support, 2023-03-03, v3.26.0-rc6~6^2) work only for the GNU-like `clang++` front-end, and not for the MSVC-like `clang-cl` on Windows. Also quote the path to `clang-scan-deps` to support spaces in its path. Issue: #24611
| * cmGlobalNinjaGenerator: Use forward slashes in clang modmap format on WindowsBrad King2023-03-181-1/+7
| | | | | | | | Issue: #24611
| * cmDyndepCollation: Drop outdated mentions of CXX_MODULE_INTERNAL_PARTITIONSBrad King2023-03-181-38/+11
| | | | | | | | | | | | | | | | | | | | These were left from an older design iteration in which, for MSVC, we needed to distinguish `cl -internalPartition` from `cl -interface` before scanning. It is no longer needed since `cl -scanDependencies` was updated to use the standard-conforming interpretation of non-exported module partition syntax. Issue: #24611
| * cmLocalNinjaGenerator: De-duplicate condition for using 'cmd /C' on WindowsBrad King2023-03-181-5/+5
| |
| * cmGlobalNinjaGenerator: Detect GNU-like command-line for dyndep collatorBrad King2023-03-182-6/+20
| | | | | | | | | | This will help the collator choose flags and path styles for modmap files.
| * cmGlobalNinjaGenerator: Factor out GNU-like command-line detection on WindowsBrad King2023-03-182-6/+16
| |
| * cmCxxModuleMapper: Use value semantics in path conversion callbackBrad King2023-03-183-3/+3
| | | | | | | | | | | | The call site already owns a path it doesn't need when the callback returns. Hand ownership to the callback so it can optionally mutate the path without necessarily allocating.
| * cmCxxModuleMapper: Remove redundant path conversion callbacksBrad King2023-03-181-4/+2
| | | | | | | | | | Two calls to `PathForGenerator` were applied to values returned by `BmiGeneratorPathForModule`, that already calls `PathForGenerator`.
* | Merge topic 'clang-cl-showIncludes' into release-3.26Brad King2023-03-216-1/+23
|\ \ | | | | | | | | | | | | | | | | | | | | | 843fc607de Ninja: Restore detection of clang-cl showIncludes prefix 3346570ae9 Tests: Comment RunCMake.Ninja ShowIncludes sample input languages Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8344
| * | Ninja: Restore detection of clang-cl showIncludes prefixYR Chen2023-03-206-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 8f82e755f3 (Ninja: Fix detection of MSVC showIncludes prefix in Italian, 2023-01-26, v3.26.0-rc1~20^2) our regex no longer matches the output from `clang-cl`, which uses a relative path, forward slashes, and is always in English [1]: Note: including file: ./foo.h Update the regex to match that too. [1] https://github.com/llvm/llvm-project/blob/llvmorg-16.0.0/clang/lib/Frontend/HeaderIncludeGen.cpp#L102 Co-authored-by: Brad King <brad.king@kitware.com>
| * | Tests: Comment RunCMake.Ninja ShowIncludes sample input languagesBrad King2023-03-201-0/+6
| |/
* | Merge topic 'FindPython-SOSABI-handling' into release-3.26Brad King2023-03-213-4/+8
|\ \ | |/ |/| | | | | | | | | 4c902d675b FindPython: ensure Stable ABI is correctly handled Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8345
| * FindPython: ensure Stable ABI is correctly handledMarc Chevrier2023-03-203-4/+8
|/ | | | Fixes: #24610
* Merge topic 'CMakePackageConfigHelpers-ARCH_INDEPENDENT' into release-3.26Brad King2023-03-171-1/+1
|\ | | | | | | | | | | | | | | 6988ddf8ac WriteBasicConfigVersionFile: Fix regression in ARCH_INDEPENDENT check Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8337
| * WriteBasicConfigVersionFile: Fix regression in ARCH_INDEPENDENT checkBrad King2023-03-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactoring in commit 77982de955 (CMakePackageConfigHelpers: only emit arch check if needed, 2023-01-29, v3.26.0-rc1~16^2) did not correctly preserve the check for empty `CMAKE_SIZEOF_VOID_P`. Fix it. The difference between the version files generated before and after is: -if(CMAKE_SIZEOF_VOID_P STREQUAL "" OR "8" STREQUAL "") +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") This restores the check generated before the above-mentioned commit. Fixes: #24608
* | Merge topic 'FindMatlab-R2023a' into release-3.26Brad King2023-03-171-0/+1
|\ \ | |/ |/| | | | | | | | | 58ab34d88a FindMatlab: add version/release map for R2023a Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8334
| * FindMatlab: add version/release map for R2023ascivision2023-03-161-0/+1
|/
* CMake 3.26.0v3.26.0Brad King2023-03-141-1/+1
|
* Merge topic 'revert-CheckCompilerFlag-clang-argument-unused' into release-3.26Brad King2023-03-145-4/+26
|\ | | | | | | | | | | | | | | | | 97fcd3bd30 CheckCompilerFlag: Revert 'Match the Clang "argument unused" output ...' Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !8322
| * CheckCompilerFlag: Revert 'Match the Clang "argument unused" output ...'Brad King2023-03-135-4/+26
|/ | | | | | | | | | | | | | Revert commit 5b45a3d0ce (CheckCompilerFlag: Match the Clang "argument unused" output for all languages, 2023-01-23, v3.26.0-rc1~38^2). It broke existing projects that were silently tolerating unrelated unused arguments in their checks for C and CXX. For example, using `CFLAGS=-nostdinc` or `CXXFLAGS=-nostdinc++` causes those flags to be used when driving the linker as well, and Clang warns they are unused in that case. Add a test case covering the now-restored behavior. Fixes: #24591
* Merge branch 'release-3.25' into release-3.26Brad King2023-03-130-0/+0
|\
| * Merge branch 'backport-3.25-log-failed-compiler-id' into release-3.25Brad King2023-03-131-2/+4
| |\ | | | | | | | | | Merge-request: !8320
| | * CompilerId: Restore logging of failed identifications in CMake 3.25Brad King2023-03-131-2/+4
| |/ | | | | | | | | | | | | | | | | | | Changes in commit 9c5bd7fe3a (CompilerId: Output errors from all attempts at detection, 2022-08-16, v3.25.0-rc1~290^2) accidentally stopped logging failed compiler identification build output. This was fixed for CMake 3.26 and later by commit 24ccc8c3c9 (CompilerId: Restore logging of failed identifications, 2023-01-16, v3.26.0-rc1~70^2~6). Backport it to 3.25.
* | Merge topic 'revert-optimize-target-depends-closure' into release-3.26Brad King2023-03-132-68/+56
|\ \ | | | | | | | | | | | | | | | | | | 685108a582 Ninja: Revert "Optimize target depends closure" due to performance regression Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8315
| * | Ninja: Revert "Optimize target depends closure" due to performance regressionBrad King2023-03-102-68/+56
|/ / | | | | | | | | | | Revert commit 1f16af01f4 (cmGlobalNinjaGenerator: Optimize target depends closure, 2023-01-17, v3.26.0-rc1~74^2). It regressed generation time for some projects. Revert it pending further investigation.
* | CMake 3.26.0-rc6v3.26.0-rc6Brad King2023-03-081-1/+1
| |
* | Merge branch 'release-3.25' into release-3.26Brad King2023-03-081-0/+7
|\ \ | |/
| * CMake 3.25.3v3.25.3Brad King2023-03-082-1/+8
| |
* | Merge branch 'release-3.25' into release-3.26Brad King2023-03-081-0/+7
|\ \ | |/
| * Merge branch 'release-3.24' into release-3.25Brad King2023-03-081-0/+7
| |\
| | * CMake 3.24.4v3.24.4Brad King2023-03-082-1/+8
| | |
* | | Merge topic 'revert-vs-BuildInParallel' into release-3.26Brad King2023-03-081-7/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | abb1c12162 VS: Revert "Build custom commands concurrently when possible" Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8297
| * | | VS: Revert "Build custom commands concurrently when possible"Brad King2023-03-071-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 33c15ae2b9 (VS: Build custom commands concurrently when possible, 2023-01-19, v3.26.0-rc1~56^2) we add `BuildInParallel` to custom commands in `.vcxproj` files. However, this can break existing projects that implicitly rely on serial execution of custom commands. For example, custom commands in our FindCUDA module run MSVC (via nvcc) with a common `vc*.pdb` file, and therefore cannot run in parallel. Revert use of `BuildInParallel` while leaving most of the infrastructure for it in place. It can be restored later with an option or policy. Fixes: #24576 Issue: #18405
* | | | Merge branch 'release-3.25' into release-3.26Brad King2023-03-080-0/+0
|\ \ \ \ | | |/ / | |/| |
| * | | Merge branch 'release-3.24' into release-3.25Brad King2023-03-080-0/+0
| |\ \ \ | | | |/ | | |/|
| | * | Merge branch 'backport-3.24-file-install-macos' into release-3.24Brad King2023-03-081-0/+6
| | |\ \ | | | | | | | | | | | | | | | Merge-request: !8293
| * | \ \ Merge branch 'backport-3.24-file-install-macos' into release-3.25Brad King2023-03-081-0/+6
| |\ \ \ \ | | | |/ / | | |/| | | | | | | Merge-request: !8293
* | | | | Merge topic 'file-install-macos' into release-3.26Brad King2023-03-081-0/+6
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a6f5bdd650 Merge branch 'backport-3.24-file-install-macos' 35f2b1bf5b file(INSTALL): Fix file ownership regression when running as root on macOS a5d6548587 file(INSTALL): Fix file ownership regression when running as root on macOS Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8293
| * | | | Merge branch 'backport-3.24-file-install-macos'Brad King2023-03-080-0/+0
| |\ \ \ \ | | | |/ / | | |/| |
| | * | | file(INSTALL): Fix file ownership regression when running as root on macOSBrad King2023-03-071-0/+6
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | Backport KWSys commit `51272e80e` (SystemTools: Avoid macOS copyfile semantic differences as root, 2023-03-07). Fixes: #24577
| * | | file(INSTALL): Fix file ownership regression when running as root on macOSBrad King2023-03-071-0/+6
|/ / / | | | | | | | | | | | | | | | | | | Backport KWSys commit `51272e80e` (SystemTools: Avoid macOS copyfile semantic differences as root, 2023-03-07). Fixes: #24577