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"]