Показать сообщение отдельно

  #7  
Старый 03.02.2026, 21:40
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Цитата:
Сообщение от sobe1t  

Дополню насчет генерации compile_commands.json в случае если система сборки из коробки этого не может. Существует прикольная утилита Bear которая позволяет получить базу данных компиляции. Отлично работает в случае легаси проектов с самописными Makefiles. Из больших минусов - на данный момент поддерживается только Linux (можно использовать WSL).
На Windows решил это тем, что в качестве генератора начал использовать Ninja, вместо генератора визуалки. Теперь clangd и clang-tidy спокойно работают с проектами, где нужен MSVC (а в реалиях гта это особенно актуально)

.clangd:





Код:
CompileFlags
:
CompilationDatabase
:
build
-
release
Compiler
:
cl.exe
Add
:
[
"-std:c++latest"
,
"/std:c++latest"
]


CMakePresets.json:





Код:
{
"version"
:
8
,
"configurePresets"
:
[
{
"name"
:
"base-ninja"
,
"hidden"
:
true
,
"generator"
:
"Ninja"
,
"architecture"
:
{
"value"
:
"x86"
,
"strategy"
:
"external"
}
,
"toolset"
:
{
"value"
:
"host=x86"
,
"strategy"
:
"external"
}
,
"cacheVariables"
:
{
"CMAKE_EXPORT_COMPILE_COMMANDS"
:
"ON"
,
"CMAKE_C_COMPILER"
:
"cl.exe"
,
"CMAKE_CXX_COMPILER"
:
"cl.exe"
}
}
,
{
"name"
:
"x86-debug"
,
"displayName"
:
"GTA SA (MSVC x86 Debug)"
,
"inherits"
:
"base-ninja"
,
"binaryDir"
:
"${sourceDir}/build-debug"
,
"cacheVariables"
:
{
"CMAKE_BUILD_TYPE"
:
"Debug"
}
}
,
{
"name"
:
"x86-release"
,
"displayName"
:
"GTA SA (MSVC x86 Release)"
,
"inherits"
:
"base-ninja"
,
"binaryDir"
:
"${sourceDir}/build-release"
,
"cacheVariables"
:
{
"CMAKE_BUILD_TYPE"
:
"Release"
}
}
]
,
"buildPresets"
:
[
{
"name"
:
"debug"
,
"configurePreset"
:
"x86-debug"
}
,
{
"name"
:
"release"
,
"configurePreset"
:
"x86-release"
}
]
}
 
Ответить с цитированием