ポストビルドアクションには、CMakeコマンドと適切な変数があります。
CMakeの付いたファイルの周りにコピーするためのプラットフォームに依存しないコマンドがCMake itself on the command lineを使用している:
${CMAKE_COMMAND} -E copy_if_different "${src}" "${dest}"
「現在」の設定がgenerator expressionsで抽出することができます。
$<CONFIG>
とさえ直接真実
について試験しました
$<CONFIG:Debug>
ouターゲットのバイナリ(すなわち、実行可能ファイルおよび共有ライブラリ/ DLL)は、ターゲット変数RUNTIME_OUTPUT_DIRECTORY
(およびRUNTIME_OUTPUT_DIRECTORY_<CONFIG>
)で与えられ、グローバル変数CMAKE_RUNTIME_OUTPUT_DIRECTORY
(およびCMAKE_RUNTIME_OUTPUT_DIRECTORY_<CONFIG>
)であらかじめ設定されています。
最後に、我々は_POST成功-build_の意味で、または実際_install_ステップとして
add_custom_command(TARGET myTarget POST_BUILD
COMMAND if $<CONFIG:Debug> ("${CMAKE_COMMAND}" -E copy_if_different "${path_to_dependent_dll}/dependent.dll" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}")
COMMAND if $<CONFIG:Release> ("${CMAKE_COMMAND}" -E copy_if_different "${path_to_dependent_dll}/dependent.dll" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}")
COMMENT "Copying dependent DLL"
)
あなたは_copy_意味ですかビルド後のコマンドを構成することができますか?ジェネレータ式を使用してビルドタイプ依存の場所を指定することはできますか? –
DLLは別のターゲットの製品ですか? –
。解決策が見つかりました。私はこのようにcmakeでのVisual Studioの$(コンフィギュレーション)変数を使用します。add_custom_command(TARGET OBS POST_BUILD \t \t COMMAND $場合(ConfigurationName)==デバッグ( \t \t XCOPY/Y/D「$(QTDIR)\\ビン\ \ Qt5WebKitWidgetsd.dll "" $(SolutionDir)rundir \\ $(構成)\\ bin \\ 64bit "\ n)else(//何か) – Cosi10a1