6
をインストールするまで、カスタムターゲットを作る延期します。私が望むのは、CMakeがビルド時ではなく、make install
が発行されたときにのみ、このコマンドを実行することです。は、私は私のプロジェクトでは、このような何かを持っている
キーワードをすべて削除すると、ターゲット全体がデフォルトで作成されていないため、somefileは生成されず、make install
は失敗します。
をインストールするまで、カスタムターゲットを作る延期します。私が望むのは、CMakeがビルド時ではなく、make install
が発行されたときにのみ、このコマンドを実行することです。は、私は私のプロジェクトでは、このような何かを持っている
キーワードをすべて削除すると、ターゲット全体がデフォルトで作成されていないため、somefileは生成されず、make install
は失敗します。
解決策は、make install
コマンドで副作用としてmake tgt
を呼び出すことです。これはinstallコマンドのCODE
署名を使用して行うことができます。
add_custom_command(OUTPUT somefile)
add_custom_target(tgt DEPENDS somefile)
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build \"${CMAKE_CURRENT_BINARY_DIR}\" --target tgt)")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/somefile DESTINATION somedir)
execute_process
はsomefile
がインストールされる前に、ターゲットtgt
を構築するためにcmakeのを起動します。