Cmake:如果有任何变化,则依赖运行

问题描述

我是 Cmake 的新手,我有一个名为 TARGET 的主要输出。我正在尝试添加名为 _copY_ASSETS_TARGET自定义目标作为主 TARGET 的依赖项。如果 TARGET 有任何变化,我希望 _copY_ASSETS_TARGET 自动重建 _copY_ASSETS_TARGET_copY_ASSETS_TARGET 应该取决于文件夹的变化。

这是我尝试实现的代码

 if (NOT TARGET ${_copY_ASSETS_TARGET})
            add_custom_target(${_copY_ASSETS_TARGET})
            add_dependencies(${_ARGS_PROJECT_TARGET} ${_copY_ASSETS_TARGET})
            set_property(TARGET ${_copY_ASSETS_TARGET} PROPERTY FOLDER "Targets")
        endif()

        add_custom_command(TARGET ${_copY_ASSETS_TARGET}
            ${_COMMANDS}
            VERBATIM
        )

我正在尝试 Visual Studio 进行调试,如果我重建 _copY_ASSETS_TARGET,那么只有我才能看到更新后的输出。我想知道如何将我的文件链接_copY_ASSETS_TARGET,以便 TARGET 自动构建新代码

解决方法

add_custom_command(OUTPUT ${OUTPUT_DIRECTORY} ${_COMMANDS}
            DEPENDS ${DEPENDENT_DIRECTORY}
            VERBATIM
        )

        add_custom_target(${_COPY_ASSETS_TARGET} ALL 
            DEPENDS ${OUTPUT_DIRECTORY}
        )

        add_dependencies(${_ARGS_PROJECT_TARGET} ${_COPY_ASSETS_TARGET})
        set_property(TARGET ${_COPY_ASSETS_TARGET} PROPERTY FOLDER "Targets")

我发现这对我的项目有效