תחילת העבודה עם מיכל דופל בזל

הדף הזה מספק פרטים על התוכן של מאגר 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