Я пытаюсь создать общесистемный сервис на Mac, используя CMake для сборки и CPack для генерации пакета. Хранилище довольно большое, поэтому я создал уменьшенную версию для его тестирования. Оказывается, я не знаю, как упаковать что-то, что имеет абсолютный путь в качестве пункта назначения.
Это код CMake:
install(PROGRAMS ${CMAKE_BINARY_DIR}/hello
DESTINATION "/var/local/hello"
COMPONENT TS
)
install(PROGRAMS com.hello.world.plist
DESTINATION "/Library/LaunchDaemons/"
COMPONENT TS
)
А это выход из cpack
mac-mini-2:build melanoholly$ cpack ..
CPack: Create package using productbuild
CPack: Install projects
CPack: - Run preinstall target for: testingPack
CPack: - Install project: testingPack
CMake Error at /Users/salvobit/sandbox/cpack-example-mac-daemon/build/cmake_install.cmake:44 (file):
file cannot create directory: /var/local/hello. Maybe need administrative
privileges.
CMake Error at /Users/salvobit/sandbox/cpack-example-mac-daemon/build/cmake_install.cmake:56 (file):
file INSTALL cannot copy file
"/Users/salvobit/sandbox/cpack-example-mac-daemon/com.hello.world.plist" to
"/Library/LaunchDaemons/com.hello.world.plist".
CPack Error: Error when generating package: testingPack
Если я запускаю cpack
от имени пользователя root, сгенерированный пакет будет пустым.
Может кто-нибудь дать мне идею и как это исправить?
Я использую CMake версии 3.13.0-rc2 .