CMAKE_ENABLE_EXPORTS
Указывает, экспортирует ли исполняемый файл символы для загружаемых модулей.
Обычно исполняемый файл не экспортирует какие-либо символы, так как он является конечной программой. Возможно, что исполняемый файл экспортирует символы для использования загружаемыми модулями. Когда эта свойство установлено в значение true, CMake позволит другим целевым элементам link к исполняемому файлу с помощью команды TARGET_LINK_LIBRARIES(). На всех платформах создаётся зависимость целевого уровня от исполняемого файла для целевых элементов, которые к нему ссылаются. Для платформ DLL будет создана библиотека импорта для экспортированных символов, а затем она будет использоваться для компоновки. Все системы на базе Windows, включая Cygwin, являются платформами DLL. Для платформ, не являющихся DLL, и требующих разрешения всех символов во время компоновки, таких как OS X, модуль link к исполняемому файлу с помощью флага, например -bundle_loader. Для других платформ, не являющихся DLL, правило компоновки просто игнорируется, так как динамический загрузчик автоматически свяжет символы при загрузке модуля.
Эта переменная используется для инициализации свойства целевого элемента ENABLE_EXPORTS для целевых исполняемых файлов.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.8/variable/CMAKE_ENABLE_EXPORTS.html