VS сама по себе не предоставляет таких возможностей.Особенно, поскольку нет никаких явных зависимостей, указанных каким-либо образом, кроме комментариев, в которых они указаны.Однако вы можете создать сценарий на вашем любимом языке сценариев, который будет проверять наличие .cpp
файлов на наличие зависимостей и попытаться вызвать компилятор с правильными аргументами.
Следующий сценарий powershell удастся скомпилировать почти все проекты (некоторые не работают с компоновщикомошибки, и я не собираюсь выяснять причину)
mkdir obj
$compilerPath = "cl.exe"
$projects = gci mains\*.cpp
foreach ($pm in $projects)
{
Write-Output $pm.Name;
$cppFiles = Get-Content $pm | Select-String "[\d\w]+\.cpp" | foreach-object {"source\" + $_.Matches[0].Value} | Select-String $pm.Name -NotMatch -SimpleMatch
$cppFiles = @("mains\$($pm.Name)") + $cppFiles;
& $compilerPath $cppFiles /I .\include\ /EHsc /Fo.\obj\
}
Сценарий предполагает, что он запускается из каталога, который содержит подкаталоги include
, mains
и source
.Его следует запускать с VS tools command prompt
(чтобы правильно настроить среду здания).