24 lines
1.0 KiB
Plaintext
24 lines
1.0 KiB
Plaintext
|
|
||
|
Note that it is not advisable to populate the
|
||
|
|INTERFACE_PROPERTY_LINK| of a target with paths for dependencies.
|
||
|
That would hard-code into installed packages the include directory paths
|
||
|
for dependencies **as found on the machine the package was made on**.
|
||
|
|
||
|
That is, code like this is incorrect for targets which will be used to
|
||
|
generate :manual:`cmake-packages(7)`:
|
||
|
|
||
|
.. code-block:: cmake
|
||
|
|
||
|
target_link_libraries(mylib INTERFACE
|
||
|
${Boost_LIBRARIES};${OtherDep_LIBRARIES}
|
||
|
)
|
||
|
|
||
|
Dependencies must provide their own :ref:`IMPORTED targets <Imported Targets>`
|
||
|
which have their own :prop_tgt:`IMPORTED_LOCATION` populated
|
||
|
appropriately. That way, when a consumer uses the installed package, the
|
||
|
consumer will run the appropriate :command:`find_package` command to find
|
||
|
the dependencies on their own machine and populate the
|
||
|
:ref:`IMPORTED targets <Imported Targets>` with appropriate paths. See
|
||
|
:ref:`Creating Packages` for more. Note that many modules currently shipped
|
||
|
with CMake do not currently provide :ref:`IMPORTED targets <Imported Targets>`.
|