Help: Document the target properties exported to IMPORTED targets.
This commit is contained in:
parent
ee21f1c605
commit
5169130539
|
@ -218,6 +218,8 @@ each keyword:
|
||||||
PRIVATE serialization
|
PRIVATE serialization
|
||||||
)
|
)
|
||||||
|
|
||||||
|
.. _`Compatible Interface Properties`:
|
||||||
|
|
||||||
Compatible Interface Properties
|
Compatible Interface Properties
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
|
|
|
@ -280,6 +280,12 @@ shared library:
|
||||||
|
|
||||||
add_library(ClimbingStats SHARED climbingstats.cpp)
|
add_library(ClimbingStats SHARED climbingstats.cpp)
|
||||||
generate_export_header(ClimbingStats)
|
generate_export_header(ClimbingStats)
|
||||||
|
set_property(TARGET ClimbingStats PROPERTY VERSION ${Upstream_VERSION})
|
||||||
|
set_property(TARGET ClimbingStats PROPERTY SOVERSION 3)
|
||||||
|
set_property(TARGET ClimbingStats PROPERTY INTERFACE_ClimbingStats_MAJOR_VERSION 3)
|
||||||
|
set_property(TARGET ClimbingStats APPEND PROPERTY
|
||||||
|
COMPATIBLE_INTERFACE_STRING ClimbingStats_MAJOR_VERSION
|
||||||
|
)
|
||||||
|
|
||||||
install(TARGETS ClimbingStats EXPORT ClimbingStatsTargets
|
install(TARGETS ClimbingStats EXPORT ClimbingStatsTargets
|
||||||
LIBRARY DESTINATION lib
|
LIBRARY DESTINATION lib
|
||||||
|
@ -346,6 +352,22 @@ targets, suitable for use by downsteams and arranges to install it to
|
||||||
and a ``cmake/ClimbingStatsConfig.cmake`` are installed to the same location,
|
and a ``cmake/ClimbingStatsConfig.cmake`` are installed to the same location,
|
||||||
completing the package.
|
completing the package.
|
||||||
|
|
||||||
|
The generated :prop_tgt:`IMPORTED` targets have appropriate properties set
|
||||||
|
to define their usage requirements, such as
|
||||||
|
:prop_tgt:`INTERFACE_INCLUDE_DIRECTORIES`,
|
||||||
|
:prop_tgt:`INTERFACE_COMPILE_DEFINITIONS` and other relevant built-in
|
||||||
|
``INTERFACE_`` properties. The ``INTERFACE`` variant of user-defined
|
||||||
|
properties listed in :prop_tgt:`COMPATIBLE_INTERFACE_STRING` and
|
||||||
|
other :ref:`Compatible Interface Properties` are also propagated to the
|
||||||
|
generated :prop_tgt:`IMPORTED` targets. In the above case,
|
||||||
|
``ClimbingStats_MAJOR_VERSION`` is defined as a string which must be
|
||||||
|
compatible among the dependencies of any depender. By setting this custom
|
||||||
|
defined user property in this version and in the next version of
|
||||||
|
``ClimbingStats``, :manual:`cmake(1)` will issue a diagnostic if there is an
|
||||||
|
attempt to use version 3 together with version 4. Packages can choose to
|
||||||
|
employ such a pattern if different major versions of the package are designed
|
||||||
|
to be incompatible.
|
||||||
|
|
||||||
A ``NAMESPACE`` with double-colons is specified when exporting the targets
|
A ``NAMESPACE`` with double-colons is specified when exporting the targets
|
||||||
for installation. This convention of double-colons gives CMake a hint that
|
for installation. This convention of double-colons gives CMake a hint that
|
||||||
the name is an :prop_tgt:`IMPORTED` target when it is used by downstreams
|
the name is an :prop_tgt:`IMPORTED` target when it is used by downstreams
|
||||||
|
|
Loading…
Reference in New Issue