CMakeのドキュメントは、コマンドfile GLOBについてこう述べています。なぜcmakeファイルGLOB悪ですか?
私たちはあなたのソースツリーからソースファイルのリストを収集するためにGLOBを使用することはお勧めしません。ソースが追加または削除されたときにCMakeLists.txtファイルが変更されない場合、生成されたビルドシステムはいつCMakeに再生成を要求するかを知ることができません。
ウェブ内のいくつかのディスカッションスレッドは、ソースファイルのグロビングが悪いことを第2に示しています。ビルドシステムを作るためしかし
は、ソースが追加または削除されたことを知って、それが
touch CMakeLists.txt
右を言うために十分なのか?
それでは、CMakeLists.txt
を編集してソースファイル名を挿入または削除するのはそれほど労力がかかりません。また、覚えにくいこともありません。だから私はfile GLOB
に対して助言する正当な理由は見当たらない。
この議論で何が問題になっていますか?
[こちら](http://stackoverflow.com/questions/30949452/cmake-ninja-attempting-to-compile-deleted-cpp-file/31183245)の説明も参照してください。私の答えに記述されているように、私は 'CMakeLists.txt'ファイル内の全てのソースファイルを一覧表示します(別のビルド構成用のソースファイルを時々手作りするため)。 VSプロジェクトでそれらを持っている)。たとえば、次のような回避策を提案しました。 'configure_file($ {CMAKE_SOURCE_DIR}/.git/index $ {PROJECT_BINARY_DIR} /git_index.tmp)'のようなもので 'git'を実行します。 – Florian