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