Как объединить conan_toolchain.cmake и yocto OEToolchainConfig.cmake? ⇐ C++
Как объединить conan_toolchain.cmake и yocto OEToolchainConfig.cmake?
У меня есть проект на C++, который я компилирую с помощью yocto sdk. Я начинаю использовать conan 2.0 в качестве менеджера пакетов для получения сторонних библиотек для моего проекта на C++.
Я создал файл conanfile.txt в корне моего проекта, используя генераторы cmake:
[генераторы] CMakeDeps CMakeToolchain Я также создал профили хост и сборку:
[*]conan_profile_cross_build
[настройки] арка = x86_64 build_type=Выпуск компилятор = gcc компилятор.cppstd=gnu17 компилятор.libcxx=libstdc++11 компилятор.версия=12 ОС = Linux [*]conan_profile_cross_host [настройки] арка=armv8 build_type=Выпуск компилятор = gcc компилятор.cppstd=gnu17 компилятор.libcxx=libstdc++11 компилятор.версия=12 ОС = Linux Чтобы использовать его, я запускаю conan install и вывожу результаты в папку сборки, которая впоследствии будет использоваться cmake.
conan install /src --profile:build=conan_profile_cross_build " f"--profile:host=conan_profile_cross_host " f" --build=отсутствует --output-folder=build Проблема Чтобы позволить cmake находить зависимости, вы должны вызвать cmake с файлом цепочки инструментов: cmake -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
Однако при сборке с помощью yocto sdk вы берете исходный файл среды: source Environment-setup-armv8a-enchanted_tools-linux, и он создает псевдоним cmake это уже устанавливает для CMAKE_TOOLCHAIN_FILE значение OEToolchainConfig.cmake, которое находится где-то внутри SDK.
cmake допускает только один файл цепочки инструментов, поэтому я не могу использовать их оба.
В документации conan я видел, что вам следует отредактировать OEToolchainConfig.cmake, что я и сделал, но это не решает проблему, заключающуюся в том, что я могу выбрать только один файл цепочки инструментов.
Вопрос
Как я могу использовать SDK и позволить cmake находить пакеты, предоставленные conan? Может быть, есть что-то сделать в профиле хоста conan? Или этот рабочий процесс не является хорошей идеей, и мне следует установить зависимости напрямую в yocto sdk? Я также компилирую этот проект на собственном рабочем столе Ubuntu Linux, и здесь Конан отлично работает. Идея состоит в том, чтобы легко протестировать новые зависимости, прежде чем приступать к их интеграции в yocto и восстановлению всего пакета SDK.
У меня есть проект на C++, который я компилирую с помощью yocto sdk. Я начинаю использовать conan 2.0 в качестве менеджера пакетов для получения сторонних библиотек для моего проекта на C++.
Я создал файл conanfile.txt в корне моего проекта, используя генераторы cmake:
[генераторы] CMakeDeps CMakeToolchain Я также создал профили хост и сборку:
[*]conan_profile_cross_build
[настройки] арка = x86_64 build_type=Выпуск компилятор = gcc компилятор.cppstd=gnu17 компилятор.libcxx=libstdc++11 компилятор.версия=12 ОС = Linux [*]conan_profile_cross_host [настройки] арка=armv8 build_type=Выпуск компилятор = gcc компилятор.cppstd=gnu17 компилятор.libcxx=libstdc++11 компилятор.версия=12 ОС = Linux Чтобы использовать его, я запускаю conan install и вывожу результаты в папку сборки, которая впоследствии будет использоваться cmake.
conan install /src --profile:build=conan_profile_cross_build " f"--profile:host=conan_profile_cross_host " f" --build=отсутствует --output-folder=build Проблема Чтобы позволить cmake находить зависимости, вы должны вызвать cmake с файлом цепочки инструментов: cmake -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake
Однако при сборке с помощью yocto sdk вы берете исходный файл среды: source Environment-setup-armv8a-enchanted_tools-linux, и он создает псевдоним cmake это уже устанавливает для CMAKE_TOOLCHAIN_FILE значение OEToolchainConfig.cmake, которое находится где-то внутри SDK.
cmake допускает только один файл цепочки инструментов, поэтому я не могу использовать их оба.
В документации conan я видел, что вам следует отредактировать OEToolchainConfig.cmake, что я и сделал, но это не решает проблему, заключающуюся в том, что я могу выбрать только один файл цепочки инструментов.
Вопрос
Как я могу использовать SDK и позволить cmake находить пакеты, предоставленные conan? Может быть, есть что-то сделать в профиле хоста conan? Или этот рабочий процесс не является хорошей идеей, и мне следует установить зависимости напрямую в yocto sdk? Я также компилирую этот проект на собственном рабочем столе Ubuntu Linux, и здесь Конан отлично работает. Идея состоит в том, чтобы легко протестировать новые зависимости, прежде чем приступать к их интеграции в yocto и восстановлению всего пакета SDK.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение