Я надеюсь, что кто-то отметит что-то неправильное или обходное решение для того, что мы переживаем.
При компиляции проекта с /MP появляется то, что одновременно копируются только файлы в одной папке. Я использовал проводник процессов для прокрутки командной строки и подтверждения поведения.
Фильтры проекта, похоже, не влияют на то, что компилируется одновременно.
Структура проекта на диске:
Folder\
project.vcxproj
source\
foo.cpp
foo1.cpp
other_folder\
bar.cpp
bar1.cpp
bar3.cpp
Начальное дерево процессов:
MSBuild.exe
cl.exe ( passed: source\foo.cpp source\foo1.cpp )
cl.exe ( passed: source\foo.cpp )
cl.exe ( passed: source\foo1.cpp )
После того, как 2 дочерних экземпляра cl.exe завершат родительский элемент, и появится следующее дерево процессов:
MSBuild.exe
cl.exe ( passed: other_folder\bar.cpp other_folder\bar1.cpp other_folder\bar2.cpp )
cl.exe ( passed: other_folder\bar.cpp )
cl.exe ( passed: other_folder\bar1.cpp )
cl.exe ( passed: other_folder\bar2.cpp )
Наш источник хорошо организован на многих уровнях вложенных папок, которые соответствуют макету заголовков на диске. Мне бы очень хотелось, чтобы это было полезно для использования/MP.