Отключение проекта Visual Studio для сборки с использованием cmake - PullRequest
6 голосов
/ 12 ноября 2011

Я создаю решение VS2010 с несколькими проектами (в настоящее время 4, в итоге будет до 10-20). Я хочу только одного из них построить; остальное должно быть отключено. Я могу сделать это вручную, зайдя в диспетчер конфигурации и сняв флажки с ненужных ящиков, но, очевидно, это не очень хорошее решение.

Что я могу добавить в файл CMakeLists.txt для проекта, который заставит его это сделать? Поиск по документам, Google и SO ничего не дал.

only bam projectshould be built

Обновление: вот мой корневой CMakeLists.txt на случай, если это поможет:

cmake_minimum_required(VERSION 2.8)

add_definitions(-DCOMPILER_MSVC)
project (PDEngine)

set(LINKER_LANGUAGE CXX)

add_subdirectory (units/platform)
add_subdirectory (units/render_api)
add_subdirectory (units/memory)
add_subdirectory (units/game)

set(custom_exe "${CMAKE_CURRENT_BINARY_DIR}/units/Platform/Debug/Platform.lib2")

add_custom_command(OUTPUT ${custom_exe}
  COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat -j $ENV{NUMBER_OF_PROCESSORS}
  DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat
)
#add_custom_command(OUTPUT ${custom_exe_clean}
  #COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat -c
  #DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat
#)

add_custom_target(bam ALL DEPENDS ${custom_exe})
#add_custom_target(bamclean ALL DEPENDS ${custom_exe_clean}})

(материал bam.bat основан на ответе, который я получил здесь: Как настроить CMake, чтобы решение VS использовало определенную командную строку сборки? )

А вот CMakeLists.txt для проекта "платформа":

cmake_minimum_required (VERSION 2.8)
project (Platform)

set (COMPILER_MSVC 1)

include_directories(${Platform_SOURCE_DIR}/include)
file(GLOB Project_HEADERS ${Platform_SOURCE_DIR}/include/platform/*.h)
source_group("Headers" FILES ${Project_HEADERS})

add_library(Platform STATIC EXCLUDE_FROM_ALL src/*.cpp ${Project_HEADERS})

Ответы [ 2 ]

2 голосов
/ 16 ноября 2011

Так что если вы хотите сделать что-то не по умолчанию, вы можете удалить это из цели «ALL» (которая отображается в Visual Studio как ALL_BUILD).Это можно сделать с помощью целевого свойства EXCLUDE_FROM_ALL или путем передачи EXCLUDE_FROM_ALL в add_executable и add_library.(Пользовательские цели по умолчанию - EXCLUDE_FROM_ALL, поэтому для обратного вы добавляете ALL к аргументам add_custom_target.)те, которые вы хотите, будут строить.Другие можно создать, щелкнув по ним правой кнопкой мыши и выбрав «Build», например, встроенный проект / цель INSTALL.

1 голос
/ 14 марта 2014

Для этой цели существует целевое свойство EXCLUDE_FROM_DEFAULT_BUILD.

См. https://stackoverflow.com/a/14911387/594456.

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