2016-03-24 7 views
1

私はカスタム(複雑な)Find-cmakeモジュールを持っています。すべてがうまく動作します。cmake:複数のプロジェクトのfind-moduleのインストール/デプロイ

私の問題は、QT cmakeのような私のライブラリーを検出するために、このモジュールを多くのプロジェクトで必要としていることです。

モジュールを私が「見つける」ことができる中央ディレクトリにインストールすることは可能ですか?

私はCMAKE_MODULE_PATHをディレクトリに設定する必要があることを知っていますが、中央インストール場所ではこの方法が奇妙に思えます。

したがって、複数のプロジェクトで検索モジュールを使用するにはどうすればよいでしょうか?

+0

私の知る限り、 'Find'モジュールのための"中央ディレクトリ "はありません。一部のプロジェクトでcmakeのインストールに欠けているモジュールが必要な場合は、プロジェクト自体がこのモジュールとともに出荷されます。コンクリートマシンの回避策として、 'Find'モジュールをCMake自身がインストールされているモジュールを含むディレクトリに追加することができます。 Linuxでは、このディレクトリは '/ usr/share/cmake/Modules'です。 – Tsyvarev

+0

[他のcmakeパッケージからcmakeライブラリにアクセスできるようにする](http://stackoverflow.com/questions/33462209/making-cmake-library-accessible-by-other-cmake-packages-automatically) – Florian

答えて

1

実際にcmakeのパッケージのレジストリがあります:私たちは同じボックスの両方のコンパイルクロスコンパイルを行う作業場所ので、私はそれを使ったことがないことを

https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#user-package-registry

は注意が、我々はこのように、別のcmakeファイルを持っている必要があります

+0

それはconfig .cmakeファイルはそれで動作します。 Find ... cmakeをconfigファイルにマップする方法を教えてください。 – tonka

+1

@tonka: 'Find'と' Config'スクリプトの主な違いは、最後のものが 'find_library'や他の' find_ * 'コマンドを使う必要がないことです。それは対応する変数を具体的な値に設定するだけです。最後に 'Config'スクリプトは' _FOUND'変数を手動で設定しなければなりません。 BTWでは、この回答で参照されている[page](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html)にもパッケージングの作成の側面が記述されています。 – Tsyvarev