КОМАНДА CMake POST_BUILD с зависимостями

#cmake

Вопрос:

  1. У меня есть цель для общего доступа, и я хочу, чтобы она запускала команду после сборки ТОЛЬКО в том случае, если целевой выходной файл изменился, или то же самое для меня, если сборка обновляется. В моем примере команда запускается каждый раз, когда я создаю проект, но мне нужно, чтобы он запускался только в том случае, если после сборки целевой выходной файл изменился
 cmake_minimum_required(VERSION 3.21)

project(myexp)

add_library(Example SHARED source.cpp)

set_target_properties(Example  PROPERTIES 
        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin

lt;0:>"
)

add_custom_command(TARGET Example POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy


lt;TARGET_FILE:Example> ${CMAKE_CURRENT_SOURCE_DIR}/new
DEPENDS Example
)

DEPENDS здесь не работает

из документации — add_custom_command

 The second signature adds a custom command to a target such as a library or executable. 
This is useful for performing an operation before or after building the target. 
The command becomes part of the target and will only execute when the target itself is 
built. 
If the target is already built, the command will not execute.
 

может быть, мое понимание этого неверно

  1. есть ли способ многовыходного вывода

Спасибо

Комментарии:

1. DEPENDS doesnt work here Каким образом это не работает? Откуда вы знаете, что это не работает? is there a way to Multi-OUTPUT Что это значит? Что такое «Многовыходный»?

2. @KamilCuk У меня есть цель для общего доступа, и я хочу, чтобы она выполняла команду после сборки, если целевой выходной файл изменился

3. @KanilCuk Мульти-ВЫВОД — вывод DLL-файла в несколько каталогов

4. Удалять DEPENDS Example . Форма с POST_BUILD не использует его. Он работает POST_BUILD , он уже знает, когда нужно работать.

5. @KamilCuk он запускает КОМАНДУ каждый раз, когда я строю, но мне нужно, чтобы она запускалась только в том случае, если после сборки — целевой выходной файл (Example.dll) изменено