summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalNinjaGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* Ninja: Rename internal Fortran scanner flag from --pp= to --src=Brad King2023-05-091-14/+17
| | | | | The value represents the source file to be scanned. It is not always preprocessor output.
* CMake code rely on cmList class for CMake lists management (part. 2)Marc Chevrier2023-04-291-16/+12
|
* Merge topic 'ninja-performance'Brad King2023-03-301-12/+3
|\ | | | | | | | | | | | | | | 426f3295f6 Ninja: Use more efficient data structures to collect outputs Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8371
| * Ninja: Use more efficient data structures to collect outputsNicolas van Kempen2023-03-281-12/+3
| |
* | Merge topic 'mingw-slashes'Brad King2023-03-281-4/+6
|\ \ | |/ |/| | | | | | | | | | | a67cd9c39c Ninja: Restore slash style for MinGW tools when extra languages are enabled Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8368
| * Ninja: Restore slash style for MinGW tools when extra languages are enabledBrad King2023-03-271-4/+6
| | | | | | | | | | | | | | | | | | | | 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 'clang-windows-cxx-modules'Brad King2023-03-211-14/+39
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * cmGlobalNinjaGenerator: Use forward slashes in clang modmap format on WindowsBrad King2023-03-181-1/+7
| | | | | | | | Issue: #24611
| * cmGlobalNinjaGenerator: Detect GNU-like command-line for dyndep collatorBrad King2023-03-181-6/+16
| | | | | | | | | | 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-181-6/+15
| |
| * cmCxxModuleMapper: Use value semantics in path conversion callbackBrad King2023-03-181-1/+1
| | | | | | | | | | | | 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.
* | Merge topic 'revert-optimize-target-depends-closure'Brad King2023-03-131-66/+50
|\ \ | |/ | | | | | | | | | | 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-101-66/+50
| | | | | | | | | | | | 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.
* | Ninja Multi-Config: Write output path prefixKyle Edwards2023-03-021-10/+15
| | | | | | | | Fixes: #24566
* | Apple: Handle generation and comsuption of text-based stubs (.tbd files)Marc Chevrier2023-03-011-0/+4
| | | | | | | | Fixes: #24123
* | cmGlobalNinjaGenerator: Remove unused memberBrad King2023-02-071-7/+0
|/ | | | | | | | The `DisableCleandead` member was added by commit c5011399c5 (Ninja: Avoid cleandead with dyndep bindings for Fortran module dependencies, 2020-11-10, v3.19.0~15^2) but has not been used since commit 1144d25094 (Merge branch 'backport-ninja-no-cleandead' into ninja-no-cleandead, 2020-12-14, v3.19.2~4^2). Remove it.
* 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.
* Ninja: require Ninja 1.11 for C++ module supportBen Boeckel2023-01-231-8/+13
| | | | | See: https://gitlab.kitware.com/cmake/cmake/-/issues/18355#note_1296721 See: https://github.com/ninja-build/ninja/pull/1937
* cmGlobalNinjaGenerator: Optimize target depends closurePierre Testart2023-01-171-50/+66
| | | | | | | | | | Rewrite AppendTargetDependsClosure method to only cache local target outputs, not including outputs from dependencies. Caching all recursive target outputs causes much time to be spent merging sets that have many elements in common (from targets that are included through multiple dependency paths). It is faster to always iterate over all dependencies instead.
* Make vector operations more efficientRose2022-12-101-0/+1
|
* Merge topic 'clang-tidy-export-fixes-dir'Brad King2022-12-071-0/+4
|\ | | | | | | | | | | | | | | 232467eb1c clang-tidy: add <LANG>_CLANG_TIDY_EXPORT_FIXES_DIR property Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !7982
| * clang-tidy: add <LANG>_CLANG_TIDY_EXPORT_FIXES_DIR propertyKyle Edwards2022-12-061-0/+4
| | | | | | | | Fixes: #21362
* | cmCxxModuleMapper: support the `clang` module map formatBen Boeckel2022-12-021-0/+2
|/
* cmDyndepCollation: factor out metadata writing for dyndepBen Boeckel2022-11-301-272/+10
|
* cmDyndepCollation: factor out parsing dyndep informationBen Boeckel2022-11-301-93/+4
|
* cmGlobalGenerator: factor out C++ module support checkingBen Boeckel2022-11-231-10/+4
| | | | This will simplify adding support to other generators.
* cmGlobalNinjaGenerator: fix comment typoBen Boeckel2022-11-211-1/+1
|
* Refactor: `cmGlobalGeneratorFactory::GetDocumentation` returns entryAlex Turbov2022-11-171-7/+6
| | | | | | | | | | Before, a documentation entry was in/out parameter. Now it's a normal return value. This also makes possible to eliminate defaulted default ctor for `cmDocumentationEntry` for C++ 11. Also, simplify `cmake::AppendGlobalGeneratorsDocumentation()`.
* EXPORT_COMPILE_COMMANDS: add `output` fieldBen Boeckel2022-10-281-2/+5
| | | | | | | | Also write for all configurations from multi-config generators. This field was added in the Clang 5 documentation and not present in the Clang 4 documentation (sometime between Dec 2016 and Mar 2017 according to `web.archive.org`).
* Merge topic 'ninja-intl-paths'Brad King2022-10-271-13/+0
|\ | | | | | | | | | | | | | | a12050666c Tests: Add case for ninja with non-ascii chars 02a04dd9c7 Ninja: Restore support for non-ascii paths on Windows with ninja<=1.10 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7833
| * Ninja: Restore support for non-ascii paths on Windows with ninja<=1.10Brad King2022-10-261-13/+0
| | | | | | | | | | | | | | | | Revert commit bbdb000c55 (GlobalNinjaGenerator: enlarge file stream buffer, 2022-01-25, v3.23.0-rc1~68^2). Somehow `rdbuf()->pubsetbuf()` is resetting our imbued locale and `cm_codecvt` that handles encoding. Fixes: #24089
* | cmCxxModuleMapper: support MSVC module map formatBen Boeckel2022-08-021-1/+3
| | | | | | | | | | | | THis is a set of flags stored in a response file which informs the compiler about where to place output BMI files as well as find the required BMIs.
* | cmCxxModuleMapper: track transitive modules for MSVCBen Boeckel2022-08-021-5/+91
| | | | | | | | MSVC needs the transitive closure of module usage to compile.
* | cmGlobalNinjaGenerator: verify that private sources stay privateBen Boeckel2022-07-061-0/+27
| | | | | | | | | | Private source files are not installed or made available, so they must not be required by public module interface units at all.
* | cmGlobalNinjaGenerator: generate install rules for BMI filesBen Boeckel2022-07-061-2/+98
| |
* | cmGlobalNinjaGenerator: generate module property files for each target exportBen Boeckel2022-07-061-0/+111
| |
* | cmGlobalNinjaGenerator: verify generated objects against filesetsBen Boeckel2022-07-061-3/+137
| |
* | cmGlobalNinjaGenerator: use `cmModuleMapper` implementationBen Boeckel2022-06-161-38/+31
| |
* | cmGlobalNinjaGenerator: add a TODO for header unitsBen Boeckel2022-06-161-1/+2
| |
* | cmGlobalNinjaGenerator: simplify a string building callBen Boeckel2022-06-141-1/+1
| |
* | cmSystemTools: Fix 'ErrorOccurred' spellingFeRD (Frank Dana)2022-06-131-8/+8
| | | | | | | | | | | | | | | | Rename the booleans 's_ErrorOccured' and 's_FatalErrorOccured' to 's_ErrorOccurred' and 's_FatalErrorOccurred', respectively. Rename the getters and setters to 'Get[Fatal]ErrorOccurred' and 'Set[Fatal]ErrorOccurred', and fix all uses across the codebase.
* | cmGlobalNinjaGenerator: use an extention based on the modmapfmtBen Boeckel2022-04-271-1/+6
| |
* | cmGlobalNinjaGenerator: escape `:` in module namesBen Boeckel2022-04-271-1/+3
| | | | | | | | | | | | Not all filesystems support `:` in the name, so replace it with `-`. As `-` is not otherwise allowed in module names anyways, there is no risk of conflict.
* | cmOutputConverter: Always set relative path top source and binary togetherBrad King2022-02-281-2/+1
|/ | | | | Refactor to set both at once so we have a single place in the code that knows both have been set.
* Merge topic 'enlarge-build-file-stream-buffer'Brad King2022-01-271-0/+13
|\ | | | | | | | | | | | | bbdb000c55 GlobalNinjaGenerator: enlarge file stream buffer Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6903
| * GlobalNinjaGenerator: enlarge file stream bufferClemens Wasser2022-01-261-0/+13
| |
* | Merge topic 'encode-literal-inplace'Brad King2022-01-271-6/+10
|\ \ | | | | | | | | | | | | | | | | | | 5c3f188bef GlobalNinjaGenerator: Add EncodeLiteralInplace which doesn't copy Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6904
| * | GlobalNinjaGenerator: Add EncodeLiteralInplace which doesn't copyClemens Wasser2022-01-251-6/+10
| |/
* | cmBuildOptions: Split build arguments into separate object.Carsten Rudolph2022-01-221-1/+1
|/
* Merge topic 'nmc-cross-config-target-deps'Brad King2021-11-051-3/+0
|\ | | | | | | | | | | | | | | | | | | 95f44e00cd Ninja Multi-Config: Fix custom command target dependencies in cross-configs a883363935 Ninja Multi-Config: Fix internal cross-config target dependency ordering 16e24748c5 Ninja Multi-Config: Fix cross-config custom command dependency tracing Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !6702