LINUX.ORG.RU

Ответ на: комментарий от XMs

Лучше на уровне файловой системы и дерева каталогов разбираться что должно попадать в сборку, а что нет. Тогда и GLOB_RECURSE можно использовать не боясь.

Не вижу собственно ничего плохого в GLOB_*, это хорошая фича, но конечно и не стоит забывать что всё добавляется по маске, а то и рекурсивно.

Просто перечисляя файлы тоже есть минус – можно забыть включить в сборку то, что должно в ней быть.

a1batross ★★★★★
()
Ответ на: комментарий от a1batross

Тут ещё вопрос в том, как устроен процесс. Если разрабатывает команда, а не один ТС, вероятность появления неожиданных файлов увеличивается.

А так да, вариант

XMs ★★★★★
()
Последнее исправление: XMs (всего исправлений: 1)
Ответ на: комментарий от XMs

Если разрабатывает команда, а не один ТС, вероятность появления неожиданных файлов увеличивается

За счёт чего? Типа остальные не дартаньяны даже в первом приближении?

ТС, если ты вдруг сам не нашёл:

Note: We do not recommend using GLOB to collect a list of source files from your source tree. If no CMakeLists.txt file changes when a source is added or removed then the generated build system cannot know when to ask CMake to regenerate

anonymous
()

По причине бОльшего контроля над сборкой при ручном перечислении всех исходников. Ибо так я явно указываю, что хочу собирать.

rumgot ★★★★★
()

Допустим, ты добавишь файл в проект, но при этом не изменишь cmakelists.txt. Инкрементальная сборка не сработает.

KivApple ★★★★★
()
Ответ на: комментарий от XMs

Стало быть, если человек один работает - он не ошибается либо кол-во ошибок минимум в 2 раза меньше?

anonymous
()
Ответ на: комментарий от anonymous

Да, где-то GLOB можно реализовать, где-то нет. Но даже проблема не в этом. Задача CMake – выполнить всю логику и выдать сгенерированную лапшу без неё.

А, да, под «проблемы генераторов» я подразумевал что это проблема CMake вообще, а не конкретного генератора.

a1batross ★★★★★
()
Последнее исправление: a1batross (всего исправлений: 1)
Ответ на: комментарий от anonymous

Решительно не вижу, из чего это следует. Шанс ошибиться, вероятно, меньше, так как один человек обычно держит в голове весь проект целиком, но отнюдь не нулевой

XMs ★★★★★
()
Ответ на: комментарий от XMs

Ну так ты сам писал:

Если разрабатывает команда, а не один ТС, вероятность появления неожиданных файлов увеличивается

Тезис «весь проект в голове» верен, конечно, но ощутимого различия это не даст

anonymous
()
Ответ на: комментарий от anonymous

If no CMakeLists.txt file changes when a source is added or removed then the generated build system cannot know when to ask CMake to regenerate

+1 в карму этому анону

На практике это реальные и жутко неудобные грабли.

Manhunt ★★★★★
()
Ответ на: комментарий от a1batross

Проблемы генераторов. =/

Проблемы разработчиков, которым приходится периодически разбираться, почему после очередного git pull проект опять перестал собираться.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

Проблемы тех кто опять выбрал говно вместо системы сборки.

a1batross ★★★★★
()
Ответ на: комментарий от anonymous

Что увеличится — да. Но про «в два раза»-то я не писал

XMs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.