Я пытаюсь создать установщик MacOS на основе CPack для проекта аудиоплагина. Местоположение по умолчанию аудиоплагина MacOS находится в папке /Library/Audio/PlugIns/
, в которую требуется root прав для записи.
AFAIK CPack берет целевой путь для установленных артефактов из пути, указанного в команде CMake INSTALL , поэтому мой файл CMakeLists.txt выглядит так:
# CPack takes these paths as the locations where the plugins should be installed in the end
install (TARGETS MYPLUGIN_VST3 LIBRARY DESTINATION /Library/Audio/Plug-Ins/VST3 COMPONENT VST3)
install (TARGETS MYPLUGIN_AU LIBRARY DESTINATION /Library/Audio/Plug-Ins/Components COMPONENT AU)
# This makes sure that only the two components and nothing else is part of our installer
SET (CPACK_COMPONENTS_ALL VST3 AU)
# We want to use the native Apple GUI installer
SET (CPACK_GENERATOR productbuild)
Теперь, когда я вызываю cpack
для создания установщика, он терпит неудачу из-за проблемы с разрешением, поскольку он устанавливает плагины в качестве первого шага перед сборкой установщик. Единственное решение, которое я нашел, - это запуск cpack
с правами root, чтобы он мог писать в эти места во время этапа установки, что мне кажется плохой практикой и может быть еще хуже при попытке запустить это на сервере сборки в будущем. Поскольку мне не нужен этап установки, а нужен только получившийся установщик, мне интересно, есть ли способ избежать этапа установки и позволить CPack захватить файлы для переноса в установщик непосредственно из двоичного каталога, в который они были помещены после сборки . Не нашел ничего по этому поводу в документации, но я только начинаю с CMake и CPack, поэтому могу пропустить здесь кое-что очевидное