Я создал пакет 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
.