2

私はCMakeを使用してコードをビルドしています。CMakeLists.txtには、すべての.Cまたは.CPPファイルとすべてのインクルードディレクトリのリストが含まれています。

CMakeLists.txtを実装してmake、すべての.Cおよび.CPP(または.CXX)ファイルとのインクルードディレクトリからのすべての.hファイルのリストを含むcscope.filesを生成するオプションを設定するにはどうすればよいですか。それ?

たとえば、実行できるはずでmake cscopefiles、cscope.filesが生成されます。

それとも、そのようなオプションはすでにありますか?

4

2 に答える 2

3

また、configure_file呼び出しを使用してFraserの応答を拡張することもできるため、最終的なファイルは、その内容が変更された場合にのみ変更されます。

file(WRITE
  ${CMAKE_BINARY_DIR}/cscope.files.in
  "${AllFiles}")
configure_file(
  ${CMAKE_BINARY_DIR}/cscope.files.in
  ${CMAKE_BINARY_DIR}/cscope.files
  COPYONLY)

これは、他の何か(カスタムコマンド)がcscope.files出力ファイルに依存している場合に、増分再構築を最小限に抑えるのに役立ちます。configure_file呼び出しは、結果が現在の内容と異なる場合にのみ出力ファイルを更新します。

于 2013-03-07T16:44:27.047 に答える
2

次のようなものを追加することで、CMake が実行されるたびにファイルを生成できます (これは、ファイルの現在のリストが と という 2 つの変数にあることを前提としていますSourceFiles) HeaderFiles

set(AllFiles ${SourceFiles} ${HeaderFiles})
string(REPLACE ";" "\n" AllFiles "${AllFiles}")
file(WRITE ${CMAKE_BINARY_DIR}/cscope.files "${AllFiles}")
于 2013-03-02T15:39:45.010 に答える