В целом идея плохая, project() много чего ставит. Можете проверять, выставлено ли имя проекта, и в зависимости от этого дёргать или не дёргать project (но я это тоже не особо одобряю)
Ну у меня как. Я в симэйке профан. Порекомендуйте бест-практис тогда, по вашему мнению. Есть проект, он билдится. В директории проекта есть сабдиректория tests. Это отдельное с++ приложение, которое потребляет основной проект как статик-либу. Я хочу иметь возможность билдить tests-приложение И как подпроект основного (т.е. сначала билдится моя основная либа, потом уже tests-приложение, которое потребляет эту либу) и как отдельный проект (в случаях, когда либа уже сбилжена где-либо еще).
Не усложняйте, собирайте как подпроект всегда и всё
Я в CI хочу разделить билд и тест этапы. Для этого мне надо собирать тесты отдельно, независимо. И оставить возможность локально собирать разработчикам как подпроект.
Запуск тестов и будет отдельным этапом так-то, собирать то какая разница
Сборка тестов тоже должна быть отдельным этапом, так как время
зачем?
Чтобы разделить этапы билда тестов от билда приложения, так как это разные билды же
разные или нет — это ещё бабушка надвое сказала. Есть какой-то практический смысл в таком разделении? Или просто хочется выкачивание репозитория + conan install два раза на двух разных агентах подождать?
Да, практический смысл - легче дебажить билд из-за большого количества логов и длинной сборки, также конан инсталл не делается дважды, потому что артефакты
т.е. пайплайн умеет один раз собрать либу с проектом, а потом 10 раз пересобирать падающие тесты, не ждя пересборки либы? (ну или не уже умеет а хочет научиться, я просто пытаюсь понять общий замысел)
если так, то копать тебе нужно в сторону того, чтобы твоя либа могла инсталлироваться/экспортироваться через cmake --install, например — а уже тесты будут её поглощать через условный find_package()
Обсуждают сегодня