我们正在开发一个多平台的C ++ GUI项目。我们依赖于某些第三方库(例如boost
,fftw
等),这些也可以交付和安装,因此我们的用户无需下载额外的组件。
目前,对于MacOS构建,会生成一个应用包(MyProject.app
)。我们正在使用PackageMaker
CPack
包生成器。所有需要的第三方依赖项都在MyProject.app/Contents/Frameworks
下进行了。{/ p>
我们最近完成了一套命令行工具,我们希望在安装程序中包含这些工具。因此,我们将在一个文件夹(例如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
。