Настройки Conanfile при кросс-компиляции с CMake и файлом toolchain - PullRequest
0 голосов
/ 10 октября 2018

Я прочитал, что компилятор должен быть указан при вызове команды построения Конана или в разделе [settings] профиля.

Однако я собираю с использованием Cmake и уже предоставляю информацию о компиляторе с помощью CMAKE_TOOLCHAIN_FILE.Я обнаружил, что могу установить это в секции профиля [env], используя CONAN_CMAKE_TOOLCHAIN_FILE, но это не рассматривается в settings.

. Теперь я запутался в возможности указать компилятор, который делаетне соответствует указанному в CONAN_CMAKE_TOOLCHAIN_FILE.

Как правильно указать компилятор в этом случае?

Безопасно ли заменить стандартный раздел настроек на CONAN_CMAKE_TOOLCHAIN_FILE?

, то есть в conanfile.py:
settings = "CONAN_CMAKE_TOOLCHAIN_FILE"

(Кроме того, почему это не так?t источник указан в settings? Конечно, это наиболее распространенное изменение, которое влияет на двоичный файл вывода?)

1 Ответ

0 голосов
/ 07 февраля 2019

CONAN_CMAKE_TOOLCHAIN_FILE это только переменная env, связанная с CMake, а не сама по себе настройка.

Как правильно указать компилятор в этом случае?

Вам необходимо настроить свои параметры как обычно при кросс-компиляции.Лучшая идея - создать новый профиль для этого.Например:

[settings]
arch=armv7hf
build_type=Release
compiler=gcc
compiler.libcxx=libstdc++
compiler.version=7
os=Linux
[env]
CONAN_CMAKE_TOOLCHAIN_FILE=/opt/cmake/Toolchain-armhf.cmake

Профиль может находиться непосредственно в $ {CONAN_USER_HOME} / profile или выполнять команду conan profile

Безопасно ли заменить стандартный раздел настроек на CONAN_CMAKE_TOOLCHAIN_FILE??

Нет!Настройки - это группа свойств, которые являются частью идентификатора вашего пакета.Если вы измените это, Конан будет жаловаться на это недействительным новым свойством, поскольку только некоторые свойства принимаются по умолчанию.

С уважением!

...