У меня есть проект 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?