CMake: 他のすべての前に add_custom_command を実行する方法 質問する

CMake: 他のすべての前に add_custom_command を実行する方法 質問する

カスタムコマンドがあります

add_custom_command(
    OUTPUT config.h
    PRE_BUILD
    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/mk_config_h.py ${CMAKE_CURRENT_BINARY_DIR}/config.h
)

他のすべてよりも先にこれを実行しようとしており、Unix Makefile を生成しています。

ただし、PRE_BUILD は VS2010 でのみサポートされており、config.hリンク前にビルドされることを意味します。

cmake がソースのコンパイルを開始する前にカスタム コマンドを作成するにはどうすればよいですか。

ベストアンサー1

使用すべきadd_custom_target代わりにadd_dependencies通常のターゲットがそれに依存するようにするには:

add_custom_target(
    myCustomTarget
    COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/mk_config_h.py ${CMAKE_CURRENT_BINARY_DIR}/config.h
)
add_dependencies(myTarget myCustomTarget)

これにより、 のソースをコンパイルする前にコマンドが実行されるようになりますmyTarget

おすすめ記事