conan.io: вызов exe с виртуальной средой запуска

У меня есть привет инструмент, который содержит только EXE-файлы (без исходного кода).
Привет структура инструмента:

bin
   helloBin.exe
helloRoot.exe
conanfile.py

conanfile.py содержание:

class ToolHelloConan(ConanFile):
   name = "ToolHello"
   version = "0.1"
   settings = "os", "compiler", "build_type", "arch"

def package(self):
   self.copy("*")

def package_info(self):
   self.cpp_info.libs = self.collect_libs()

Я экспортировал инструмент приветствия в локальный кеш: conan export-pkg . ToolHello/0.1@user/testing, Это скопировал все exe в local_cache/ToolHello/0.1/user/testing/package/hash/bin, Корзина в локальном кеше выглядит так:

bin
   helloBin.exe
helloRoot.exe

Я определил проект интеграции инструментов, который содержит только conanfile.txt

[requires]
   ToolHello/0.1@user/testing

[generators]
   virtualrunenv

После запуска conan install . В проекте интеграции инструментов и активации виртуальной среды выполнения я могу вызвать только helloRoot.exe потому что он расположен прямо в каталоге bin, но я не могу выполнить bin / bin / helloBin.exe

Вопрос: Как мне запустить EXE-файлы, которые не находятся непосредственно в local_cache/ToolHello/0.1/user/testing/package/hash/bin, но в local_cache/ToolHello/0.1/user/testing/package/hash/bin/directory?

1 ответ

Решение

Вы должны определить биндиры, которые не являются значениями по умолчанию (bin). Добавьте это к вашему conanfile.py:

def package_info(self):
   self.cpp_info.bindirs = ["bin", "bin/directory"]

Если вам нужно также включить корень папки пакета, вам может понадобиться:

def package_info(self):
   self.cpp_info.bindirs = ["", "bin", "bin/directory"]
Другие вопросы по тегам