マルチプラットフォームの 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
。