CMake в Visual Studio неправильно устанавливает CMAKE_BINARY_DIR - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть проект CMake, который я строю в Visual Studio. В моем файле CMakeLists.txt у меня есть это утверждение:

if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
  message(FATAL_ERROR "Prevented in-tree build. ")
endif()

В моем CMakeSettings.json у меня есть эта строка:

{
"configurations":[
 {
 "name": "x64-Debug",
 //...
 "buildRoot": "{projectDir}\\out\\build\\${name}",
}
//...
]
//....
}

Согласно этой документации buildRoot отображается на -DCMAKE_BINARY_DIR.

Я получаю сообщение об ошибке, которое можно увидеть в приведенном выше операторе if.

Если я напечатаю переменную CMAKE_BINARY_DIR, она будет выглядеть совсем не так, как buildRoot это просто корень проекта.

Ранее это работало, но я использовал CMake в командной строке разработчика для VS 2019, чтобы попытаться построить проект, но теперь, если я пытаюсь собрать заново из Visual Studio, я получаю вышеуказанную ошибку (всборка дерева).

Есть идеи, что не так и как правильно установить CMAKE_BINARY_DIR в CMakeSettings.json?

1 Ответ

0 голосов
/ 08 ноября 2019

Решил проблему, удалив файл CMakeCache.txt. Оказывается, я вызвал CMake из той же директории, что и проект, и он создал файл CMakeCache.txt, содержащий неверную директорию сборки.

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