He/כלי בניה

From GnuCash
Revision as of 08:01, 11 December 2021 by Avma (talk | contribs) (CMake: lrt within RTL)
Jump to: navigation, search

שפות אנגלית גרמנית ספרדית עִברִית פורטוגזית צרפתית

כללי

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

כלים בסיסיים

כלים אלו שולטים בתהליך הבנייה ברמה נמוכה.

Make

Make הוא כלי בניה אוטומי הבונה יעדים ממקור על ידי פירוש קבצי תסריט (סקריפטים) הנקראים Makefiles המורים לכלי הבניה כיצד להפוך את קובץ או קובצי המקור לקובץ או קובצי היעד. קובצי Makefiles הם קובצי מלל רגילים. Make מטפל היטב בשתי בעיות הקשורות בבנית תוכנה בסביבה מרובת קבצים: א. טיפול בתליויות בין קבצים וספריות, ב. טיפול בשינויים במקצת מהספריות מבלי לבצע בניה מחדש. "סביבות פיתוח משולבות" או "IDEs"־רבות משתמשות ב make (או בן דודו nmake של מיקרוסופט) לביצוע הבנייה. את קובצי Makefiles ניתן לכתוב באופן ידני (כמו במקרה של gnucash-htdocs.git) או ליצור אותם באמצעות Autotools או CMake. ניתן להפעיל את Make באופן רקורסיבי לבניית תוכניות מורכבות ולהשתמש בחותמות זמן של קבצים כדי להדר מחדש רק קבצים וספריות שבהם התלויות השתנו. קובצי Makefiles מציינים בדרך כלל מספר יעדי בניה, אותן ניתן לספק כמשתנים בזמן הקריאה ל־make, כדי לבצע פעולות מסוימות ולייצר פלטים מסויימים.

Ninja

Ninja היא מערכת בנייה קלת משקל ששמה דגש על מהירות ביצועים. היא תוכננה כך שקבצי הקלט שלה נוצרים על ידי מערכת בנייה ברמה גבוהה יותר, והיא נועדה להריץ את תהליך הבנייה במהירות הגבוהה האפשרית.

הערה
פקודות השורה משתנות מ־ make [target] ל־ ninja [target].
הערה
במספר הפצות לינוקס שם הפקודה שונה ל־ ninja-build על מנת להבדיל בינה לבין תכנה אחרת בשם ninja.

בקישור הבא ניתן למצוא השוואה של CMake ו־ make, להשווה בין הכלים

CMake משמש בשכיחות גבוהה לתיצור קובצי הבניה של ninja: (כדי לעשות זאת, יש להעביר צרף שפה (פָּרָמֶטֶר -G Ninja כמשתנה של cmake.

שרשראות כלים

בנוסף, גנוקאש עושה שימוש בשרשראות כלים שונות כדי לשלוט בכלים הבסיסיים שהוזכרו לעיל. התוכנית משתמשת ב־'CMake כבסיס לשרשרת הכלים שלה, בעוד שתיעוד המשתמש נעזר ב־Autotools כבסיס לשרשרת הכלים. אתר גנוקאש לעומת זאת, נבנה ישירות באמצעות Make. תיעוד ה־API נוצר מקוד המקור באמצעות Make או Ninja, תלוי באופן התצור של מערכת בניית קוד המקור.

CMake

על מנת להגדיר או לתצר את תוכנית מערכת הבניה, נשתמש ב־CMake. אמור לשמש גם עבור Gnucash-docs.

זוהו יישום תכנה חוצת־מסדות, חופשיהלשימוש ובקוד פתוח, לניהול תהליך בניית התוכנה בשיטה שאינה תלויה במהדר. הוא תומך במבנה ספריות היררכי וביישומים התלויים במספר ספריות. הוא משמש בשילוב עם סביבות בנייה מקומיות כמו, Xcode של אפל, make ו־Visual Studio של מיקרוסופט . יש לו תלויות מזעריות, ודורש רק מהדר
C++
במערכת הבנייה העצמית שלו. נכון לעכשיו, CMake משמש בעיקר לתצורת מערכת הבנייה על ידי יצירת קבצי הקלט לתוכניות הבנייה make או ninja שמהדרות ומקשרות את התכנית אל הספריות שלה. כלי עזר אלה שולטים גם בהתקנת התכנית ובספריות.

ראו גם GnuCash Configuration Variables.

Autotools

(כלי הוצא משימוש במיזם גנוקאש) בעבר הסתמכנו על GNU Build System כדי לתצר את מערכת הבניה Gnucash-docs.בשם לעיתים קרובות גם "autotools".הכוונה היא לזנוח כלי זה לחלוטין בגרסת 4.9xx!

זוהי מערכת מורכבת, בעלת יכולת תצורה ובניית מגוון רחב של מיזמים, על מגוון רחב של מסדות. העמוד באתר The Autotools Mythbuster מספק הדרכה ומקור מצוין לאלו שמעוניינים ללמוד על יצירה ובנייה של מיזמים באמצעות כלי זה.

לאלו שמעוניינים פשוט לבנות את התיעוד מקוד המקור, שלושת הפקודות הבאות יספיקו:

  1. autogen.sh: בודק שכל החלקים הנדרשים של מערכת הבנייה מותקנים, ואז בונה את תוכנית configure מהמקור שלו configure.ac ואת Makefiles קובצי הביניים Makefile.in, מהמקור שלהם Makefile.am. לאחר מכן, הרצת autogen.sh לאחר שכפול המאגר gnucash-docs.git, בכל פעם שעורכים קובץ Makefile.am או configure.ac, ובכל פעם שמושכים הידורים עם שינויים לקבצים אלו. מאחר שהרצתו ללא כל צורך אינה מזיקה כלל, אנו ממליצים להריץ אותו לאחר כל פקודת git pull.
  2. (לא נדרש, אך מומלץ)
mkdir .build
cd .build
הערות
  1. הפקודות configure ו־make מורצות מ־{BUILDDIR}$ בעוד שהמקור נערך בספרית האב {SOURCEDIR}$.
  2. configure: תסריט מסוף זה, המחולל על ידי autogen.sh כפי שתואר לעיל, בודק שהמערכת והמשתנים שלה מכסים את דרישות קובצי הביניים Makefile.in ב־Makefile כך שפקודת make תשתמש בהם בפועל כדי לחולול את קבצי התיעוד של המוצר. ניתן לצפות ברשימת הפרמטרים ומשתני הסביבה שכל תכנית configure "מבינה" באמצעות הפקודה configure --help.
  3. make: באמצעות Makefile כתבנית, make מריץ את התכניות והתסריטים השונים הדרושים לביצוע הבנייה. המשתנים שלו הם היעדים אותם יש לבנות; יישנם שני יעדים מסויימים, make check מריץ סדרת בדיקות להבטחת בניית הפרויקט כראוי ו־ make install שמעביר את תוצרי הבנייה למיקומים מהם ניתן להשתמש בהמשך בתכנית שנבנתה.

חזרה לעמוד:

בניית גנוקאש