我正在运行一个具有以下结构的项目:
root/
---Applications/
---Application1/
---Application2/
---Modules/
---Library1/
---Library2/
到目前为止,所有的项目创建和链接在Windows和Linux机器上运行良好,使用依赖Qt5和OpenCV。 应将所有生成的文件复制到最终安装路径中:
INSTALL_DIR/
---bin/ #(for runtime)
---include/ #(for .h files)
---lib/ #(for lib files)
当我想创建可再发行的捆绑包时,问题就开始了。 我设法为每个应用程序创建一个脚本:
include("${CMAKE_ROOT}/Modules/BundleUtilities.cmake")
fixup_bundle("@APPLICATION_PATH@" "@LIB_DEPS@" "@LIB_LOCS@")
以这种方式,不幸的是,fixup_bundle被调用的次数与我的应用程序的数量一样多,并且需要很长时间,尤其是在Windows下。
如何创建一个唯一的安装脚本,只执行一次 fixup_bundle?
提前致谢
答案 0 :(得分:1)
我现在看到了问题。
看起来像这个问题has been discussed on the CMake mailing list。
OP在那里概述了这种被认为是合理的方法。
- 在/ Library / Application Support中安装所有常见的3rdparty库依赖项。
- 为两个应用程序安装小包装脚本,将DYLD_LIBRARY_PATH设置为指向安装第三方库的位置, 然后启动应用程序。
醇>
Kitware CMake wiki描述了一种类似的方法,其中共享库作为OSX框架安装。
http://www.cmake.org/Wiki/CMake:MacOSX_Frameworks
它声明"创建框架才刚刚开始。"但它看起来还有一段时间没有更新。
看起来这根本不是CMake现在开箱即用的东西。
我找到了一个安装OSX Framework的CMakeLists.txt示例。