Как собрать несколько проектов в VS2008? - PullRequest
0 голосов
/ 14 марта 2012

Я изучаю шаблон проектирования, следуя «Маркам дизайна и ценообразованию» Марка Джоши.Вот весь код в его книге: http://www.markjoshi.com/design/ В нескольких проектах есть папка 'main' в папке 'mains'.Я хочу собрать их все вместе, не выбирая все связанные файлы в каждом проекте.Любой умный способ сделать это в VS2008?

1 Ответ

0 голосов
/ 26 августа 2015

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 (чтобы правильно настроить среду здания).

...