4

我们正在开发一个多平台 C++ GUI 项目。我们依赖于一些第三方库(例如boost,fftw等),并且这些库也可以交付和安装,因此我们的用户无需下载额外的组件。

现在,对于 MacOS 构建,会生成一个应用程序包 ( MyProject.app)。我们正在使用PackageMaker CPack包生成器。所有需要的第三方依赖都安装在MyProject.app/Contents/Frameworks.

我们最近完成了一套命令行工具,我们希望将其包含在我们的安装程序中。所以我们将MyProject.app沿着一个文件夹安装我们的包,比如说,,Tools包括我们的新命令行实用程序。

为了让事情更有趣,我们的应用程序包由一些 gui 和核心组件组成,我们将每个组件和我们的工具表示为不同的CMake项目(即,我们使用以下CMake命令:project(gui_components)project(core_components)project(tools)。我们的工具依赖于核心组件,但不依赖于 gui 组件。

基本上,我们想要的是以下文件夹结构:

<install folder>
  |
  |--MyProject.app
  |   |
  |   |--<all MacOS bundle needed folders/files>
  |
  |--Tools/
  |   |
  |   |--ToolA
  |   |--ToolB
  | 
  |--lib/
      |
      |--libboost_regex
      |--libfftw
      |--libgui_components
      |--libcore_components

如何告诉CMake/在文件夹CPack中安装第三方依赖项(在本例中:libboost_regexlibfftwlib?它们仍被安装在MyProject.app/Contents/Frameworks. 我们已经设法在文件夹中安装了自己libgui_components的。libcore_componentslib

4

0 回答 0