2017-05-12 2 views
0

find_package(<package>)がLinux(Ubuntu)で<package>を見つけたときに設定されるデフォルトの変数についても知りたいですか?あなたはそれがCMake's own module path含む事前出荷Find...モジュールだろう「最も重要な」パスをそれを溶融するために持っている場合cmakeを使用しているときのfind_package(<package>)関数のデフォルトの検索パスは何ですか?

+0

ようこそStackOverflow。 1つの質問で2つの質問を投稿しないでください(このサイトのルールには許可されていませんが、「あまりにも広すぎる」と表示されます)。あなたの最初の質問は、 'cmake -D CMAKE_FIND_DEBUG_MODE = ON ..'と呼んでください。 [here](https://stackoverflow.com/documentation/cmake/6752/search-and-use-installed-packages-library-and-programs)も参照してください。 – Florian

答えて

0

答え

に私のコメントを回します。

CMakeからカスタムパスを指示する最も重要なグローバル変数の変数はCMAKE_MODULE_PATHです。

あなたはCMakeのをディレクトリかを確認したい場合は、あなたの場合の検索であるだけ

cmake -D CMAKE_FIND_DEBUG_MODE=ON .. 

を呼び出す全体「検索アルゴリズムは」find_package() command documentationに記載されて:に指定された

  1. 検索パスをcmake固有のキャッシュ変数。 cmakeの固有の環境変数で指定された

    CMAKE_PREFIX_PATH 
    CMAKE_FRAMEWORK_PATH 
    CMAKE_APPBUNDLE_PATH 
    
  2. 検索パスを:NO_CMAKE_PATHが渡された場合、これはスキップすることができます。 HINTSオプションで指定された

    <package>_DIR 
    CMAKE_PREFIX_PATH 
    CMAKE_FRAMEWORK_PATH 
    CMAKE_APPBUNDLE_PATH 
    
  3. 検索パスを:NO_CMAKE_ENVIRONMENT_PATHが渡された場合、これはスキップすることができます。ハードコードされた推測は、PATHSオプションで指定する必要があります。

  4. 標準システム環境変数を検索します。 CMakeのユーザーパッケージのレジストリに保存されている

    PATH 
    
  5. 検索パスを:NO_SYSTEM_ENVIRONMENT_PATHが渡された場合、これはスキップすることができます。 NO_CMAKE_PACKAGE_REGISTRYが渡された場合、またはCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRYTRUEに設定されている場合は、これをスキップできます。

  6. 現在のシステムのプラットフォームファイルで定義されているcmake変数を検索します。 CMakeのシステムパッケージのレジストリに保存されている

    CMAKE_SYSTEM_PREFIX_PATH 
    CMAKE_SYSTEM_FRAMEWORK_PATH 
    CMAKE_SYSTEM_APPBUNDLE_PATH 
    
  7. 検索パスを:NO_CMAKE_SYSTEM_PATHが渡された場合、これはスキップすることができます。 NO_CMAKE_SYSTEM_PACKAGE_REGISTRYが渡された場合、またはCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRYTRUEに設定されている場合は、これをスキップできます。

  8. PATHSオプションで指定された検索パス。これらは通常、ハードコーディングされた推測です。

関連する問題