We're working on a multi-platform C++ GUI project. We have dependencies on some third-party libraries (e.g. boost
, fftw
, etc.) and these also get delivered and installed, so there's no need for our users to download extra components.
Right now, for the MacOS build, an app bundle is generated (MyProject.app
). We're using the PackageMaker
CPack
Package Generator. All needed third-party dependencies get instaled under MyProject.app/Contents/Frameworks
.
We recently completed a suite of command line tools that we'd like to include in our installer. So we'll be installing our bundle, MyProject.app
along a folder, say, Tools
, including our new command line utilities.
To make things more interesting, our application bundle is composed of some gui and core components, and we represent each component and our tools as different CMake
projects (i.e., we use the following CMake
commands: project(gui_components)
, project(core_components)
and project(tools)
). Our tools depend on the core components, but not on the gui components.
Basically, what we'd like to have is the following folder structure:
<install folder>
|
|--MyProject.app
| |
| |--<all MacOS bundle needed folders/files>
|
|--Tools/
| |
| |--ToolA
| |--ToolB
|
|--lib/
|
|--libboost_regex
|--libfftw
|--libgui_components
|--libcore_components
How can I tell CMake
/ CPack
to install third-party dependencies (in this example: libboost_regex
and libfftw
) in the lib
folder? They are still being installed under MyProject.app/Contents/Frameworks
. We've already managed to install own libgui_components
and libcore_components
in the lib
folder.