تحتوي هذه الصفحة على الموارد التي تساعدك في استخدام Bazel مع مشاريع C++. فهي ترتبط ببرنامج تعليمي وإنشاء القواعد وغيرها من المعلومات المتعلقة بإنشاء مشاريع C++ باستخدام Bazel.
العمل مع بازيل
ستساعدك المراجع التالية في العمل مع Bazel في مشاريع C++:
- برنامج تعليمي: إنشاء مشروع C++
- حالات الاستخدام الشائعة باستخدام C++
- قواعد C/C++
- ضبط سلسلة أدوات C++
- برنامج تعليمي: ضبط سلاسل أدوات C++
- الدمج مع قواعد C++
أفضل الممارسات
بالإضافة إلى أفضل ممارسات Bazel العامة، في ما يلي أفضل الممارسات الخاصة بمشاريع C++.
إنشاء الملفات
اتّبِع الإرشادات أدناه عند إنشاء ملفات BUILD:
يجب أن يحتوي كل ملف
BUILDعلى قاعدة قاعدةcc_libraryواحدة لكل مجموعة مجمّعة في الدليل.عليك تبسيط مكتبات C++ قدر الإمكان لزيادة التزايد وموازاة الإصدار.
إذا كان هناك ملف مصدر واحد في
srcs، يمكنك تسمية المكتبة باسم ملف C++ نفسه. يجب أن تحتوي هذه المكتبة على ملفات C++ وأي ملفات عناوين مطابقة والتبعيات المباشرة للمكتبة. مثال:cc_library( name = "mylib", srcs = ["mylib.cc"], hdrs = ["mylib.h"], deps = [":lower-level-lib"] )استخدم هدف قاعدة
cc_testواحد لكل هدفcc_libraryفي الملف. أدخِل اسمًا للهدف[library-name]_testوملف المصدر[library-name]_test.cc. على سبيل المثال، سيبدو هدف الاختبار لاستهداف مكتبةmylibالمعروض أعلاه على النحو التالي:cc_test( name = "mylib_test", srcs = ["mylib_test.cc"], deps = [":mylib"] )
تضمين المسارات
اتّبع هذه الإرشادات لتضمين المسارات:
تأكد من أن جميع المسارات تتضمّن مسارات ذات صلة بدليل مساحة العمل.
استخدِم علامات الاقتباس (
#include "foo/bar/baz.h") للعناوين غير التابعة للنظام، وليس الأقواس بين القوسين (#include <foo/bar/baz.h>).تجنَّب استخدام اختصارات دليل UNIX، مثل
.(الدليل الحالي) أو..(الدليل الرئيسي).قديم أو
third_partyالذي يتطلب الإشارة خارج مستودع المشروع، مثل المستودع الخارجي الذي يتطلب بادئة، استخدمinclude_prefixوstrip_include_prefixالوسيطات علىcc_libraryقاعدة القاعدة.