
CMake Dependency Provider لمدير حزمة Conan C و C ++.
cmake-conan . |
|---|
إن تكامل cmake-conan في هذا الفرع develop2 لـ Conan 2 باستخدام موفري التبعية CMake ، حتى لو لم يتم إصداره على أنه 1.0 حتى الآن ، هو أكثر استقرارًا ، وجاهزًا للإنتاج ، وموصى به من Cmake cmake-conan cmake-conan Legacy for develop2 1. |
المتطلبات الأساسية:
conanfile.txt أو conanfile.py لسرد التبعيات المطلوبة. أولاً ، استنساخ هذا المستودع في فرع develop2 .
git clone https://github.com/conan-io/cmake-conan.git -b develop2 يحتوي هذا المستودع على CMakeLists.txt مع مشروع مثال يعتمد على fmt .
cd cmake-conan/example
mkdir build
cmake -B build -S . -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=../conan_provider.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release تأكد من أنك وضعت conanfile.txt أو conanfile.py في جذر مشروعك ، مع إدراج متطلباتك. يمكنك رؤية conanfile.txt للحصول على مثال ، أو التحقق من وثائق Conan لـ conanfile : .txt docs ، .py docs.
عند استدعاء Cmake لأول مرة لتكوين المشروع ، تمرير -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake . سيضمن ذلك استدعاء conan install من داخل CMAKE. لا يتطلب هذا التكامل إجراء أي تغييرات على نصوص CMakeLists.txt .
cd [your-project]
mkdir build
cmake -B build -S . -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=[path-to-cmake-conan]/conan_provider.cmake -DCMAKE_BUILD_TYPE=ReleaseCMakeDeps فقط - لإعدادات البناء التي يمكن أن توفرها CMakeToolchain (على سبيل المثال ، المترجم نفسه أو إعدادات البناء العالمية الأخرى) ، يرجى استدعاء كونان بشكل منفصل وفقًا للوثائق.find_package . بالنسبة إلى التبعيات التي لها منطق خارج find_package ، على سبيل المثال ، من خلال إجراء مكالمات مباشرة إلى find_program أو find_library أو find_path أو find_file ، قد لا تعمل هذه بشكل صحيح.CMAKE_BUILD_TYPE (لا يمكن تركه فارغًا) سيقوم موفر التبعية Cmake-Conan بإنشاء ملف تعريف Conan حيث يتم استرداد الإعدادات ( os ، arch ، compiler ، build_type ) مما اكتشفه Cmake للبناء الحالي. يستخدم كونان ملامحين لتبعيات ، المضيف وملامح البناء . يمكنك قراءة المزيد عنها هنا. في Cmake-Conan ، السلوك الافتراضي هو كما يلي:
default .default . يرجى ملاحظة أنه لكي يعمل ما سبق ، يجب أن يكون هناك ملف تعريف default بالفعل. إذا لم يحدث ذلك ، فسوف تستدعي cmake-conan آلية Conan Censionsence التي تحاول تخمين التخلف عن سداد النظام.
إذا كنت بحاجة إلى تخصيص ملف التعريف ، فيمكنك القيام بذلك عن طريق تعديل قيمة CONAN_HOST_PROFILE و CONAN_BUILD_PROFILE وتمريرها كمتغيرات ذاكرة التخزين المؤقت Cmake. بعض الأمثلة:
-DCONAN_HOST_PROFILE="default;auto-cmake" : قم بإجراء عملية كشف تلقائية كما هو موضح أعلاه ، وتراجع إلى ملف التعريف الافتراضي لأي شيء آخر (السلوك الافتراضي).-DCONAN_HOST_PROFILE=clang16 : لا تنفذ الكشف التلقائي ، واستخدم ملف تعريف clang16 الذي يجب أن يكون موجودًا في مجلد ملامح كونان (انظر المستندات.)-DCONAN_BUILD_PROFILE="/path/to/profile" : بدلاً من ذلك ، قم بتوفير مسار إلى ملف ملف تعريف قد يكون في أي مكان في نظام الملفات.-DCONAN_HOST_PROFILE="default;custom" : قائمة مفصول شبه مفصولة بالملفات التعريف. سيتم استخدام ملف تعريف مركب (انظر المستندات) - المدمجة من اليسار إلى اليمين ، حيث يكون للأولوية اليمنى. سيقوم موفر التبعية Cmake-Conan بتمرير معلومات الملف الشخصي كما هو موضح أعلاه. إذا كان من الضروري تخصيص دعوة أمر conan install ، فيمكن استخدام متغير CONAN_INSTALL_ARGS .
CONAN_INSTALL_ARGS لتمرير --build=missing . إذا قمت بتخصيص هذا المتغير ، فيرجى أن تكون على علم بأن Conan ستعود إلى سلوكه الافتراضي ما لم تحدد علامة --build .conanfile.txt|.py ، وتنسيق الإخراج ( --format ).--build=never;--update;--lockfile-out='' هناك بعض الاختبارات ، يمكنك الركض في Python ، مع Pytest ، على سبيل المثال:
$ pytest -rA