Есть ли способ (повторно) использовать «заявки» из упаковываемого проекта? - PullRequest
0 голосов
/ 09 января 2019

Я создал пакет conan для своих библиотек и заметил, что мне нужно продублировать список requires для библиотеки и рецепта пакета. Интересно, есть ли лучший способ сделать это?

Я создаю пакеты conan для существующих библиотек. Скажем, у меня есть libA и libB - что зависит от libA. То есть для сборки libB мне нужно, чтобы libA была встроена и «установлена». Итак, у меня есть Crafter пакет conan для libA, который собирается и устанавливается, поскольку у него нет других зависимостей. Теперь я могу собрать libB с помощью conan, указав в conanfile.txt, что libB зависит от libA. Но когда я разрабатываю пакет для libB, мне нужно продублировать список зависимостей libB в свойстве requires в conanfile.py.

cat libB/conanfile.txt
[requires]
libA/1@user/stable
...

cat conan-libsB/conanfile.py 
...
class LibBConan(ConanFile):
...
requires = "libA/1@user/stable"
...
def build(self):
    cmake = CMake(self, parallel=True)
    cmake.configure(source_folder=self.name)
    cmake.build()
    cmake.test()
    cmake.install()

Выше приведена упрощенная версия из реальной библиотеки https://github.com/abbyssoul/conan-libstyxe/blob/master/conanfile.py и https://github.com/abbyssoul/libstyxe/blob/master/conanfile.txt

Может ли Конан выяснить, что если исходный пакет содержит conanfile.[txt|py], то это определяет поле requires.

В случае, если для получения пакета необходим инструмент, необходимо использовать build_requires.

...