Size: a a a

Конференция C++ Russia

2021 July 28

o

ololoshwin in Конференция C++ Russia
и так быстро собирается
источник

o

ololoshwin in Конференция C++ Russia
а если много - то на все ядра хватит
источник

*

*cyberzx in Конференция C++ Russia
но нагрузка будет равномерная. ещё над оучитывать, что в большом проекте есть граф зависимостей в виде библиотек.
и если в одной библиотеке есть .cpp который компилируется полторы минуты, то всё на ней остановится
источник

DK

Dmitry Kazakov in Конференция C++ Russia
Ну блин, умеет он! https://invent.kde.org/graphics/krita/-/merge_requests/447

Только при наличии кучи разномастных сошек поддерживать это очень тяжело.

Единственное ограничение, которое я заметил --- это невозможность использовать object library под Виндой, что усложняет жизнь для sse/avx оптимизаций. Все остальное работало вроде.
источник

DK

Dmitry Kazakov in Конференция C++ Russia
Если бы оно ещё умело автоматом выбирать pch'ы по ключам компиляции, то было бы значительно проще это использовать.
источник

EP

Egor Pugin in Конференция C++ Russia
поддерживать тяжело означает, что включить трудно или что?
источник

DK

Dmitry Kazakov in Конференция C++ Russia
Это значит, что нужно либо для каждой сошки создавать свой собственный PCH, либо вручную(!) трекать, какие сошки могут шарить PCH, а какие нет. Первый вариант реально в проде поддерживать, но толку от него будет мало, так как у нас куча плагинов/юниттестов, в которых по одному-два translation unit. Второй поддерживать нереально, так как некоторые сошки отличаются набором импортируемых либ (а при импорте генерируется -DDLLIMPORT_QTGUI), что делает PCH несовместимыми.
источник

AD

Alexander Dudin in Конференция C++ Russia
Если в проекте 10000 cpp-файлов, то использование UNITY_BUILD в cmake ускоряет сборку в разы. Включение PCH под GCC _замедляет_ компиляцию на 20-30%.
источник

EP

Egor Pugin in Конференция C++ Russia
собственный pch - да, почему нет. Да, малоэффективно для 1-2 tu. Второй должен автоматикой решаться - системой сборки
источник

DK

Dmitry Kazakov in Конференция C++ Russia
Ну а у нас ускоряет на 30% :)
источник

DK

Dmitry Kazakov in Конференция C++ Russia
Вот пока не решается :( По крайней мере я не нашел
источник

AD

Alexander Dudin in Конференция C++ Russia
Это при включенных unity-сборках?
источник

DK

Dmitry Kazakov in Конференция C++ Russia
Нет, unity не используем, оно невозможно у нас
источник

DK

Dmitry Kazakov in Конференция C++ Russia
Ждать по пять минут, пока соберется юнити сборка при редактировании одного файла так себе идея ;)
источник

АК

Александр Караев... in Конференция C++ Russia
Так UNITY_BUILD раскидывает на чанки по несколько файлов
источник

FZ

Fedya Zentsev in Конференция C++ Russia
нам тут удалось с помощью системы сборки настроить автоизоляцию измененных файлов. CI всегда молотит в юнити, а на рабочих местах редактируемый файл автоматически вынимается из юнити. Вроде ок
источник

DK

Dmitry Kazakov in Конференция C++ Russia
А каким это образом?
источник

FZ

Fedya Zentsev in Конференция C++ Russia
пользуемся FASTBuild, он с юнити из коробки работает и может слушать СКВ. В нашем случае из git status данные берет и юнити формирует по-другому
источник

DK

Dmitry Kazakov in Конференция C++ Russia
А его к симейку нельзя прикрутить что-ли?
источник

FZ

Fedya Zentsev in Конференция C++ Russia
вот этого не знаю, не пытались
источник