gpt4 book ai didi

c++ - 用于多个可执行文件的 CMake fixup_bundle

转载 作者:太空狗 更新时间:2023-10-29 23:02:56 26 4
gpt4 key购买 nike

我正在运行一个具有以下结构的项目:

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 的独特安装脚本?

提前致谢

最佳答案

我现在看到问题了。

好像是这个问题has been discussed on the CMake mailing list .

那里的 OP 概述了这种被认为是合理的方法。

  1. Install all the common 3rdparty library dependencies somewhere out in /Library/Application Support.
  2. Install small wrapper scripts for both apps that set DYLD_LIBRARY_PATH to point to where the 3rdparty libs are installed, then launch the app.

Kitware CMake wiki 描述了一种类似的方法,其中共享库作为 OSX 框架安装。

http://www.cmake.org/Wiki/CMake:MacOSX_Frameworks

它指出“创建框架才刚刚开始。”但它看起来也有一段时间没有更新了。

看起来这根本不是 CMake 目前可以轻易开箱即用的事情。

我确实找到了一个安装 OSX 框架的 CMakeLists.txt 示例。

https://qt.gitorious.org/pyside/cgoncalves-apiextractor/source/d6568bba4798e05635c52ab4bd864dca9f828615:CMakeLists.txt#L176

关于c++ - 用于多个可执行文件的 CMake fixup_bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27034960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com