在Mac包装系统守护进程与CPack

问题描述 投票:0回答:1

我想创建在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为根生成的包是空的。

有人可以给我和想法如何解决这一问题?

我使用的版本3.13.0-RC2的CMake的。

macos cmake cpack
1个回答
0
投票

解决这个的关键是指定CMAKE_INSTALL_PREFIX作为

set(CMAKE_INSTALL_PREFIX "/")

当你不喜欢它,你可以安装在/var/路径

install(PROGRAMS <binary>
        DESTINATION "../var")
© www.soinside.com 2019 - 2024. All rights reserved.