我们正在开发一个多平台 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_regex和libfftw)lib?它们仍被安装在MyProject.app/Contents/Frameworks. 我们已经设法在文件夹中安装了自己libgui_components的。libcore_componentslib