CMakeListsファイルで私のプロジェクトのポストビルドイベントを追加しようとしています。 このビルド後のイベントは、実行可能ファイルの近くにQtライブラリを置く必要があります。 私はそれを行うにはadd_custom_command
を使用します。CMake経由で共有ライブラリ名を生成
set(libraryFileName ${QtDir}/bin/${packageName}.dll)
# Copy qt library after build
add_custom_command(
TARGET ${target} POST_BUILD #Path to cmake executable file
COMMAND "${CMAKE_COMMAND}" -E #CMake in command mode
copy #Copy command
"${libraryFileName}" #Path to the file
"$<TARGET_FILE_DIR:${target}>" #Where to copy
COMMENT "Copying to output directory")
主な問題は、すべてのシステムに正しくlibraryFileNameを生成する方法ですか?つまり、私の魂はWindowsで動作しますが、他のシステムタイプでは失敗します。共有ライブラリの拡張機能をハードコードする代わりに、その拡張機能を入手する方法はありますか?
'$'を 'copy'のソースの場所として使用できませんか? –
Florian
「ポリシーCMP0026」(https://cmake.org/cmake/help/latest/policy/CMP0026.html)もあります。これは「ビルドターゲットのLOCATIONプロパティの使用を拒否する」もので、新しいバージョンのCMakeでの警告/エラー。 – Florian