C++ وBazel

تحتوي هذه الصفحة على الموارد التي تساعدك في استخدام Bazel مع مشاريع C++. فهي ترتبط ببرنامج تعليمي وإنشاء القواعد وغيرها من المعلومات المتعلقة بإنشاء مشاريع C++ باستخدام Bazel.

العمل مع بازيل

ستساعدك المراجع التالية في العمل مع Bazel في مشاريع 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 قاعدة القاعدة.