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.10/prop_tgt/ENABLE_EXPORTS.html