summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* cmGlobalGenerator: generate build database files for targetsBen Boeckel2024-08-271-0/+12
|
* cmDyndepCollation: write build database metadataBen Boeckel2024-08-271-0/+2
| | | | Generators will hook this up into the build graph as needed.
* cmGlobalGenerator: add a method to make an output-formatted stringBen Boeckel2024-08-271-0/+12
| | | | | | This is needed to inject arguments through flag generation mechanisms so that they can all be unescaped uniformly. Eventually, these methods should go away and the escape/unescape dance be avoided completely.
* Install: Add parallel installation optionMartin Duffy2024-07-151-0/+17
| | | | Fixes: #26000
* add_custom_command: Add CODEGEN supportJuan Ramos2024-07-011-0/+5
| | | | | | | | | | | By specifying CODEGEN as an argument to add_custom_command the custom command will be added to a codegen build target. The intent is to provide a convenient way for users to get their generated files without having to build the whole project. This can be helpful for code analysis tools which can be useful for IDEs and CI.
* cxxmodules: link to `std`-providing targets when availableBen Boeckel2024-04-111-0/+1
|
* Merge topic 'restore-pch-with-unity'Brad King2024-02-051-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | 30829da506 Unity: Clarify source comments on unity build transformation 87bf1c6c33 Merge branch 'unity-after-compile-features' into restore-pch-with-unity df08c37a42 cmGlobalGenerator: Add unity/pch sources after computing compile features 004c3c3986 Tests: Add case covering PCH in a unity build Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Ben Boeckel <ben.boeckel@kitware.com> Merge-request: !9215
| * cmGlobalGenerator: Add unity/pch sources after computing compile featuresBrad King2024-02-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sources that will be scanned for C++ module dependencies need to be excluded from unity builds. We need to compute compile features in order to know which sources will be scanned. Unity build and PCH sources can be added afterward without changing the compile features. This re-implements commit 76b5383123 (cmGlobalGenerator: add unity sources after computing target compile features, 2024-01-01, v3.28.2~17^2~1) using a simpler approach that also preserves support for PCH with Unity builds. Issue: #25650 Co-authored-by: Ben Boeckel <ben.boeckel@kitware.com>
* | Merge topic 'cxxmodules-no-unity'Brad King2024-01-101-0/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 63bbb3768d cmLocalGenerator: ignore scanned sources for unity builds 76b5383123 cmGlobalGenerator: add unity sources after computing target compile features 7fc2a83fe6 Tests/CXXModules: add a test with unity build support Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9118
| * | cmGlobalGenerator: add unity sources after computing target compile featuresBen Boeckel2024-01-051-0/+1
| |/ | | | | | | | | | | We need to know which sources will be scanned for C++ module dependencies in order to exclude them from unity builds. The addition of unity sources will not change the set of features.
* | cmGlobalGenerator: Allow passing language to GetLangaugeOutputExtensionEvan Wilde2023-12-051-0/+2
|/ | | | | | | | | | 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.
* cmGlobalGenerator: give context about module queriesBen Boeckel2023-11-011-1/+11
| | | | | | Some queries are merely investigating support in order to change behavior. Let the method know so that any internal errors can be skipped over.
* cxxmodules: generate synthetic targets as an initial passBen Boeckel2023-08-171-0/+2
| | | | | | We need to be able to construct BMIs that will be usable from the client modules for the target importing the module, so create BMI-only compilation rules for `IMPORTED` targets to create these BMIs.
* IWYU: Update for Debian 12 CI jobBrad King2023-07-281-4/+4
| | | | | | `include-what-you-use` diagnostics, in practice, are specific to the environment's compiler and standard library. Update includes to satisfy IWYU for our CI job under Debian 12.
* Merge topic 'command-job-server-aware'Brad King2023-07-201-0/+2
|\ | | | | | | | | | | | | | | 95941fd990 add_custom_{target,command}: Add argument JOB_SERVER_AWARE Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8547
| * add_custom_{target,command}: Add argument JOB_SERVER_AWAREChris Mahoney2023-07-191-0/+2
| | | | | | | | Issue: #16273
* | LINK_OPTIONS: ensure correct dollar escapingMarc Chevrier2023-07-171-0/+2
| | | | | | | | | | | | Ensure correct escaping for Ninja and Makefile generators. Fixes: #25049
* | codecvt: Extrace codecvt::Encoding to remove codecvt includesClemens Wasser2023-06-221-5/+2
|/
* cxxmodules: remove `CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP` variableBen Boeckel2023-06-011-4/+0
| | | | It is now subsumed by the UUID setting completely.
* Merge topic 'cmake-verbose-print-build-tool-command'Brad King2023-05-311-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8451a3f0b5 cmGlobalGenerator: use a stream for output in `Build` e060666531 cmake: write the build command itself with `--verbose` b017c9f127 cmGlobalGenerator: fix off-by-one for `&&` command joining c715fd8d76 cmGlobalGenerator: quote commands in `::Build` output d6c0e827bc cmGlobalGenerator: add a `QuotedPrintable` method for commands 28ee3bef34 cmGlobalGenerator: add missing spaces in output 465ab8d872 cmGlobalGenerator: use `cmStrCat` in `::Build` 81d45dabc4 cmOutputConverter: add a `static` version of `EscapeForShell` Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Alex <leha-bot@yandex.ru> Merge-request: !8183
| * cmGlobalGenerator: use a stream for output in `Build`Ben Boeckel2023-05-271-1/+1
| | | | | | | | | | This allows output to show up in output immediately instead of being batched.
| * cmGlobalGenerator: add a `QuotedPrintable` method for commandsBen Boeckel2023-05-161-0/+1
| |
* | Apple Framework: enhance path parsingMarc Chevrier2023-05-211-2/+24
|/
* Link step: use linker dependency linker fileMarc Chevrier2023-05-031-0/+2
| | | | | | Based on work done by @ben.boeckel (!8051) Fixes: #22217
* Autogen: Defer setup until Generate stepOrkun Tokdemir2023-04-051-0/+6
| | | | It is better to set variables up once all target dependencies are known.
* Merge topic 'automoc-cxx-standard'Brad King2023-03-311-4/+0
|\ | | | | | | | | | | | | | | 429a452705 Autogen: Add target's C++ standard to moc_predef.h 21f812e57c Autogen: Split creation and setup of custom targets into separate steps Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8359
| * Autogen: Split creation and setup of custom targets into separate stepsOrkun Tokdemir2023-03-241-4/+0
| | | | | | | | | | | | | | Defer the setup step until after compile features have been finalized on normal targets. Later this will help pass the information to Qt tools. Issue: #24624
* | macOS: Do not pass Apple-specific flags to llvm-stripBrad King2023-03-291-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit cf82300a63 (BinUtils: Clarify search logic and make it more consistent, 2021-05-27, v3.21.0-rc1~119^2~2) we prefer `llvm-strip` over `strip` when using Clang. However, since commit 20291e8e72 (install: Fix stripping on macOS, 2019-01-30, v3.14.0-rc1~31^2) on macOS we add flags `-u -r`, needed by Apple's `strip` for executables, but that `llvm-strip` does not need or support. Improve the condition to add Apple-specific flags only when the selected `strip` tool is Apple's. Note that Apple dylibs must be stripped with `-x` with either Apple's `strip` or `llvm-strip`. Fixes: #24601
* | Merge topic 'module-depends-static-lib-cycle'Brad King2023-03-271-0/+5
|\ \ | |/ |/| | | | | | | | | | | | | 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
| * cmGlobalGenerator: Factor out helper to check target orderingBrad King2023-03-241-0/+5
| |
* | cmMakefile: Store recursion depth limit as size_tBrad King2023-03-131-1/+1
|/
* Merge topic 'code-comment-typos'Craig Scott2022-12-191-1/+1
|\ | | | | | | | | | | | | a817948423 Code comments: Fix trivial typos Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8030
| * Code comments: Fix trivial typosCraig Scott2022-12-171-1/+1
| |
* | cmGlobalGenerator: factor out C++ module support checkingBen Boeckel2022-11-231-0/+6
|/ | | | This will simplify adding support to other generators.
* Genex LINK_LIBRARY: Add support for framework with postfixMarc Chevrier2022-09-211-4/+53
|
* renames method FinalizeTargetCompileInfo() in FinalizeTargetConfiguration().Marc Chevrier2022-09-071-1/+1
|
* cmTarget: Add `HasKnownObjectFileLocation()` shorthandHyper Nova Sun2022-04-111-4/+7
| | | | | | | | Allow `cmGlobalGenerator`s to decide `HasKnownObjectFileLocation()` per given `cmTarget` - `cmGlobalGenerator::HasKnownObjectFileLocation()` now takes an optional `cmGeneratorTarget` - `cmTarget::HasKnownObjectFileLocation()` added as a shorthand
* FILE_SET: Add VERIFY_HEADER_SETS target propertyKyle Edwards2022-03-291-0/+2
| | | | Fixes: #23338
* GenEx/LINK_LIBRARY: Add features for framework support on AppleMarc Chevrier2022-02-151-2/+5
|
* cmGlobalGenerator: Add helper to split framework pathMarc Chevrier2022-02-131-0/+4
| | | | | cmComputeLinkInformation and cmGlobalXCodeGenerator now rely on this method to handle framework paths.
* cmBuildOptions: Split build arguments into separate object.Carsten Rudolph2022-01-221-3/+5
|
* CMP0028: Report the target whose link interface has an offending itemBrad King2021-12-161-0/+1
| | | | | | | | | | | | Previously items linked via the link interface of a dependency were reported in CMP0028 messages as if directly linked by a target. Clarify the messages to indicate that an offending item is actually in the link interface of a given target, regardless of its consumer. Move the check to the end of generation and look through the final set of link implementations and link interfaces that were used for generation. This avoids repeating messages on link interfaces that have multiple consumers.
* Ninja Multi-Config: Fix cross-config custom command dependency tracingBrad King2021-11-041-0/+2
| | | | | | Process `CMAKE_CROSS_CONFIGS` and friends to properly configure the generator for cross-config behavior before custom command dependency tracing.
* Restore honoring CMAKE_GENERATOR_INSTANCE in toolchain fileBrad King2021-10-201-11/+0
| | | | | | | | | | | | | | | Revert the changes from commit d5b5c19278 (cmGlobalGenerator: FindMakeProgram() before CMakeDetermineSystem, 2020-06-15, v3.19.0-rc1~619^2~3) and commit ef91fb02f3 (cmGlobalGenerator: FindMakeProgram() at a generator-specific time, 2020-11-23, v3.19.1~2^2). We must delay selecting the location of MSBuild until after an instance of Visual Studio has been selected. It is now safe to revert the ordering because the motivating use case (sysroot detection in Platform/Android-Determine) has been implemented another way. Fixes: #22782
* cmGlobalGenerator: Add method to check if generator is at least VS 10Brad King2021-10-201-0/+2
|
* Rename cmProp in cmValueMarc Chevrier2021-09-211-3/+3
|
* cmGlobalGenerator::PrintCompilerAdvice: use cmProp as augmentMarc Chevrier2021-09-191-1/+1
|
* Refactor: cmGlobalGenerator::GetGlobalSetting returns cmPropMarc Chevrier2021-08-091-1/+2
|
* cmGlobalGenerator: Use cmMakefile::CreateNewTarget to add global targetsNAKAMURA Takumi2021-07-081-1/+1
| | | | `cmMakefile::CreateNewTarget` updates also `cmMakefile::OrderedTargets`.
* Source: Add cmInstallRuntimeDependencySetKyle Edwards2021-06-041-0/+11
|