Как изменить номер параллельной компиляции с Xcode

Как изменить количество параллельных компиляций при сборке проекта C++ с XCode?

Я говорю не о распределенных сборках, а об одновременной компиляции набора исходных файлов из одного проекта на одном компьютере. (в настоящее время используется Xcode 3.2.4)

Спасибо

5 ответов

Решение

Настроить PBXNumberOfParallelBuildSubtasks пользователь по умолчанию, например:

defaults write com.apple.XCode PBXNumberOfParallelBuildSubtasks 6

Для Xcode 4 необходимо установить значение по умолчанию для пользователя IDEBuildOperationMaxNumberOfConcurrentCompileTasks, например:

defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4

Обратите внимание на "дт". Это не повлияет на xcodebuild в командной строке. Чтобы сделать это, используйте что-то вроде

xcodebuild -IDEBuildOperationMaxNumberOfConcurrentCompileTasks=4 ...

(См. http://lists.apple.com/archives/xcode-users/2011/Apr/msg00403.html и http://lists.apple.com/archives/xcode-users/2011/Jul//msg00377.html)

Для справки: разработчики на нашем сайте, использующие XCode 4, обнаружили, что параллельная компиляция отключается, если установлен антивирус McAfee. Сборки, которые должны завершиться через 15-20 минут, заняли почти пять часов, пока McAfee не был удален.

Для сборок из командной строки я протестировал сообщение в списке рассылки 2011 / Jul, которое связал Mimika, и развернул его на нашем сервере сборки (Xcode 4.2, на Snow Leopard) для экономии памяти следующим образом:

defaults write xcodebuild IDEBuildOperationMaxNumberOfConcurrentCompileTasks 1

Я не знаю, почему оно падает с четырех до двух, но я также обнаружил, что выход из Xcode 6, а затем в терминале ввод "по умолчанию написать xcodebuild IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4" вернул меня к четырем при перезапуске Xcode.

Другие вопросы по тегам