ここで説明したのと同じ問題があり、TARGET「パッケージ」の POST_BUILD コマンドとしてシェルスクリプトを実行したいと考えています。ターゲット プラットフォームは Debian/Ubuntu です。
CMakeLists の最後に以下を追加します。
add_custom_command(
TARGET package
POST_BUILD
COMMAND bash ${PROJECT_BINARY_DIR}/fixup_deb.sh
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "Fix file-permissions of md5sum files in debian package"
)
しかし、これはうまくいきません。「make package」を呼び出しても、スクリプトは変更されません。
現時点では、カスタム ターゲットを使用した回避策があります。
add_custom_target(
correctDeb
COMMAND bash ${PROJECT_BINARY_DIR}/fixup_deb.sh
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
しかし、「make package」を呼び出すときにこれが自動的に行われると、私にとってははるかに快適でフェールセーフになります。
ちなみに、${PROJECT_BINARY_DIR}/fixup_deb.shの生成は以下でもうまくいきます:
configure_file( "${CMAKE_CURRENT_LIST_DIR}/debian/fixup_deb.sh.in" "${PROJECT_BINARY_DIR}/fixup_deb.sh" @ONLY IMMEDIATE )