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