我们正在开发一个多平台 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_components
lib