манипулировать порядком сборки для независимых целей в ninja / cmake - PullRequest
2 голосов
/ 18 марта 2019

Я работаю над проектом c ++, созданным с помощью cmake + ninja с приблизительно 1200 целевыми объектами сборки на 64-поточном компьютере.

Есть одна единица перевода, для компиляции которой требуется 10 минут, большинство других работают сравнительно быстро, так чтоПостроение всех других целей вместе занимает (построение на всех потоках) всего около 9 минут.Модуль медленной трансляции довольно независим от остальных, поэтому его не нужно планировать с опозданием, но, как выясняется, по умолчанию он запланирован с опозданием, так что полная сборка занимает у меня от 15 до 20 минут.конец, есть только один поток, работающий почти со всеми другими выполненными целями.Сборка была бы быстрее для меня, если бы сначала планировался блок медленной трансляции, блокируя один поток на 10 минут, в то время как все остальные потоки работают с остальной частью проекта, и весь проект создается за 10 минут.

Есть ли способ в cmake или ninja сместить приоритеты планирования так, чтобы они указывали на медленные или "пожалуйста ранние" цели без путаницы зависимостей?

...