summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.h
Commit message (Collapse)AuthorAgeFilesLines
* LICENSE: Replace references to Copyright.txt with LICENSE.rstKitware Robot2025-03-031-1/+1
| | | | | | | | | | ``` git grep -lz 'Copyright.txt or https://cmake.org/licensing ' | while IFS= read -r -d $'\0' f ; do sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / { s/Copyright.txt/LICENSE.rst/ }' "$f" ; done ```
* Merge branch 'backport-3.31-custom-transitive-properties'Brad King2025-02-231-1/+2
|\
| * Merge branch 'backport-3.30-custom-transitive-properties'Brad King2025-02-231-1/+2
| |\
| | * GenEx: Fix evaluation of LINK_LIBRARIES as custom transitive propertyBrad King2025-02-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix logic from commit b9ee79b8a1 (GenEx: Add support for custom transitive compile properties, 2024-05-09, v3.30.0-rc1~82^2~1) to more precisely know when we are computing the link dependency graph. Issue: #20416 Issue: #26709
* | | Revise C++ coding style using clang-format with "east const"Kitware Robot2025-01-231-183/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`, now with "east const" enforcement. Use `clang-format` version 18. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit. Issue: #26123
* | | Merge topic 'extern-domain'Brad King2025-01-221-0/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | e109307c43 Add support for foreign targets Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !10171
| * | | Add support for foreign targetsVito Gamberini2025-01-211-0/+1
| | | |
* | | | CMP0026: Remove support for OLD behaviorBrad King2025-01-191-1/+1
| | | |
* | | | cmGeneratorTarget: Simplify storage of link implementationBrad King2025-01-181-14/+1
| | | | | | | | | | | | | | | | | | | | With CMP0022 removed, the link implementation is now computed only for the target itself, and never for a dependent head target.
* | | | CMP0022: Remove support for OLD behaviorBrad King2025-01-181-1/+0
| | | |
* | | | Merge topic 'remove-old-compatibility'Brad King2025-01-181-1/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 785523a136 Remove compatibility with CMake versions older than 2.8.0 35282387ea CMP0014: Remove support for OLD behavior fad9c55b8b CMP0013: Remove support for OLD behavior 98a59ba8ad CMP0012: Remove support for OLD behavior 3c0dbb66f5 CMP0011: Remove support for OLD behavior cf832e75bc CMP0010: Remove support for OLD behavior 77f8c374f3 CMP0009: Remove support for OLD behavior 43ef139567 CMP0008: Remove support for OLD behavior ... Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !10188
| * | | | CMP0003: Remove support for OLD behaviorBrad King2025-01-171-1/+0
| |/ / /
* | | | instrumentation: Add targetLabels field to link snippetsMartin Duffy2025-01-171-0/+4
|/ / / | | | | | | | | | | | | Adds a new data field `targetLabels` to link snippets which contains a list of text labels from the LABELS target property.
* | | Merge topic 'fix-Fortran_BUILDING_INTRINSIC_MODULES'Brad King2025-01-131-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | b65930a7a7 Fortran: Add Fortran_BUILDING_INTRINSIC_MODULES for building intrinsics Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10158
| * | | Fortran: Add Fortran_BUILDING_INTRINSIC_MODULES for building intrinsicsAlex Turbov2025-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit fe3f846e1b (Makefiles: Add support for building Fortran intrinsics, 2020-11-19, v3.22.0-rc1~565^2) the property was added with incorrect spelling `Fortran_BUILDING_INSTRINSIC_MODULES`. Add a new property with the correct spelling. Keep the old one for compatibility. Issue: #21463
* | | | Merge topic 'revert-genex-tco-subgraph'Brad King2025-01-101-12/+0
|\ \ \ \ | |/ / / |/| / / | |/ / | | | | | | | | | | | | a6b84a438f GenEx: Revert "Limit TARGET_PROPERTY transitive closure optimization" Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !10156
| * | GenEx: Revert "Limit TARGET_PROPERTY transitive closure optimization"Brad King2025-01-091-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert commit 4a11772618 (GenEx: Limit TARGET_PROPERTY transitive closure optimization to subgraphs, 2024-05-31, v3.31.0-rc1~114^2). The change caused substantial performance regressions in some existing use cases. Revert it pending further investigation. Issue: #25728 Fixes: #26457
* | | Archive library: Add support for ARCHIVER: prefixMarc Chevrier2024-11-261-0/+8
| | | | | | | | | | | | | | | Add the support of the ARCHIVER: prefix to offer a portable way to pass options to the archiver when the compiler is used as driver.
* | | cmGeneratorTarget: Remove unused ComputeLinkInterface signatureBrad King2024-11-201-3/+0
|/ /
* | cmGeneratorTarget: Simplify ComputeVersionedName signatureBrad King2024-10-101-3/+5
| |
* | Merge topic 'genex-tco-subgraph'Brad King2024-09-111-0/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 4a11772618 GenEx: Limit TARGET_PROPERTY transitive closure optimization to subgraphs Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Acked-by: Robert Maynard <robertjmaynard@gmail.com> Merge-request: !9789
| * | GenEx: Limit TARGET_PROPERTY transitive closure optimization to subgraphsMichael Herwig2024-09-101-0/+12
| | | | | | | | | | | | Fixes: #25728
* | | cmDyndepCollation: write build database metadataBen Boeckel2024-08-271-0/+3
| | | | | | | | | | | | Generators will hook this up into the build graph as needed.
* | | cmGeneratorTarget: add a method to build classified command linesBen Boeckel2024-08-271-0/+59
| | | | | | | | | | | | | | | | | | This is essentially an extraction of the `Ninja` generator's command line building logic. Porting generators to reuse this construction is a task for the future.
* | | cmGeneratorTarget: add the concept of a "family" nameBen Boeckel2024-08-271-0/+1
|/ / | | | | | | | | With synthetic targets, a name which is the same between all synthetic targets which share a base target is warranted.
* | GeneratorTarget: Factor out AddSystemIncludeCacheKey()Orkun Tokdemir2024-07-221-0/+4
| |
* | Merge topic 'aix-archive-shared-libraries'Brad King2024-07-191-0/+3
|\ \ | |/ |/| | | | | | | | | | | | | d27fe9dfba AIX: Add option to archive shared libraries 98013ad1ca cmXCOFF: Add support for editing binary inside an archive Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9606
| * AIX: Add option to archive shared librariesAditya Vidyadhar Kamath2024-07-171-0/+3
| | | | | | | | | | | | | | | | Add option `CMAKE_AIX_SHARED_LIBRARY_ARCHIVE`. There will no versions for the shared objects when this option is used. Closes: #26033
* | Restore support for exporting INTERFACE with missing dependenciesBrad King2024-07-151-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit c16acd35b3 (GenEx: Add support for custom transitive link properties, 2024-05-09, v3.30.0-rc1~82^2) evaluation of `TRANSITIVE_LINK_PROPERTIES` by `install(EXPORT)` enables discovery of missing dependencies on INTERFACE libraries that we did not previously diagnose. This regressed existing projects that relied on such non-diagnosis. Although commit 2fc9e482a9 (Evaluation of TRANSITIVE_LINK_PROPERTIES isn't considered a usage, 2024-07-05) fixed this, it also made a significant change to the `UseTo` infrastructure that may have other subtle effects. Replace the fix with an approach that explicitly models suppression of the relevant diagnostics. Fixes: #26108
* | Evaluation of TRANSITIVE_LINK_PROPERTIES isn't considered a usageRobert Maynard2024-07-051-0/+1
|/ | | | Fixes #26108
* Swift: Use per-config module file locations in multi-config generatorsDave Abrahams2024-05-241-6/+6
| | | | | | | | | | | | | | | | Place `.swiftmodule` files a subdirectory named after the configuration. Fixes: #25864 Fixes: #25997 - Swift/RunCMakeTest.cmake: - CMP0157-OLD was enabled for Xcode, where it works. - A test was added that verifies .swiftmodule's are generated into separate directories with multi-config generators. - Tests/SwiftOnly/CMakeLists.txt: tests were added that validate that cross-subdirectory module dependencies (via target_link_libraries) work.
* cmGeneratorTarget: Adopt Swift-related methods from the Ninja generatorDave Abrahams2024-05-241-0/+20
| | | | | They will see more use as Swift bugs are fixed in the Ninja Multi-Config generator.
* GenEx: Add support for custom transitive compile propertiesBrad King2024-05-211-1/+37
| | | | | | | | | Teach the `$<TARGET_PROPERTY:...>` generator expression to check for a new `TRANSITIVE_COMPILE_PROPERTIES` property in the target's link closure to enable transitive evaluation of named properties through the link closure, excluding entries guarded by `$<LINK_ONLY:...>`. Issue: #20416
* cmGeneratorTarget: Add GetLinkImplementationClosure mode for linkingBrad King2024-05-211-2/+3
| | | | | | Previously this method always returned the closure for compile-only usage requirements. Add an option to get the closure for linking, which pierces `$<LINK_ONLY>`.
* cmGeneratorTarget: Add TransitiveProperty constructor to help some compilersBrad King2024-05-211-0/+7
| | | | | | | | Some compilers have trouble initializing TransitiveProperty as a parent class using an initializer list unless there is an explicit constructor: * SunPro fails to compile * XLClang seems to miscompile, exhibiting strange runtime behavior
* cmGeneratorTarget: Factor link interface/impl methods into own sourceBrad King2024-05-201-1/+1
|
* cmGeneratorTarget: Move TargetPropertyEntry creation method to headerBrad King2024-05-201-0/+10
|
* cmGeneratorTarget: Clarify enum for specifying purpose of usage requirementsBrad King2024-05-031-17/+15
| | | | | | | | Since commit 1e49880472 (cmGeneratorTarget: Avoid boolean trap in usage requirement lookup, 2021-12-08, v3.23.0-rc1~245^2) we have clarified the distinction between compile-only and link-only usage requirements. Rename the `LinkInterfaceFor` enum to `UseTo` to clarify that its role is to specify the purpose of usage requirements.
* cmGeneratorTarget: Clarify name for evaluating compile-only usage requirementsBrad King2024-05-031-2/+2
|
* Merge topic 'pch-single-arch'Brad King2024-05-021-0/+2
|\ | | | | | | | | | | | | | | | | ef006ebd9b PCH: Use per-arch .pch files only when building multiple Apple architectures 99bfb430ee cmNinjaTargetGenerator: Remove unused Apple architecture list Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9483
| * PCH: Use per-arch .pch files only when building multiple Apple architecturesBrad King2024-05-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | Since commit f593b354da (PCH: Add support for multi architecture iOS projects, 2020-04-02, v3.18.0-rc1~414^2) we use per-arch .pch files even when compiling for just the host architecture on macOS arm64. This breaks with compilers that do not support `-Xarch_` flags, such as GCC. Avoid using per-arch .pch files in single-architecture builds. Fixes: #25514 Issue: #20497
* | Merge topic 'vs-scan-module-deps-settings'Brad King2024-05-021-0/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 3022f0363f VS: set ScanSourceForModuleDependencies at vcxproj level dff511ad28 cmGeneratorTarget: add a target-level query for "needs dyndep" Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: AaronRuizMoraUK <aaronruizmora@gmail.com> Merge-request: !9471
| * | cmGeneratorTarget: add a target-level query for "needs dyndep"Ben Boeckel2024-05-011-0/+7
| | | | | | | | | | | | | | | This can still be overridden per-source, but it indicates the state of the target's default behavior.
* | | Merge topic 'genex-link-properties'Brad King2024-05-011-0/+13
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ddb9442f48 GenEx: Fix TARGET_PROPERTY evaluation of transitive link properties 862b8e28ad GenEx: Teach TARGET_PROPERTY evaluation to optionally pierce LINK_ONLY 8d1d6a1437 Tests: Cover TARGET_PROPERTY genex evaluation of transitive link properties abf607c2ec Tests: Cover TARGET_PROPERTY genex evaluation of transitive build properties 7d3d728a72 Help: Clarify CMP0099 documentation and summary text 79a3ae9a0d cmGeneratorExpressionDAGChecker: Simplify transitive property table e8010b67c7 cmGeneratorExpressionDAGChecker: Make local generator available in constructor b36fb3f6f1 cmGeneratorExpressionNode: Remove outdated lint suppression Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9473
| * | GenEx: Teach TARGET_PROPERTY evaluation to optionally pierce LINK_ONLYBrad King2024-04-291-0/+1
| | |
| * | cmGeneratorExpressionDAGChecker: Simplify transitive property tableBrad King2024-04-291-0/+12
| | | | | | | | | | | | | | | Refactor the table of builtin transitive properties to avoid preprocessor-generated cascading-if blocks with duplicate code.
* | | Merge topic 'export-name-safe-name'Brad King2024-05-011-0/+1
|\ \ \ | |/ / |/| / | |/ | | | | | | | | | | 142a85f9c1 cxxmodules: use filesystem-safe export names in filenames 4452d41488 cmGeneratorTarget: add method to get a filesystem-safe export name Acked-by: Kitware Robot <kwrobot@kitware.com> Tested-by: buildbot <buildbot@kitware.com> Merge-request: !9474
| * cmGeneratorTarget: add method to get a filesystem-safe export nameBen Boeckel2024-04-291-0/+1
| | | | | | | | | | | | | | | | C++ module support puts the export name in a filename. Export names with `:` in them are not valid filenames on Windows. Add a method to escape names as necessary. See: #25828
* | Merge topic 'genex-cleanup'Brad King2024-04-151-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 895efd4e7a cmGeneratorExpression: Consolidate recognition of transitive properties 5f7d8192da cmGeneratorExpression: Inline evaluation helper at only call site 91a25de520 cmGeneratorExpression: Add comments on implementation details 0a61116f52 cmGeneratorTarget: Remove EvaluateInterfaceProperty argument default Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9425
| * | cmGeneratorTarget: Remove EvaluateInterfaceProperty argument defaultBrad King2024-04-121-1/+1
| | | | | | | | | | | | Pass it explicitly at the call sites.