building from Conan - #2
Conversation
borune-k12
commented
Mar 3, 2020
- generated files removed
- CMakeLists is adapted for building from conan
sergotail
left a comment
There was a problem hiding this comment.
Суть помещения сгенерированных файлов в репозиторий была в том, что однажды сгенерированные определённой версией protoc stub файлы для конкретной версии etcd-grpc сохраняются в истории изменений библиотеки, тем самым мы имеем чёткое соответствие версий grpc и etcd-grpc. Также при клонировании теперь недостаточно просто запустить cmake, надо сначала сгенерировать stub файлы, но нет никакой гарантии, что они сгенерируются нужной версией protoc и с нужными ключами. Поэтому теряется суть тэгов с версиями etcd-grpc, потому что для одной и той же версии etcd-grpc можно получить абсолютно различные stub файлы, просто меняя версии protoc при генерации stub файлов.
| project (etcd-grpc) | ||
|
|
||
| set(LIBRARY_TYPE SHARED) | ||
| if (EXISTS "${CMAKE_BINARY_DIR}/../conanbuildinfo.cmake") |
There was a problem hiding this comment.
Откуда берётся именно такая структура файлов? Нет ли тут зависимости от выбора директории для сборки? Кажется, что может оказаться так, что если указать директорию сборки, например, на одном уровне с conanbuildinfo.cmake, то даже при наличии этого файла cmake будет собирать библиотеку без conan.
There was a problem hiding this comment.
Используемые версии зависимостей (в т.ч. grpc и protobuf) указываются в conan-рецепте для etcd-grpc, так что собрать ее с разными версиями этих библиотек через конан не получится.
Размещение папок src и build стандартно для библиотек, собираемых конаном. Сгенерированный файл conanbuildinfo.cmake всегда находится на уровень выше папки сборки. Тут проблем нет.
There was a problem hiding this comment.
Но:
- Конан-файла нет в этом репозитории
- Что делать в случае сборки без конана?
И всё так же актуальна проблема версий (см. коммент ко всему пулл реквесту)
И мб не CMAKE_BINARY_DIR, а CMAKE_SOURCE_DIR?
|
1. А его там и не должно быть. Конан-файл, как правило, лежит в другой
репе, так как авторы исходников некоторого пакета и авторы конан-рецепта
для этого же пакета, вообще говоря, разные.
2. В случае сборки без конана надо будет генерить stub-классы вручную. Но
это, насколько я понимаю, очень редкий кейс, так как мы как раз привносим
конан именно для того, чтобы разработчику не надо было собирать руками
зависимости.
пятница, 6 марта 2020 г. пользователь Sergey <notifications@github.com>
написал:
… ***@***.**** commented on this pull request.
------------------------------
In CMakeLists.txt
<#2 (comment)>:
> @@ -1,7 +1,21 @@
cmake_minimum_required (VERSION 3.1.3 FATAL_ERROR)
project (etcd-grpc)
-set(LIBRARY_TYPE SHARED)
+if (EXISTS "${CMAKE_BINARY_DIR}/../conanbuildinfo.cmake")
Но:
1. Конан-файла нет в этом репозитории
2. Что делать в случае сборки без конана?
И всё так же актуальна проблема версий (см. коммент ко всему пулл
реквесту)
И мб не CMAKE_BINARY_DIR, а CMAKE_SOURCE_DIR?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#2?email_source=notifications&email_token=AFNL6776JKMSRNWMEKA3TTTRGFOXLA5CNFSM4LAMY5LKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCYLS2KA#discussion_r389137006>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFNL6723DQAFKVAQ3OIGSZDRGFOXLANCNFSM4LAMY5LA>
.
|