Note that it is not advisable to populate the ``INSTALL_INTERFACE`` of 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**. The ``INSTALL_INTERFACE`` of the |INTERFACE_PROPERTY_LINK| is only suitable for specifying the required include directories of the target itself, not its dependencies. That is, code like this is incorrect for targets which will be used to generate :manual:`cmake-packages(7)`: .. code-block:: cmake target_include_directories(mylib INTERFACE $ ) Dependencies must provide their own :ref:`IMPORTED targets ` which have their own |INTERFACE_PROPERTY_LINK| populated appropriately. Those :ref:`IMPORTED targets ` may then be used with the :command:`target_link_libraries` command for ``mylib``. 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 ` with appropriate paths. See :ref:`Creating Packages` for more. Note that many modules currently shipped with CMake do not currently provide :ref:`IMPORTED targets `.