تحتوي هذه الصفحة على الموارد التي تساعدك في استخدام 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
قاعدة القاعدة.