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.10/variable/CMAKE_ENABLE_EXPORTS.html