Skip to content

building from Conan - #2

Open
borune-k12 wants to merge 1 commit into
DSSL-MSK3:masterfrom
borune-k12:master
Open

building from Conan#2
borune-k12 wants to merge 1 commit into
DSSL-MSK3:masterfrom
borune-k12:master

Conversation

@borune-k12

Copy link
Copy Markdown
  • generated files removed
  • CMakeLists is adapted for building from conan

@sergotail sergotail left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Суть помещения сгенерированных файлов в репозиторий была в том, что однажды сгенерированные определённой версией protoc stub файлы для конкретной версии etcd-grpc сохраняются в истории изменений библиотеки, тем самым мы имеем чёткое соответствие версий grpc и etcd-grpc. Также при клонировании теперь недостаточно просто запустить cmake, надо сначала сгенерировать stub файлы, но нет никакой гарантии, что они сгенерируются нужной версией protoc и с нужными ключами. Поэтому теряется суть тэгов с версиями etcd-grpc, потому что для одной и той же версии etcd-grpc можно получить абсолютно различные stub файлы, просто меняя версии protoc при генерации stub файлов.

Comment thread CMakeLists.txt
project (etcd-grpc)

set(LIBRARY_TYPE SHARED)
if (EXISTS "${CMAKE_BINARY_DIR}/../conanbuildinfo.cmake")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Откуда берётся именно такая структура файлов? Нет ли тут зависимости от выбора директории для сборки? Кажется, что может оказаться так, что если указать директорию сборки, например, на одном уровне с conanbuildinfo.cmake, то даже при наличии этого файла cmake будет собирать библиотеку без conan.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Используемые версии зависимостей (в т.ч. grpc и protobuf) указываются в conan-рецепте для etcd-grpc, так что собрать ее с разными версиями этих библиотек через конан не получится.

Размещение папок src и build стандартно для библиотек, собираемых конаном. Сгенерированный файл conanbuildinfo.cmake всегда находится на уровень выше папки сборки. Тут проблем нет.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Но:

  1. Конан-файла нет в этом репозитории
  2. Что делать в случае сборки без конана?
    И всё так же актуальна проблема версий (см. коммент ко всему пулл реквесту)
    И мб не CMAKE_BINARY_DIR, а CMAKE_SOURCE_DIR?

@borune-k12

borune-k12 commented Mar 6, 2020 via email

Copy link
Copy Markdown
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants