0

トップレベルのカスタム ターゲットが 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.txtcustom_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に関する言及が見つかりません。これは私には奇妙に見えます。

あなたの助けを楽しみにしています。

4

1 に答える 1