менеджер пакетов conan: глобально указать папку сборки

По умолчанию (в Linux) conan создает папку сборки в /home/user/.conan/data/package/version/_/_/build/hash

Я хотел бы использовать что-то вроде /tmp/conan/package/version/hash/ в качестве папки сборки.

Для одного пакета это легко достигается с помощью опции -bf. Однако при сборке большого количества пакетов это становится утомительным. Есть ли способ глобально установить папку сборки в какое-то место под /tmp в настройках конфигурации?


person flowit    schedule 17.05.2021    source источник


Ответы (1)


Невозможно отделить только папку сборки от данных, но вы можете установить Путь к хранилищу.

Если вы хотите также отказаться от папки сборки тестового пакета, используйте переменная среды CONAN_TEMP_TEST_FOLDER.

Идея папки сборки заключается в том, чтобы отделить исходный код от встроенного кеша. Если вы разрабатываете новый рецепт с помощью команды conan create, возможно, вам нужно внести много изменений в свой рецепт, но вы не хотите загружать один и тот же исходный код для каждого нового выполнения, поэтому вы резервируете исходную папку и только воссоздаете сборку папка.

Если вы действительно хотите удалить папку сборки после сборки пакета, вы можете использовать Хуки, например:

from conans import tools

def post_package(output, conanfile, conanfile_path, **kwargs):
    output.info("BUILD FOLDER TO BE REMOVED: %s" % conanfile.build_folder)
    tools.rmdir(conanfile.build_folder)
person uilianries    schedule 17.05.2021
comment
Спасибо, тогда я подам запрос на добавление функции. Дело не столько в очистке, сколько в том, чтобы избежать (иногда больше, иногда меньше) записи на диск. - person flowit; 17.05.2021
comment
Откройте свой запрос функции здесь: github.com/conan-io/conan/issues - person uilianries; 17.05.2021