首页 > 解决方案 > add_custom_command POST_BUILD 在构建 3 个目标后运行 shell 脚本?

问题描述

我在 cmake 中有 3 个目标由 add_executable() 添加

我想在这 3 个目标完成/构建后运行一个 shell 脚本。

通常,我为一个目标执行此操作:

 add_custom_command(TARGET TARGET1 POST_BUILD
               VERBATIM
               COMMAND SHELL_SCRIPT CALL HERE
              ) 

但是,如果我想在构建 3 个目标之后运行脚本呢?

标签: cmake

解决方案


执行以下操作将确保脚本始终仅在构建三个可执行文件后执行:

add_executable(prog1 main1.cc)
add_executable(prog2 main2.cc)
add_executable(prog3 main3.cc)

add_custom_target(
  ExecuteScript ALL
  COMMAND ${CMAKE_COMMAND} -E echo "Executed after targets are built"
  VERBATIM
  )

add_dependencies(ExecuteScript prog1 prog2 prog3)

推荐阅读