Настроить cmake в VS: включить ошибки - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу работать над проектом, который я клонировал из git, используя Visual Studio 2017. Проект оснащен cmake-файлами и может быть встроен в bash вручную.После открытия каталога в VS cmake выводит include- и add-errors, поскольку он не может найти библиотеку (carl) в ресурсах, хотя она установлена ​​в моей системе.

Я использую Visual StudioCommunity 2017 15.9.6, cmake 3.10.2, и для (ручного) построения проекта в bash я использую подсистему Linux для Windows.Проект находится в своем собственном каталоге, скажем / project, с подкаталогами / src, / cmake, / build и другими.Библиотека carl находится в / mnt / c / libs / carl, а не в / project / src / resources / carl, где ее ожидает cmake.

set(CARL_BUILD_DIR "${CMAKE_BINARY_DIR}/resources/src/CArL-config-EP-build")
file(MAKE_DIRECTORY ${CARL_BUILD_DIR})
execute_process(
    COMMAND ${CMAKE_COMMAND} -DTARGETDIR=${CMAKE_BINARY_DIR}/resources ${CMAKE_SOURCE_DIR}/src/resources/carl
    WORKING_DIRECTORY ${CARL_BUILD_DIR}
)
execute_process(
    COMMAND ${CMAKE_COMMAND} --build . --target CArL-EP-download
    WORKING_DIRECTORY ${CARL_BUILD_DIR}
)

ExternalProject_Add(
    CArL-EP
    DOWNLOAD_COMMAND ""
    CONFIGURE_COMMAND ""
    BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} carl
    INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install/fast
)

include(${CMAKE_BINARY_DIR}/resources/src/CArL-EP-build/carlConfig.cmake)
message("Include ${CMAKE_BINARY_DIR}/resources/src/CArL-EP-build/carlConfig.cmake")
add_dependencies(carl-shared CArL-EP)
add_dependencies(carl-static CArL-EP)
add_dependencies(resources carl-static carl-shared)

(Вывод cmake в VS указывает наэтот cmake-файл carl.cmake)

Сообщения об ошибках от VS

Я хочу, чтобы VS проанализировал и проиндексировал весь проект, чтобы обеспечить полностью работающий Intellisense-функциональность.В настоящее время VS является не более чем текстовым редактором.

Я не очень разбираюсь в cmake, поэтому буду благодарен за любую помощь.

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