2
私のプロジェクトはいくつかのコンポーネントで構成されています。それぞれは、外部ツールを使用して*.lcm
から生成された1つまたは複数の*.hpp
ファイルに依存します。のコンパイルのためプリコンパイル処理にCMakeのADD_CUSTOM_COMMANDを使用する
REQUIRED_LCMS (the_component x.lcm z.lcm)
:私は*.lcm
ファイルは、おそらくちょっといいマクロを使用して、指定され、自動的に必要なコンパイルを行う各コンポーネントに必要とCMakeのを持っているかのリストを指定できるようにしたいのですが
ADD_CUSTOM_COMMAND (OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${lcm_basename}.hpp
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${lcm}
COMMAND "lcm-gen"
ARGS "--lazy --cpp ${CMAKE_CURRENT_SOURCE_DIR}/${lcm}"
COMMENT " ${lcm} -> ${lcm_basename}.hpp")
...しかし、私はREQUIRED_LCMS
にどうあるべきかがわからないよ:*.lcm
は、私は次のように動作するはずだと思います。 ADD_CUSTOM_COMMAND
とADD_CUSTOM_TARGET
?
この回答は、1つのキャッチでかなり良いです。ターゲットのソースのリストにカスタムコマンドの出力を含めれば、自動的に依存関係が追加されるため、それを使用するターゲットのソースリストに$ {LCM_COMPILED_MESSAGES}を置くと、依存関係は自動的になります。カスタムターゲットとは対照的に、このアプローチの欠点は、IDEソースリストに生成されたファイルがあればそれを表示し、同じディレクトリ(同じCMakeLists.txtファイル)にする必要があるかもしれないと思います。カスタムコマンド。 –