diff options
author | Brad King <brad.king@kitware.com> | 2021-11-03 19:51:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-11-03 20:17:17 (GMT) |
commit | 001870d451d965a2cc4a30a89ed23e69bcd70b5e (patch) | |
tree | 32c62766da2d780c8a86c6fc2bf8b3a25cbb6521 | |
parent | f65cebf51a2cf3af2017fd9b03c685c77da00c74 (diff) | |
download | CMake-001870d451d965a2cc4a30a89ed23e69bcd70b5e.zip CMake-001870d451d965a2cc4a30a89ed23e69bcd70b5e.tar.gz CMake-001870d451d965a2cc4a30a89ed23e69bcd70b5e.tar.bz2 |
Help: Clarify TARGET_RUNTIME_DLLS behavior on imported targets
This generator expression does not report the locations of `.dll`
files on imported targets with the `UNKNWON` type, since their
`IMPORTED_LOCATION` refers to the import library and not the DLL.
Fixes: #22845
-rw-r--r-- | Help/command/add_library.rst | 5 | ||||
-rw-r--r-- | Help/manual/cmake-generator-expressions.7.rst | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/Help/command/add_library.rst b/Help/command/add_library.rst index dfc6500..1235155 100644 --- a/Help/command/add_library.rst +++ b/Help/command/add_library.rst @@ -166,6 +166,8 @@ itself and is not included as a target in the generated buildsystem. call are ``PRIVATE`` to the interface library and do not appear in its :prop_tgt:`INTERFACE_SOURCES` target property. +.. _`add_library imported libraries`: + Imported Libraries ^^^^^^^^^^^^^^^^^^ @@ -205,7 +207,8 @@ The ``<type>`` must be one of: :prop_tgt:`IMPORTED_IMPLIB_<CONFIG>`) specifies the location of the DLL import library file (``.lib`` or ``.dll.a``) on disk, and the ``IMPORTED_LOCATION`` is the location of the ``.dll`` runtime - library (and is optional). + library (and is optional, but needed by the :genex:`TARGET_RUNTIME_DLLS` + generator expression). Additional usage requirements may be specified in ``INTERFACE_*`` properties. diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index 5d508cb..d3cbd49 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -1068,7 +1068,7 @@ which is just the string ``tgt``. .. code-block:: cmake - find_package(foo REQUIRED) + find_package(foo CONFIG REQUIRED) # package generated by install(EXPORT) add_executable(exe main.c) target_link_libraries(exe PRIVATE foo::foo foo::bar) @@ -1077,6 +1077,15 @@ which is just the string ``tgt``. COMMAND_EXPAND_LISTS ) + .. note:: + + :ref:`Imported Targets` are supported only if they know the location + of their ``.dll`` files. An imported ``SHARED`` or ``MODULE`` library + must have :prop_tgt:`IMPORTED_LOCATION` set to its ``.dll`` file. See + the :ref:`add_library imported libraries <add_library imported libraries>` + section for details. Many :ref:`Find Modules` produce imported targets + with the ``UNKNOWN`` type and therefore will be ignored. + .. genex:: $<INSTALL_PREFIX> Content of the install prefix when the target is exported via |