Я строю исполняемый файл A
. Я установил другую цель A_remote
, которая использует настраиваемый модуль запуска для удаленной отладки в Visual Studio. Я пытаюсь добиться того, чтобы перед запуском цели A_remote
запускалась другая цель, которая развертывает файл на удаленном компьютере. Поэтому я добавляю пользовательскую цель deploy
, которая запускает пакетный файл, и заставляю A_remote
зависеть от нее. Поскольку deploy
также копирует файлы изображений, которые не являются частью решения VS, я хочу, чтобы он всегда запускался перед запуском A_remote
.
Однако, когда я собираю все решение, я не хочуVS для сборки всего, что связано с удаленной отладкой, поэтому я использую EXCLUDE_FROM_DEFAULT_BUILD
. Но когда я делаю это и собираю A_remote
, VS сообщает мне
1>------ Skipped Build: Project: deploy, Configuration: Debug x64 ------
1>Project not selected to build for this solution configuration
Вот пример CMakeLists.txt.
cmake_minimum_required(VERSION 3.11.0 FATAL_ERROR)
file(WRITE main.cpp "int main(){return 0;}\n")
file(WRITE deploy.bat "echo Deploying!\n")
add_executable(A main.cpp)
add_executable(A_remote main.cpp)
add_custom_target(deploy "${CMAKE_SOURCE_DIR}/deploy.bat")
set_target_properties(deploy PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
add_dependencies(A_remote deploy)
Как мне добиться, чтобы deploy
всегда былпостроено, когда я строю A_remote
, но не когда я строю решение или ALL_BUILD
?