בנייה של OpenWeave

ארגז הכלים הראשי הנתמך לבניית OpenWeave הוא GNU Autotools.

דרישות המערכת

כל פלטפורמות ה-OS העיקריות תומכות בהכנה וביצירה של אוסף OpenWeave. ערכות הכלים הרשומות נבדקו באופן רשמי על ידי Nest.

Linux

דרישות: Ubuntu 14.04 (Trusty) נתמך באופן רשמי, אבל כל מערכת דומה המבוססת על Linux אמורה לפעול.
C/C++, Java, Python
מחזיקי כלים gcc 4.6.3
יעדים i386-unknown-linux-gnu
x86_64-unknown-linux-gnu
C/C++, איגודי Java
מחזיקי כלים gcc 4.6
יעדים זרוע-ידית

Mac OS X

דרישות: XQuartz לשכפול עץ משנה אחד לספרייה אחרת עם קישורים סימבוליים.
C/C++, קשרים לקקאו
יעדים Arv7-apple-Dwin-ios
armv7s-apple-Dwin-ios
i386-apple-dashwin-ios
C/C++, Python
מחזיקי כלים LLVM/clang 3.5 (6.0)
יעדים i386-apple-Dwin-macosx
x86_64-apple-Dwin-macosx

חלונות

דרישות: Cygwin לתמיכה בשורת הפקודה של Linux.
שדות C/C++
מחזיקי כלים gcc 4.8.3
יעדים i686-pc-cygwin

מוטמע

שדות C/C++
מחזיקי כלים gcc 4.4.1
LLVM/clang 3.1
LLVM/clang 3.3
יעדים זרוע*-unknown-linux*
arm*-unknown-freertos-lwip

דרישות מוקדמות

בנוסף לארגז כלים נתמך, מומלץ להתקין את החבילות והכלים הבאים לפני הבנייה של OpenWeave.

חבילות

Linux:

sudo apt-get install python-pip python-setuptools bridge-utils /
               libglib2.0-dev libdbus-1-dev libudev-dev /
               libical-dev libreadline-dev

Linux ו-Mac OS X:

pip install --user google-cloud googleapis-common-protos grpc protobuf pycryptodomex
sudo cpan -i Text::Template

כלי רכב של GNU

OpenWeave תלוי בכלי הרכב של GNU עבור מערכת ה-build שלו. גרסה של GNU כלי רכב חייבים להיות זמינים כדי לפתח בהצלחה את OpenWeave. כדי להשתמש בגרסה האוטומטיה של המערכת של Linux ב-Linux:

sudo apt-get install libtool autoconf automake

עבור המערכות שבהן ה-GNU Autotools אינו זמין או ניתן להתקנה (לדוגמה, Mac OS) או במערכות שבהן הגרסה שסופקה על ידי המערכת לא יוצרת גרסת build קשיחה מחוץ לאריזה, מערכת Nest Labs יצרה מסגרת מותאמת אישית ובנייתית, המבוססת על GNU Autotools. המערכת מצמידה את קבוצת התוכניות המשמשות ליצירת גרסאות טובות של גרסאות. הצמדה של הכלים לגרסה מסוימת מבטיחה גם נטישה נמוכה יחסית בפלט של כלי הרכב, וכתוצאה מכך חוויית המשתמש והתמיכה תהיה חזויות. גרסת ה-Nest Labs של GNU Autotools מומלצת לשימוש עם OpenWeave.

כדי ליצור כלים אוטומטיים של Nest Labs GNU:

git clone https://github.com/openweave/openweave-core.git
cd openweave-core
make -C third_party/nlbuild-autotools/repo/ tools

שמח

כדי להפעיל את הסקריפטים לבדיקה שנכללים ב-OpenWeave, או כדי להשתמש ב-Weave בטופולוגיה מדומה, צריך להתקין את שמחה במחשב Linux. למידע נוסף, ניתן לעיין בהגדרה מהנה.

אפליקציה עצמאית

שימוש באפליקציית ברירת המחדל OpenWeave עצמאית למארח של פיתוח מחשב או מארח.

  1. שכפול המאגר של OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. בניית האפליקציה OpenWeave עצמאית:
    cd openweave-core
    make -f Makefile-Standalone

יש להשתמש בסימון help עם Makefile-Standalone כדי ללמוד אילו מתגי build זמינים להתאמה אישית של גרסת ה-build.

make -f Makefile-Standalone help

לדוגמה, כדי להפעיל את הקוד של ניפוי באגים ביומן ואת הרישום ביומן:

make -f Makefile-Standalone DEBUG=1

קישור פרויקטים

  1. שכפול המאגר של OpenWeave:
    git clone https://github.com/openweave/openweave-core.git
  2. הגדרת סביבת build ל-GNU Autotools:
    cd openweave-core
    ./bootstrap
    ./configure
  3. בנייה של OpenWeave:
    make all
  4. יוצרים פלט של המיקום במיקום נפרד לצורך קישור של פרויקט:
    mkdir <openweave-output>
    make DESTDIR=<openweave-output> install

אחרי ה-Staging, יש להשתמש בספריות שמתחת ל-<openweave-output> כדי לקשר פרויקטים:

  • /usr/local/include — כותרות ציבוריות
  • /usr/local/lib — ספריות

Android ו-iOS

כדי ליצור ספריות לקישור פרויקטים ל-Android ול-iOS, יש להשתמש בMakefiles ספציפי לפלטפורמה:

make -f Makefile-Android
make -f Makefile-iOS

יש להשתמש בסימון help עם Makefile-<platform> כדי ללמוד אילו מתגי build זמינים להתאמה אישית של ה-build. למשל:

make -f Makefile-Android help
make -f Makefile-iOS help

הגדרה

לפני שמגדירים את OpenWeave עם סקריפטים וכותרות שונים, אפשר להשתמש בכלים האוטומטיים כדי לפתוח מחדש את קובצי ה-build הרלוונטיים:

./bootstrap

יש לבצע את השלב הזה פעם אחת, אחרי תשלום בקופה ואז אחר כל שינוי ב-configure.ac או ב-Makefile.am. אין צורך לחזור עליה רק כשמשנים את ההגדרות או את היעדים של ה-build.

סקריפטים

אפשר להשתמש בסימון --help עם סקריפט התצורה הכלול בו כדי לקבל מידע נוסף על אפשרויות שניתן להגדיר.

./configure --help

לדוגמה, כדי להגדיר את OpenWeave ללא תמיכה ב-BlueZ:

./configure --without-bluez

כותרות

ב-Makefiles הכלולים נעשה שימוש בשני קובצי כותרות המגדירים קבועים בזמן ההידור:

ייתכן שיוצגו גם כותרות הגדרה ספציפיות לפרויקט. מציבים את הקבצים האלה בספריית הפרויקט שלכם – אין להציב אותם במאגר OpenWeave. יש להשתמש באפשרות התצורה המתאימה כדי לציין כל מיקום של קובץ במהלך ההגדרה:

קובץ כותרת אפשרות הגדרה
InetProjectConfig.h --with-weave-inet-project-includes=<directory>
WeaveProjectConfig.h --with-weave-project-includes=<directory>

לדוגמה, כדי להגדיר את OpenWeave לשימוש בקובץ ספציפי לפרויקט WeaveProjectConfig.h שנמצא בקובץ ~/my-project/headers:

./configure --with-weave-project-includes=~/my-project/headers