| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
The files generatd by `install(EXPORT)` and `export()` commands
are known to work with policies as of CMake 3.24, so enable them
in sufficiently new CMake versions.
|
|\
| |
| |
| |
| |
| |
| | |
0ebff0d61a export: Restore exclusion of private shared library dependencies from checks
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7557
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refactoring in commit 8c65b7042e (cmExportFileGenerator: Simplify
collection of targets missing from export set, 2022-04-11,
v3.24.0-rc1~281^2) accidentally dropped the behavior change from
commit 0ad2a1c181 (Export: Never treat private link libraries as
public package dependencies., 2013-09-24, v3.0.0-rc1~559^2).
Restore the behavior and add a test.
Fixes: #23838
|
| |
| |
| |
| |
| | |
C++ module properties will be generated at build time, so generate code
that includes the files actually responsible for the information.
|
| |
| |
| |
| |
| |
| | |
Issue: #18040
Signed-off-by: Da Quexian <daquexian566@gmail.com>
|
|/
|
|
|
|
| |
The files generatd by `install(EXPORT)` and `export()` commands
are known to work with policies as of CMake 3.23, so enable them
in sufficiently new CMake versions.
|
|
|
|
|
|
| |
Instead of printing a CMake list, make it an English-style list. This
also allows the line-break algorithm to make these messages much more
readable.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This avoids stomping on any user variables.
|
|
|
|
|
|
|
|
| |
This allows use of `CMAKE_CURRENT_LIST_DIR`, `foreach(IN LISTS)`,
`if(VERSION_*)`, and more.
Note that generated filesets code already uses `if(VERSION_*)` and
requires CMake 2.8.3 in practice.
|
|
|
|
|
| |
Store the list of missing target names in a member instead of threading
an explicit reference to it through the call stack.
|
|
|
|
|
|
|
| |
Improve the logic added by commit f0e67da061 (target_link_libraries: Fix
out-of-dir linking of a list of targets, 2020-01-14, v3.17.0-rc1~149^2)
to, while exporting targets, look up referenced target names in the
correct directory.
|
|\
| |
| |
| |
| |
| |
| |
| | |
83d79636bf install(TARGETS): Restore per-export INCLUDES DESTINATION
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6969
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit 55e4753bbb (Refactor cmTargetExport removing
InterfaceIncludeDirecories, 2021-07-20, v3.22.0-rc1~337^2~1) the storage
of `INCLUDES DESTINATION` was moved into each target. However, a target
may be installed in multiple exports, and their `INCLUDES DESTINATION`
should not be mixed.
Convert the IncludeDirectoriesEntries vector to a map and modify access
function to store the directories lists with respect to cmExportTarget
object. This fixes error when the same target is exported more than once
via different exports and each for consequent export its include
directories list grows. Add a test for this case.
Fixes: #23183
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
9a48012f93 Configure CMake itself with policies through CMake 3.22
a5a9687799 export: Increase maximum policy version in exported files to 3.22
a9ffded98c Add deprecation warnings for policies CMP0097 and below
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !6948
|
| | |
| | |
| | |
| | |
| | |
| | | |
The files generatd by `install(EXPORT)` and `export()` commands
are known to work with policies as of CMake 3.22, so enable them
in sufficiently new CMake versions.
|
|/ /
| |
| |
| |
| |
| | |
This was accidentally left out of commit 736663deed (Begin 3.23 release
versioning, 2022-02-03). The step is documented as part of the release
branching process in the CMake Maintainer Guide `Help/dev/maint.rst`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Link line construction starts with `LINK_LIBRARIES` and appends
dependencies from the transitive closure of `INTERFACE_LINK_LIBRARIES`.
Only the entries of `LINK_LIBRARIES` are considered direct link
dependencies. In some advanced use cases, particularly involving static
libraries and static plugins, usage requirements need to update the list
of direct link dependencies. This may mean adding new items, removing
existing items, or both.
Add target properties to encode these usage requirements:
* INTERFACE_LINK_LIBRARIES_DIRECT
* INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE
Fixes: #22496
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Enabling `IMPORTED_NO_SYSTEM` on a target built within the project has
no effect on the build system, but it is still a useful way to set the
property on imported targets generated by `install(EXPORT)` and
`export()`.
Issue: #17364
|
|/
|
|
|
|
| |
The files generatd by `install(EXPORT)` and `export()` commands
are known to work with policies as of CMake 3.21, so enable them
in sufficiently new CMake versions.
|
| |
|
|
|
|
|
|
| |
This seems to be a clear-cut case.
Signed-off-by: Marcus Müller <marcus@hostalia.de>
|
|
|
|
|
| |
Replace cmTargetExport with const cmGeneratorTarget to allow recursive
processing of exported targets and their link dependencies.
|
|
|
|
|
|
|
|
| |
Because of this property in the cmTargetExport struct, exporting targets
is not uniform: top-level ones have to be dealt with via the
cmTargetExport objects, while all linked ones are cmGeneratorTarget
objects. Let's pass this additional includedirectories via a special
target property making handling exported targets uniform.
|
|
|
|
|
|
| |
The files generatd by `install(EXPORT)` and `export()` commands
are known to work with policies as of CMake 3.20, so enable them
in sufficiently new CMake versions.
|
| |
|
|
|
|
|
|
| |
The files generatd by `install(EXPORT)` and `export()` commands
are known to work with policies as of CMake 3.19, so enable them
in sufficiently new CMake versions.
|
| |
|
|
|
|
|
|
|
|
| |
After replacing each such expression, search for following expressions
immediately after the end of the replacement text, not after the
position of the end of the replaced text.
Fixes: #21661
|
|
|
|
|
|
| |
The files generatd by `install(EXPORT)` and `export()` commands
are known to work with policies as of CMake 3.18, so enable them
in sufficiently new CMake versions.
|
|
|
|
| |
Fixes: #21203
|
| |
|
| |
|
|
|
|
|
|
|
| |
This should reduce policy-related warnings coming from the
generated files, but in a way that doesn't increase the minimum
CMake version for consumers.
Relates: #20561
|
| |
|
|
|
|
|
|
|
| |
The `std::endl` manupulator, except inserting `\n` character, also
performs `os.flush()`, which may leads to undesired effects (like
disk I/O in the middle of forming data strings). For the
`std::stringstream` it also has no meaning.
|
|\
| |
| |
| |
| |
| |
| | |
60f57d0dcc cmPropertyMap: Introduce cmProp as return type for GetProperty() functions
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4471
|
| |
| |
| |
| |
| |
| |
| | |
Currently properties are usually stored internally as `std::string`.
However, family of GetProperty() functions return them as `const char *` using `c_str()`.
The proposed `cmProp`, typedef'ed as `const std::string *` will expose properties
more naturally.
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a case like
target_link_libraries(targetInOtherDir PUBLIC "$<1:a;b>")
then all entries in the list need to be looked up in the caller's
scope. Previously our `::@(directory-id)` suffix would apply only
to the last entry. Instead surround the entire entry by a pair
`::@(directory-id);...;::@` so that the `::@` syntax can encode
a directory lookup scope change evaluated as the list is processed.
Fixes: #20204
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new property flag for a target which contains a message regarding
deprecation status.
Add a warning at "Generate" time if a linked target is marked as
deprecated.
Expand ExportImport test to ensure that new property is being set and
passed correctly. Ensure that the message is shown during the
"Generate" step run of the ExportImport test.
|
|
|
|
|
|
|
| |
When generating `IMPORTED_LINK_INTERFACE_LANGUAGES`, do not treat the
entries as target names.
Fixes: #19846
|