summaryrefslogtreecommitdiffstats
path: root/Help/manual
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-10-12 14:26:05 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2015-10-12 14:26:05 (GMT)
commitb6dcf6815b712f755c450c3837fd29c42910cc05 (patch)
tree25f9af2d39069e7fb3d4dce08fd3f0f50318f589 /Help/manual
parent1a0da7d32051783fcec12e85ee56c3adc447b1b1 (diff)
parent6556481eb8495a3c4f6870efc1b41b461f477bae (diff)
downloadCMake-b6dcf6815b712f755c450c3837fd29c42910cc05.zip
CMake-b6dcf6815b712f755c450c3837fd29c42910cc05.tar.gz
CMake-b6dcf6815b712f755c450c3837fd29c42910cc05.tar.bz2
Merge topic 'doc-clarify-shared-lib'
6556481e Help: Document that SHARED libraries must export a symbol (#15775)
Diffstat (limited to 'Help/manual')
-rw-r--r--Help/manual/cmake-buildsystem.7.rst7
1 files changed, 6 insertions, 1 deletions
diff --git a/Help/manual/cmake-buildsystem.7.rst b/Help/manual/cmake-buildsystem.7.rst
index 357aae9..bc633e6 100644
--- a/Help/manual/cmake-buildsystem.7.rst
+++ b/Help/manual/cmake-buildsystem.7.rst
@@ -80,6 +80,10 @@ regardless of the library type. The ``MODULE`` library type is
dissimilar in that it is generally not linked to -- it is not used in
the right-hand-side of the :command:`target_link_libraries` command.
It is a type which is loaded as a plugin using runtime techniques.
+If the library does not export any unmanaged symbols (e.g. Windows
+resource DLL, C++/CLI DLL), it is required that the library not be a
+``SHARED`` library because CMake expects ``SHARED`` libraries to export
+at least one symbol.
.. code-block:: cmake
@@ -781,7 +785,8 @@ An *archive* output artifact of a buildsystem target may be:
* On DLL platforms: the import library file (e.g. ``.lib``) of a shared
library target created by the :command:`add_library` command
- with the ``SHARED`` option.
+ with the ``SHARED`` option. This file is only guaranteed to exist if
+ the library exports at least one unmanaged symbol.
* On DLL platforms: the import library file (e.g. ``.lib``) of an
executable target created by the :command:`add_executable` command