| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Teach `export()` and `install(EXPORT)` to record this setting on the
imported targets they generate. Make this property's non-presence
authoritative on imported targets since they represent what was built
elsewhere.
|
|
|
|
|
|
| |
This was missed in commit dc8e4f8f0c (AIX: Enable versioned shared
objects with CMAKE_AIX_SHARED_LIBRARY_ARCHIVE, 2024-10-10,
v3.31.0-rc2~8^2).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since commit 7abd3137b7 (Linking: Optionally reorder direct dependencies
from LINK_LIBRARIES, 2024-09-19, v3.31.0-rc1~53^2) the strategy name
`PRESERVE_ORDER` has led users to expect that it strictly preserves
order. While the part of the link line generation logic controlled by
`LINK_LIBRARIES_STRATEGY` does preserve order, it is not the last step.
Toolchain-specific de-duplication can cause the order to change on the
actual link line generated in the build system.
Rename the strategies:
* `PRESERVE_ORDER` => `REORDER_MINIMALLY`
* `REORDER` => `REORDER_FREELY`
The new names make it clear that reordering is always possible, just to
varying degrees. Update the `LINK_LIBRARIES_STRATEGY` documentation to
clarify that the strategies do not directly control the final link line.
Fixes: #26400
Issue: #26271
|
|
|
|
|
|
|
| |
Extend discussion of the ``PRESERVE_ORDER`` example to prominently
explain how platform-specific behavior can affect generated link lines.
Closes: #26388
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For cases where a CMAKE_XXX variable provides a default value for a
XXX target property, the convention used in the documentation is to
put the detailed explanation in the target property docs, leaving the
variable docs to be fairly minimal and cross-reference the target
property docs for details.
When the (CMAKE_)LINK_LIBRARIES_STRATEGY docs were first added,
they were the opposite of this convention, putting the details in the
variable docs instead of the property docs. This change moves the
details to the property docs to make it consistent with the prevailing
convention used elsewhere.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Traditionally CMake generates link lines by starting with the direct
link dependencies specified by `LINK_LIBRARIES` in their original order
and then appending indirect dependencies that the direct dependencies
do not express. This gives projects control over ordering among
independent entries, which can be important when intermixing flags
and libraries, or when multiple libraries provide the same symbol.
However, it may also result in inefficient link lines.
Add support for an alternative strategy that can reorder direct link
dependencies to produce more efficient link lines. This is useful
for projects that cannot easily specify their targets' direct
dependencies in an order that satisfies indirect dependencies.
Add a `CMAKE_LINK_LIBRARIES_STRATEGY` variable and corresponding
`LINK_LIBRARIES_STRATEGY` target property to select a strategy.
Fixes: #26271
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
e77655555c cmExperimental: gate build database support behind a flag
23cbeb5035 ci: enable `build_database` CXXModules tests
6863c1d823 Tests/CXXModules: add tests for module commands
123107c1a4 Tests/CXXModules: add support for running targets under a given config
438038b5e1 Tests/CXXModules: support building specific targets of example trees
84bc710d84 cmGlobalGenerator: generate build database files for targets
670f753f24 cmDyndepCollation: write build database metadata
dcf9a66ffe cxxmodules: plumb control data for exporting build databases
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9708
|
| |
| |
| |
| |
| | |
Given that the feature currently only supports C++ sources and is not
formally accepted by ISO yet, gate it behind a flag.
|
| |
| |
| |
| |
| |
| | |
This includes the target property, its initializing variable, its
initializing environment variable, and updating related docs to mention
the new bits.
|
|/
|
|
| |
This generator has been deprecated since CMake 3.28. Remove it.
|
|
|
|
|
| |
The `COMPILE_FLAGS` is not actually deprecated but has been superseded
by the `COMPILE_OPTIONS` target property.
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
b90ae10dda Add support for unity builds with CUDA sources
c99ff40b21 Unity: refactor unity extension logic to single function
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9655
|
| |
| |
| |
| | |
Fixes #22750
|
|/
|
|
|
|
|
|
| |
Add option `CMAKE_AIX_SHARED_LIBRARY_ARCHIVE`.
There will no versions for the shared objects when this option is used.
Closes: #26033
|
|
|
|
| |
Fixes: #26082
|
|
|
|
| |
Fixes: #26046
|
|\
| |
| |
| |
| |
| |
| | |
61e76200d7 Help: Discourage use of Swift_MODULE_DIRECTORY with multi-config generators
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9547
|
| |
| |
| |
| |
| |
| |
| | |
It does not yet support per-config module directories.
Issue: #25989
Issue: #26010
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Teach the `$<TARGET_PROPERTY:...>` generator expression to check for a
new `TRANSITIVE_LINK_PROPERTIES` property in the target's link
closure to enable transitive evaluation of named properties through
the link closure, including entries guarded by `$<LINK_ONLY:...>`.
Fixes: #20416
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
This generator has been deprecated since CMake 3.27. Remove it.
|
|
|
|
|
|
| |
Adds new target property VS_FILTER_PROPS
Fixes: #25948
|
|
|
|
|
|
|
| |
Re-organize the section to explicitly describe target-specific
commands, build properties, and usage requirement properties.
Add builtin transitive properties that have been created since
the document was first written.
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
84f1eb64f3 Help/OBJC_STANDARD: Document Objective C17 and C23 support
Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Raul Tambre <raul@tambre.ee>
Merge-request: !9439
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was missed in
* commit 93b7d3d292 (C17 support, 2021-02-06, v3.21.0-rc1~587^2~10)
* commit dcd599757f (C23 support, 2021-02-06, v3.21.0-rc1~587^2~9)
Fixes: #25746
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This was originally attempted by policy CMP0118, but its
implementation did not cover all intended use cases. We fixed its
documentation in commit 1dabbbb5e0 (CMP0118: Revise documentation to
describe actual behavior, 2024-03-20).
Add new policy CMP0163 to cover the remaining use cases. In particular,
make the `GENERATED` property visible to `get_property` calls in other
directories. In order to capture the original intention of CMP0118,
define CMP0163's NEW behavior to also imply CMP0118's NEW behavior.
Fixes: #25437
Fixes: #25058
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
6ba2bbc0f3 Help: Restructure and improve LINKER_TYPE docs
c39bc6e412 Help: CMAKE_<LANG>_USING_LINKER_<TYPE> can be a list of flags
1c7ccefd83 Help: Add custom linker example for CMAKE_<LANG>_USING_LINKER_<TYPE>
aecea7b28b Help: Grammar, typos and wording improvements for linker variables
5b21897c6e Help: Remove stray formatting for try_compile() LINKER_LANGUAGE keyword
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9362
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
3a739d4dcb EXPORT_PACKAGE_DEPENDENCIES: Add experimental feature gate
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9336
|
| |
| |
| |
| |
| |
| |
| | |
Some design concerns have been raised after trying the 3.29 release
candidates. Avoid committing to a stable public interface for now.
Issue: #25767
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
ccaf529c4e Autogen: Update Documentation
16cc011fa5 cmQtAutoGenGlobalInitializer: Improve Const-correctness
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9223
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use heuristics to select a reasonable value. Add policy CMP0162
to provide compatibility with existing projects.
Fixes: #25327
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This indicates to MSBuild which configurations are considered debug
configurations. This is useful for reference both by humans and tools.
Issue: #25327
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| |
| | |
ccaf529c4e Autogen: Update Documentation
16cc011fa5 cmQtAutoGenGlobalInitializer: Improve Const-correctness
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9223
|
| |
| |
| |
| |
| |
| |
| | |
* Add Qt 6 to documentation
* Add explanation about `<ORIGIN>_autogen_timestamp_deps`
Fixes: #25201
|
|\ \
| |/
|/|
| |
| |
| |
| | |
fcab4bee21 Help: Document conventional VERSION/SOVERSION relationship
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9177
|
| |
| |
| |
| | |
Issue: #25626
|
|/
|
|
|
|
|
|
| |
Evaluate generator expressions in these properties, as they apply to
`add_test`, `add_custom_command`, and `add_custom_target`.
The `CMAKE_CROSSCOMPILING_EMULATOR` variable's `try_run` behavior occurs
at configure time and so cannot support generator expressions.
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
596e84b0d5 NinjaMultiConfig: Update tests for the new dependency change
7c39dabdbc Autogen: AUTO*_EXECUTABLE: add support for per-config values
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8919
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* Per-config values were added to `AUTO*_EXECUTABLE`.
* Dependency order was refactored for `cmake_autogen` and `cmake_autorcc` to avoid unnecessary rebuilds.
* A new parameter was added for `cmake_autogen` and `cmake_autorcc` to specify the config name of the `auto*_executable` to be used.
* Add `AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` target property to change the behavior of the dependency graph.
* The timestamp target is split into three targets for per-config to avoid redundant `mocs_compilation` builds when `AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` is ON
* Per-config `DEP_FILE_RULE_NAME` values were added to `AutogenInfo.json` for `Multi-Config` usage.
* Some functions were refactored to avoid code duplication.
This commit reimplements fddd0f0443b4ce81d61f15ee1b2f13105967b25a
Fixes: #20074
|
|\ \
| |/
|/|
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| |
| |
| |
| | |
Fixes: #22412
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
88863d83d6 fileapi: Add test launcher to codemodel-v2
1ec0372ed4 add_test: Optionally use a launcher for tests running in-project targets
478a5f4e04 fileapi: Make launcher attribute 'arguments' optional
b44e38a397 cmFileAPICodemodel: Add missing std::move()
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8963
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add a `CMAKE_TEST_LAUNCHER` variable and corresponding `TEST_LAUNCHER`
target property.
Issue: #23672
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| |
| |
| | |
e831eef933 Help: Note case where IMPORTED_IMPLIB isn't needed for (xc)frameworks
01735badee Help: XCFrameworks and stubs are supported on all Apple, not just macOS
6ac50df591 Help: Add missing versionadded directives for IMPORTED_IMPLIB
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9058
|
| | |
|