トップレベルのカスタム ターゲットが 1 つあり、custom_command を追加/バインドすることでこの既存のターゲットを拡張できるネストされたサブモジュールが必要です。今のところ、私は問題に直面しています:add_custom_command(TARGET target_name ...)
ターゲットが定義されているファイルで使用されていない場合 (ターゲットは最上位の CMakeLists.txt で定義されています)、この custom_command は単純に無視されます。
詳細:
1) 最上位の CMakelists.txt で作成されたcustom_target
cmake_minimum_required(VERSION 2.8)
add_custom_target(custom_tg
COMMAND ls > custom_target.txt
)
add_custom_command(TARGET custom_tg
COMMAND ls > custom_command1.txt
)
add_subdirectory(sub)
2)サブディレクトリ「sub」には、カスタムコマンドで既存のターゲットを拡張できることを望んでいた他のCMakeLists.txt(モジュール)があります。
add_custom_command(TARGET custom_tg
COMMAND ls > custom_command2.txt
)
3)ビルドディレクトリを作成して実行すると
cmake .. && make custom_tg
出力ファイルはcustom_target.txtとcustom_command1.txtですが、 custom_command2.txtはありません。それが実際に私の問題です。
build/CMakeFiles/custom_tg.dir/build.makeを調べると、そこにはcustom_command2.txtについての言及がありません。build.makeファイルの内容は次のとおりです: http://pastebin.com/zVVS4sYL。
実際、Cmake によって生成されたファイルのツリーにcustom_command2.txtに関する言及が見つかりません。これは私には奇妙に見えます。
あなたの助けを楽しみにしています。