2016-10-24 5 views
0
私はCMakeのプロセスのすべての詳細を知りたい

を実行することができ、それは、それはそれ店舗をキャッシュ は、どのように私は、「デバッグ」CMakeのは、プロセス

  • を捜しますパス
  • 呼び出す関数など

    私は--debug-outputとcmake-guiを試しましたが、それほど詳細ではありません。

    レポートなしで自動的に実行されるものは好きではありません。それは物事を台無しにする。たとえば、私は2時間かかって、 "find_package()"のパスを取得するためにCMakeがWindowsレジストリを静かに使用することを確認しています。これは本当に迷惑なことです(冗長な文書ですべての単語を読んでいれば、以前はそれを知っていたはずです)

    CMakeのソースコードを見るのが唯一の方法でしょうか?実は、私は(Lists in CMake are just strings with semicolons delimiters

  • +0

    'たとえば、私は、CMakeがWindowsのレジストリを静かに使ってfind_package()のパスを取得するのに2時間を費やしました。 - [Documentation](https://cmake.org/cmake/) help/v3.5/command/find_package.html)は 'find_package()'の説明です(検索アルゴリズムのステップ7を参照)。 – Tsyvarev

    +0

    ようこそスタックオーバーフロー。はい、どのようにCMakeスクリプトをデバッグするのかについてのドキュメント自体は良いでしょう。だから私はSO Documentationの[Test and Debug]トピック(http://stackoverflow.com/documentation/cmake/4098/test-and-debug)に応募/寄稿しました。つまり、特別なタスクのためのデバッグ出力があります。 'find_package()'については、[ここ](http://stackoverflow.com/documentation/cmake/4098/test-and-debug/21128/debug-find-package-errors)を参照してください。ファイルアクセス/解析に関する一般的な情報[ここ](http://stackoverflow.com/questions/30503631/cmake-in-which-order-are-files-parsed-cache-toolchain)を参照してください。 – Florian

    +0

    @Tsyvarevはい、私は、CMakeがレジストリを使用していることを知った直後にこれを知っています。私のせい。しかし、一方で、私はプログラミング言語として、あなたがそれを使用する前にすべてのユーザがその文書を完全に理解することを期待することはできません。 – flm8620

    答えて

    0

    さて、あなたはそれがどのように見えるかを正確に知るために、あなたの特定のパッケージのためにshare/cmake-3.x/Modulesフォルダ内のスクリプト内で見ることができる)完全セットの振るう構文を(理解するためにcmakeのソースコードを読みましたパッケージのパスとレジストリキーを調べます。

    またはProcess Monitorを使用して、アクセスしようとしているファイルとレジストリキーを確認するcmakeプロセスをスパイすることができます。

    +0

    Thx、プロセスモニターは知っている素晴らしいことです – flm8620