2017-11-10 3 views
1

私は私のカスタムFindBlabla.cmakeファイルを見つけるためにCMakeを望むならば、それにつながるパスをCMAKE_MODULE_PATH変数にすることができます。しかし、BlablaConfig.cmakeファイルがあり、それがどこにあるのかをCMakeに伝えたいとしたらどうでしょうか?私も-DBlabla_DIR=/path/to/BlablaConfig.cmakeフラグを設定することができ、私は私が欲しいものを得ることがわかります。しかし、もし私がこのような設定ファイルをいくつか持っていたら?私はそれぞれのために*_DIR変数を設定することを避けたいと思います。CMake:CONFIGパッケージのデフォルトパスを上書きする方法は?

もっと具体的には、Qt設定ファイルの例を考えてみましょう。もし私が持っているなら。 Gentooをインストールし、Portageからqt5をインストールすると、設定ファイルは/usr/lib/cmake/Qt5*/Qt5*Config.cmakeになり、CMakeはデフォルトでそれを見つけることができます。しかし、ソースからqt5をビルドして/usr/local/Qt-some.versionにインストールした場合、デフォルトでCMakeには/usr/local/Qt-some.version/lib/cmake/Qt5*/Qt5*.Config.cmakeのファイルが表示されないので、CMakeにどこの設定ファイルがあるかを伝えなければなりません。

アイデア?変数はすべてのパッケージに影響CMAKE_PREFIX_PATHを設定

答えて

0

set(CMAKE_PREFIX_PATH "/usr/local/Qt-some.version") 
... 
find_package(Qt5) # This will firstly consult "/usr/local/Qt-some.version" path. 

FindXXX.cmakeスクリプトにほのめかしについてもmy answer関連する質問への参照してください。

+0

実際にこの変数を設定すると、そのトリックが実行されます。ありがとう! – krokoziabla

関連する問題