summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake 3.26.1v3.26.1Brad King2023-03-231-1/+1
|
* 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
* 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`.
* CMake 3.26.0v3.26.0Brad King2023-03-141-1/+1
|
* 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 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
* | 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
* CMake 3.26.0-rc5v3.26.0-rc5Brad King2023-03-011-1/+1
|
* ccmake: Update minimum required version of CMake for curses checkBrad King2023-03-011-4/+1
| | | | | This should have been part of commit d6b811fb82 (Require CMake 3.13+ to configure CMake itself, 2022-02-22, v3.24.0-rc1~605^2~1).
* CMake 3.26.0-rc4v3.26.0-rc4Brad King2023-02-221-1/+1
|
* Merge topic 'xcode-revert-header-map' into release-3.26Brad King2023-02-201-0/+1
|\ | | | | | | | | | | | | 841272eb35 Xcode: Restore suppression of header maps Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8218
| * Xcode: Restore suppression of header mapsBrad King2023-02-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 8527f42b96 (Xcode: Explicitly disable deprecated user include path feature, 2023-01-31, v3.26.0-rc1~7^2) we dropped the Xcode build setting `USE_HEADERMAP = NO` because Xcode 14's "Build Documentation" feature (`xcodebuild RUN_DOCUMENTATION_COMPILER=YES`) fails in some cases without header maps. However, enabling header maps causes Xcode to add `-iquote .../foo.hmap` and `-I .../bar.hmap` flags that can change the intended header file search order based on the contents of the header maps. This can break existing projects. Restore the `USE_HEADERMAP = NO` setting to fix the header file search order. Further investigation will be needed to resolve the problematic cases with the Xcode 14 "Build Documentation" feature. Meanwhile projects encountering such cases can set the `XCODE_ATTRIBUTE_USE_HEADERMAP` target property to `YES` themselves. Fixes: #24418 Issue: #24379
* | cmCxxModuleMapper: Specify clang's BMI dependency with new formChuanqi Xu2023-02-171-1/+1
|/
* CMake 3.26.0-rc3v3.26.0-rc3Brad King2023-02-151-1/+1
|
* CMake 3.26.0-rc2v3.26.0-rc2Brad King2023-02-091-1/+1
|
* Merge topic 'stop_parsing_after_first_script_arg' into release-3.26Brad King2023-02-091-5/+7
|\ | | | | | | | | | | | | f9e8a067c2 cmake: Stop parsing after `--` when detecting script mode Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8186
| * cmake: Stop parsing after `--` when detecting script modeRobert Maynard2023-02-081-5/+7
| | | | | | | | | | | | | | | | The fix in commit 08aa516880 (cmake: Stop parsing after `--` when detecting script mode, 2022-12-06, v3.26.0-rc1~216^2) only corrected the case where `-P -- -P <arg>` occurred and not `-P -- -P -<other>`. Fixes: #24220
* | AutoMoc: Fix verbose mode messageJoerg Bornemann2023-02-071-1/+1
|/ | | | AutoMoc generates because moc settings changed, not uic.
* CMake 3.26.0-rc1v3.26.0-rc1Brad King2023-02-021-1/+1
|
* Merge topic 'modules-lang-specific-target-linked-dirs' into release-3.26Brad King2023-02-029-14/+41
|\ | | | | | | | | | | | | | | | | | | | | | | | | 13810dee17 cmDependsFortran: require that dependency info files work eed295fd8a cmGlobalNinjaGenerator: require that dependency info files work 837f7c113a cmCommonTargetGenerator: classify linked target directories by language d19648a928 cmGeneratorTarget: add a method to query if Fortran sources exist 245a89d8b6 cmMakefileTargetGenerator: make "target linked info" variable Fortran-specific aeb1b2ae3d cmMakefileTargetGenerator: simplify string streaming Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !8146
| * cmDependsFortran: require that dependency info files workBen Boeckel2023-02-012-6/+12
| | | | | | | | | | Now that only targets expected to have information are listed, all `DependInfo.cmake` files should exist.
| * cmGlobalNinjaGenerator: require that dependency info files workBen Boeckel2023-02-011-1/+6
| | | | | | | | | | Now that only targets expected to have information are listed, all `<LANG>Modules.json` files should exist.
| * cmCommonTargetGenerator: classify linked target directories by languageBen Boeckel2023-02-014-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These directories are used to direct collators for Fortran and C++ modules to consume dependent module information to properly collate. However, the consumption of these files merely checks for existence of the file, not whether they are actually needed anymore. The problem arises when a target has Fortran or C++ modules at point A, a build occurs populating this file, and then the target is updated to no longer have potential modules. The `DependInfo.make` (for `Makefiles`) or `<LANG>DependInfo.json` (for `Ninja`) files still exist as they are never guaranteed to be cleaned up. This can introduce stale information to the build which may cause a false-positive compilation if a module file happens to still exist and gets found this way. Instead, query the `linked-target-dirs` using the language in question and only add the directory if it contains potential sources for modules coming from the language in question.
| * cmGeneratorTarget: add a method to query if Fortran sources existBen Boeckel2023-02-012-0/+11
| |
| * cmMakefileTargetGenerator: make "target linked info" variable Fortran-specificBen Boeckel2023-02-012-2/+2
| | | | | | | | This variable is Fortran-specific, so clarify that through its name.
| * cmMakefileTargetGenerator: simplify string streamingBen Boeckel2023-02-011-2/+2
| |
* | Begin 3.26 release versioningBrad King2023-02-011-3/+3
| |
* | try_compile: Record propagated CMake variables in configure logBrad King2023-02-014-0/+49
| | | | | | | | | | | | | | These provide more detailed information about how the test project was configured. Issue: #23200
* | ConfigureLog: De-duplicate event backtrace and check key generationBrad King2023-02-015-14/+10
| | | | | | | | All event kinds have these fields, so centralize their implementation.
* | Merge branch 'upstream-KWSys' into update-kwsysBrad King2023-02-012-4/+50
| | | | | | | | | | | | # By KWSys Upstream * upstream-KWSys: KWSys 2023-02-01 (cafea4c8)
* | Merge topic 'xcode-header-search'Brad King2023-02-011-1/+2
|\ \ | | | | | | | | | | | | | | | | | | 8527f42b96 Xcode: Explicitly disable deprecated user include path feature Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8143
| * | Xcode: Explicitly disable deprecated user include path featureBrad King2023-01-311-1/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `ALWAYS_SEARCH_USER_PATHS` feature is documented [1] to search the paths in `USER_HEADER_SEARCH_PATHS` before `HEADER_SEARCH_PATHS`. The behavior has been long discouraged and was deprecated by Xcode 8.3. Furthermore, Xcode explicitly disables this setting when creating new projects. We can do that too since we do not generate any user header search paths anyway. Previously we always set `USE_HEADERMAP` to `NO` to prevent Xcode's warning about an ancient "header map" feature deprecation. However, this somehow breaks Xcode 14's "Build Documentation" feature. Setting `ALWAYS_SEARCH_USER_PATHS` to `NO` seems to prevent the header map warning too, so drop `USE_HEADERMAP` to fix the documentation feature. [1] https://developer.apple.com/documentation/xcode/build-settings-reference Fixes: #24379
* | Merge topic 'cmTarget-refactorings'Brad King2023-02-011-389/+335
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 33f629184f cmTarget: simplify `CheckLinkLibraryPattern` 22b9ce73e7 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE usage requirements 332d2f8f52 cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT usage requirements 15eec07500 cmTarget: refactor INTERFACE_LINK_LIBRARIES usage requirements e80689d101 cmTarget: refactor LINK_LIBRARIES usage requirements 4f009d2121 cmTarget: refactor LINK_DIRECTORIES usage requirements 99e783e735 cmTarget: refactor LINK_OPTIONS usage requirements fd295dd263 cmTarget: refactor SOURCES usage requirements ... Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8127
| * | cmTarget: simplify `CheckLinkLibraryPattern`Ben Boeckel2023-01-311-13/+8
| | | | | | | | | | | | | | | Now that usage properties have more of a representation, the function can just take the requirement directly.
| * | cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE usage requirementsBen Boeckel2023-01-311-27/+9
| | |
| * | cmTarget: refactor INTERFACE_LINK_LIBRARIES_DIRECT usage requirementsBen Boeckel2023-01-311-42/+42
| | |
| * | cmTarget: refactor INTERFACE_LINK_LIBRARIES usage requirementsBen Boeckel2023-01-311-28/+9
| | |
| * | cmTarget: refactor LINK_LIBRARIES usage requirementsBen Boeckel2023-01-311-25/+9
| | |
| * | cmTarget: refactor LINK_DIRECTORIES usage requirementsBen Boeckel2023-01-311-35/+14
| | |
| * | cmTarget: refactor LINK_OPTIONS usage requirementsBen Boeckel2023-01-311-31/+14
| | |
| * | cmTarget: refactor SOURCES usage requirementsBen Boeckel2023-01-311-32/+19
| | |
| * | cmTarget: refactor PRECOMPILE_HEADERS usage requirementsBen Boeckel2023-01-311-43/+23
| | |