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