私は最近CMakeと一緒にたくさんのプロジェクトをビルドしていて、全体的には素晴らしいと思います。しかし、依存関係のあるプロジェクトを構築する必要があるときはいつでも、すぐに苦痛になります。 cmakeののfind_packageシステムは通常、システムにインストールパッケージを見つけることについてかなり良いですのですべてのプロジェクトでCMake変数を設定する方法はありますか?
システムインストールの依存関係は、罰金です。しかし、ソースから依存関係を構築するときはいつでも、CMakeにパッケージを見つける場所を伝えることはほとんど不可能です。
私はFindFoo.cmake
モジュールで検索を続けています。何が特別なヒント変数であるかを把握し、その変数を私のライブラリの場所に設定します。実際の問題は、これらのヒント変数が常にCMake変数であるため、自分自身でCMakeLists.txt
に設定するか、スクリプトファイルでcmakeをラップして、すべての適切なヒント変数を渡していることを確認することですパッケージを探す必要があります。
私は、環境変数を設定しますが、FindFoo.cmake
モジュールのほとんどは、実際にどのような環境変数をチェックしません。
私は私の問題を解決するためPackage Registryを使用してに見えたが、CMakeのはFindFoo.cmake
モジュールを見つけた場合、それもレジストリで探して気にしない、とFindFoo.cmake
モジュールに障害が発生したときにCMakeはただあきらめます。
私が探しているのは、CMakeの "ユーザースコープ"または "システムスコープ"で変数を設定する方法です。ヒント変数をプロジェクトやスクリプトファイルの代わりに1か所に指定するだけです。残念ながら、私はそのような機能を見つけることができないようです。
私は、Windows上だけど、私は将来的にではないかもしれないので、私は、可能な限りソリューションの一般的なとして探しています。
あなたが使用したいすべてのパスを含む環境変数FOOを定義することができますし、この変数を '-DCMAKE_PREFIX_PATH = $ FOO'を介してCMakeに渡します。 – usr1234567
@ usr1234567解決策の検索でCMAKE_PREFIX_PATH変数が何とか見つからなかった。私はそれがまさに私が探しているものかどうかは分かりませんが、それはかなり役に立つと思われます。 – jpfx1342