
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>`.
