Проект не построен, когда я указываю exclude_from_default_build в CMake - PullRequest
0 голосов
/ 28 октября 2019

Я строю исполняемый файл 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...