הדף הזה מספק פרטים על התוכן של מאגר Bazel, כיצד לבנות את פרויקט הספיגה בעזרת פלטפורמת Bazel וכיצד לבנות את הפרויקט הזה ישירות. ממחשב המארח באמצעות המאגר של Bazel עם הרכבה לספרייה.
בניית פרויקט Absil מהמחשב המארח באמצעות מארז לספריות
ההוראות בקטע זה מאפשרות לך לבנות באמצעות מאגר Bazel עם המקורות שנבדקים בסביבת המארח שלך. מאגר מופעל לפני כל פקודת build שתפעילו. תוצאות build נשמרות במטמון בסביבה של המארח, כך שניתן יהיה לעשות בהן שימוש חוזר בפלטפורמות שונות.
שכפל את הפרויקט לספרייה בספרייה המארחת שלך.
git clone https://github.com/abseil/abseil-cpp.git /src/workspace
יצירת תיקייה עם תוצאות שנשמרו במטמון לשיתוף בין גרסאות build.
mkdir -p /tmp/build_output/
השתמשו במאגר של Bazel כדי לבנות את הפרויקט ולהפוך את פלטי ה-build לזמינים בתיקיית הפלט במחשב המארח שלכם.
docker run \
-e USER="$(id -u)" \
-u="$(id -u)" \
-v /src/workspace:/src/workspace \
-v /tmp/build_output:/tmp/build_output \
-w /src/workspace \
l.gcr.io/google/bazel:latest \
--output_user_root=/tmp/build_output \
build //absl/...
בנה את הפרויקט עם חומרי חיטוי על ידי הוספת סימון build של --config=asan|tsan|msan
כדי לבחור ב-Address Sanitizer (asan), ב-Thread Sanitizer או (ssan) או
Memory Sanitizer (msan) בהתאם.
docker run \
-e USER="$(id -u)" \
-u="$(id -u)" \
-v /src/workspace:/src/workspace \
-v /tmp/build_output:/tmp/build_output \
-w /src/workspace \
l.gcr.io/google/bazel:latest \
--output_user_root=/tmp/build_output \
build --config={asan | tsan | msan} -- //absl/... -//absl/types:variant_test
בניית פרויקט Absil מתוך המאגר
ההוראות בקטע הזה מאפשרות לך לבנות את הכלי המכיל Bazel עם המקורות שנכללים במאגר. על ידי הפעלת גורם מכיל בתחילת זרימת העבודה של הפיתוח וביצוע שינויים ב-worpe בתוך המאגר, תוצאות ה-build יישמרו במטמון.
יצירת מעטפת במאגר בזל:
docker run --interactive --entrypoint=/bin/bash l.gcr.io/google/bazel:latest
כל מזהה של מאגר הוא ייחודי. בהוראות שבהמשך, המאגר היה 5a99103747c6.
שכפול הפרויקט.
root@5a99103747c6:~# git clone https://github.com/abseil/abseil-cpp.git && cd abseil-cpp/
יש לבצע בנייה רגילה.
root@5a99103747c6:~/abseil-cpp# bazel build //absl/...
בנה את הפרויקט עם חומרי חיטוי על ידי הוספת סימון הבנייה --config=asan|tsan|msan
כדי לבחור ב-Address Sanitizer (asan), ב-Thread Sanitizer או (Memory Sanitizer) (msan).
root@5a99103747c6:~/abseil-cpp# bazel build --config=--config={asan | tsan | msan} -- //absl/... -//absl/types:variant_test
סיור במאגר בזל
אם עדיין לא עשית זאת, הפעל מעטפת אינטראקטיבית בתוך מאגר Bazel.
docker run -it --entrypoint=/bin/bash l.gcr.io/google/bazel:latest
root@5a99103747c6:/#
עיון בתוכן המאגר.
root@5a99103747c6:/# clang --version clang version 8.0.0 (trunk 340178) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/bin
root@5a99103747c6:/# java -version openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
root@5a99103747c6:/# python -V Python 2.7.12
root@5a99103747c6:/# python3 -V Python 3.6.6
root@5a99103747c6:/# bazel version Extracting Bazel installation... Build label: 0.17.1 Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar Build time: Fri Sep 14 10:39:25 2018 (1536921565) Build timestamp: 1536921565 Build timestamp as int: 1536921565