WINDOWS_EXPORT_ALL_SYMBOLSΒΆ
New in version 3.4.
This property is implemented only for MS-compatible tools on Windows.
Enable this boolean property to automatically create a module definition
(.def
) file with all global symbols found in the input .obj
files
for a SHARED
library (or executable with ENABLE_EXPORTS
)
on Windows. The module definition file will be passed to the linker
causing all symbols to be exported from the .dll
.
For global data symbols, __declspec(dllimport)
must still be used when
compiling against the code in the .dll
. All other function symbols will
be automatically exported and imported by callers. This simplifies porting
projects to Windows by reducing the need for explicit dllexport
markup,
even in C++
classes.
When this property is enabled, zero or more .def
files may also be
specified as source files of the target. The exports named by these files
will be merged with those detected from the object files to generate a
single module definition file to be passed to the linker. This can be
used to export symbols from a .dll
that are not in any of its object
files but are added by the linker from dependencies (e.g. msvcrt.lib
).
This property is initialized by the value of
the CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
variable if it is set
when a target is created.