Difference between revisions of "He/כלי בניה"

From GnuCash
Jump to: navigation, search
(Autotools (הוצא משימוש): fix RTL)
m (Ninja: format)
 
(20 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
{| class="wikitable" style="margin: auto;"
 
{| class="wikitable" style="margin: auto;"
 
! scope="row"|שפות
 
! scope="row"|שפות
| [[Building|אנגלית]]
+
| [[Build Tools|אנגלית]]
| [[de/GnuCash|גרמנית]]
+
| [[{{PAGENAME}}|עִברִית]]
| [[es/GnuCash|ספרדית]]
 
| [[He/גנוקאש|עִברִית]]
 
| [[pt/GnuCash|פורטוגזית]]
 
| [[fr/GnuCash|צרפתית]]
 
 
|}
 
|}
 
== כללי ==
 
== כללי ==
פרויקט גנוקאש משתמש במגוון כלים לבניית התכנית, המסמכים והחבילות יעודיות למערכת ההפעלה.
+
במסגרת מיזם גנוקאש, אנו משתמשים במגוון כלי־בניה שמהדרים את: התכנית, המסמכים וחבילות יעודיות למערכות ההפעלה הנתמכות.
  
 
== כלים בסיסיים ==
 
== כלים בסיסיים ==
כלים אלו שולטים בתהליך הבנייה ב''רמה נמוכה''.
+
להלן מספר כלי־בניה  ששולטים בתהליך הבנייה ב''רמה נמוכה''.
  
 
=== Make ===
 
=== Make ===
 
[https://he.wikipedia.org/wiki/Make Make] הוא ''כלי בניה אוטומי'' הבונה יעדים ממקור על ידי פירוש קבצי תסריט (סקריפטים) הנקראים ''Makefiles'' המורים לכלי הבניה כיצד להפוך את קובץ או קובצי המקור לקובץ או קובצי היעד. קובצי Makefiles הם קובצי מלל רגילים. Make מטפל היטב בשתי בעיות הקשורות בבנית תוכנה בסביבה מרובת קבצים: א. טיפול בתליויות בין קבצים וספריות, ב. טיפול בשינויים במקצת מהספריות מבלי לבצע בניה מחדש.  
 
[https://he.wikipedia.org/wiki/Make Make] הוא ''כלי בניה אוטומי'' הבונה יעדים ממקור על ידי פירוש קבצי תסריט (סקריפטים) הנקראים ''Makefiles'' המורים לכלי הבניה כיצד להפוך את קובץ או קובצי המקור לקובץ או קובצי היעד. קובצי Makefiles הם קובצי מלל רגילים. Make מטפל היטב בשתי בעיות הקשורות בבנית תוכנה בסביבה מרובת קבצים: א. טיפול בתליויות בין קבצים וספריות, ב. טיפול בשינויים במקצת מהספריות מבלי לבצע בניה מחדש.  
"סביבות פיתוח משולבות" או "IDEs" רבות משתמשות ב- <code>make</code>  (או בן דודו  <code>nmake</code> של מיקרוסופט) לביצוע הבנייה. את קובצי Makefiles ניתן לכתוב באופן ידני (כמו במקרה של '''gnucash-htdocs.git''') או ליצור אותם באמצעות [[#Autotools|Autotools]] או [[#CMake|CMake]]. ניתן להפעיל את Make באופן רקורסיבי לבניית תוכניות מורכבות ולהשתמש בחותמות זמן של קבצים כדי להדר מחדש רק קבצים וספריות שבהם התלויות השתנו.  קובצי Makefiles מציינים בדרך כלל  מספר יעדי בניה, אותן ניתן לספק כמשתנים בזמן הקריאה ל- make, כדי לבצע פעולות מסוימות ולייצר פלטים מסויימים.
+
"סביבות פיתוח משולבות" או "IDEs"־רבות משתמשות ב <code>make</code>  (או בן דודו  <code>nmake</code> של מיקרוסופט) לביצוע הבנייה. את קובצי Makefiles ניתן לכתוב באופן ידני (כמו במקרה של '''gnucash-htdocs.git''') או ליצור אותם באמצעות [[#Autotools|Autotools]] או [[#CMake|CMake]]. ניתן להפעיל את Make באופן רקורסיבי לבניית תוכניות מורכבות ולהשתמש בחותמות זמן של קבצים כדי להדר מחדש רק קבצים וספריות שבהם התלויות השתנו.  קובצי Makefiles מציינים בדרך כלל  מספר יעדי בניה, אותן ניתן לספק כמשתנים בזמן הקריאה ל־make, כדי לבצע פעולות מסוימות ולייצר פלטים מסויימים.
  
 
=== Ninja ===
 
=== Ninja ===
[https://en.wikipedia.org/wiki/Ninja_(build_system) Ninja] היא מערכת בנייה קלת משקל ששמה דגש על מהירות ביצועים. היא תוכננה כך שקבצי הקלט שלה נוצרים על ידי מערכת בנייה ברמה גבוהה יותר, והיא נועדה להריץ את תהליך הבנייה במהירות הגבוהה האפשרית.
+
[https://en.wikipedia.org/wiki/Ninja_(build_system) Ninja] היא מערכת בנייה קלת משקל ששמה דגש על מהירות ביצועים. היא תוכננה כך שקבצי הקלט שלה נוצרים על ידי מערכת בנייה מרמה גבוהה יותר. היא נועדה להריץ את תהליך הבנייה במהירות הגבוהה האפשרית.
;הערה: פקודות השורה משתנות מ- <code>make [target]</code> ל- <code>ninja [target]</code>.
+
;:הערות
;הערה: כמה מהפצות לינוקס שינו את שם הפקודה ל- <code>ninja-build</code> על מנת להבדיל בינה לבין תכנה אחרת בשם <code>ninja</code>.
+
#פקודות השורה משתנות מ־<code>make [target]</code> ל־<code>ninja [target]</code>.
בקישור הבא ניתן למצוא השוואה של CMake ו- make, [https://ninja-build.org/manual.html#_comparison_to_make להשווה בין הכלים]
+
# במספר הפצות לינוקס שם הפקודה שונה ל־<code>ninja-build</code> על מנת להבדיל בינה לבין תכנה אחרת בשם <code>ninja</code>.
 +
בקישור הבא ניתן למצוא השוואה של CMakeו־ make, [https://ninja-build.org/manual.html#_comparison_to_make להשווה בין הכלים]
  
[[#CMake|CMake]] משמש בשכיחות גבוהה לתיצור קובצי הבניה של <code>ninja</code>: כדי לעשות זאת, יש להעביר את פָּרָמֶטֶר <code>-G Ninja</code> כמשתנה של <code>cmake</code>.
+
[[#CMake|CMake]] משמש בשכיחות גבוהה לתיצור קובצי הבניה של <code>ninja</code>:כדי לעשות זאת, יש להעביר צרף־שפה (פָּרָמֶטֶר<code dir="ltr">-G Ninja</code> כמשתנה של <code>cmake</code>.
  
 
== שרשראות כלים ==
 
== שרשראות כלים ==
בנוסף, גנוקאש עושה שימוש ב''שרשראות כלים'' שונות כדי לשלוט בכלים הבסיסיים שהוזכרו לעיל. התוכנית משתמשת ב- '''CMake''' כבסיס לשרשרת הכלים שלה, בעוד ש'''תיעוד המשתמש''' נעזר ב-'''Autotools''' כבסיס לשרשרת הכלים. '''אתר גנוקאש''' לעומת זאת, נבנה ישירות באמצעות [[#Make|Make]]. [[שימוש_ב_API| תיעוד ה- API]] נוצר מקוד המקור באמצעות [[#Make|Make]] או [[#Ninja|Ninja]], תלוי באופן התצור של מערכת בניית קוד המקור.
+
בנוסף, גנוקאש עושה שימוש ב''שרשראות כלים'' שונות כדי לשלוט בכלים הבסיסיים שהוזכרו לעיל. התכנית משתמשת ב־'''CMake''' כבסיס לשרשרת הכלים שלה, בעוד ש'''תיעוד המשתמש''' נעזר ב־''Autotools''' כבסיס לשרשרת הכלים. '''אתר גנוקאש''' לעומת זאת, נבנה ישירות באמצעות [[#Make|Make]]. [[He/שימוש_ב_API| תיעוד ה־API]] נוצר מקוד המקור באמצעות [[#Make|Make]] או [[#Ninja|Ninja]], תלוי באופן שמערכת בניית קוד המקור תוצרה.
  
 
=== CMake ===
 
=== CMake ===
על מנת להגדיר או לתצר את '''תוכנית''' מערכת הבניה, נשתמש ב- [https://en.wikipedia.org/wiki/CMake CMake]. אמור לשמש גם עבור '''Gnucash-docs'''.
+
על מנת להגדיר או לתצר את '''תוכנית''' מערכת הבניה, נשתמש ב־[https://en.wikipedia.org/wiki/CMake CMake]. אמור לשמש גם עבור '''Gnucash-docs'''.
  
זוהו יישום תכנה חוצת-מסדות, חופשיהלשימוש ובקוד פתוח, לניהול תהליך בניית התוכנה בשיטה שאינה תלויה במהדר. הוא תומך במבנה ספריות היררכי וביישומים התלויים במספר ספריות. הוא משמש בשילוב עם סביבות בנייה מקומיות כמו, Xcode של אפל, make ו- Visual Studio של מיקרוסופט . יש לו תלויות מזעריות, ודורש רק מהדר ++C במערכת הבנייה העצמית שלו. נכון לעכשיו, CMake משמש בעיקר לתצורת מערכת הבנייה על ידי יצירת קבצי הקלט לתוכניות הבנייה '''make''' או '''ninja''' שמהדרות ומקשרות את התכנית אל הספריות שלה. כלי עזר אלה שולטים גם בהתקנת התכנית ובספריות.
+
זוהו יישום תכנה חוצת־מסדות, חופשיהלשימוש ובקוד פתוח, לניהול תהליך בניית התוכנה בשיטה שאינה תלויה במהדר. הוא תומך במבנה ספריות היררכי וביישומים התלויים במספר ספריות. הוא משמש בשילוב עם סביבות בנייה מקומיות כמו, Xcode של אפל, make ו־Visual Studio של מיקרוסופט . יש לו תלויות מזעריות, ודורש רק מהדר <span dir="ltr">C++</span> במערכת הבנייה העצמית שלו. נכון לעכשיו, CMake משמש בעיקר לתצורת מערכת הבנייה על ידי יצירת קבצי הקלט לתוכניות הבנייה '''make''' או '''ninja''' שמהדרות ומקשרות את התכנית אל הספריות שלה. כלי עזר אלה שולטים גם בהתקנת התכנית ובספריות.
ראו גם [[CMake#GnuCash Configuration Variables]].
+
ראו גם [[CMake#GnuCash Configuration Variables|GnuCash Configuration Variables]].
  
=== Autotools (הוצא משימוש) ===
+
=== Autotools ===
 +
('''כלי הוצא משימוש במיזם גנוקאש''')
 +
בעבר הסתמכנו על [https://en.wikipedia.org/wiki/GNU_Build_System GNU Build System] כדי לתצר את מערכת הבניה '''Gnucash-docs'''.בשם לעיתים קרובות גם  "autotools".הכוונה היא לזנוח כלי זה לחלוטין בגרסת 4.9xx!
  
בעבר הסתמכנו על [https://en.wikipedia.org/wiki/GNU_Build_System GNU Build System] כדי לתצר את מערכת הבניה '''Gnucash-docs'''. לעיתים קרובות מכונה גם "autotools". התוכנית היא לזנוח כלי זה באופן סופי בגרסת  4.9xx!
+
זוהי מערכת מורכבת, בעלת יכולת תצורה ובניית מגוון רחב של מיזמים, על מגוון רחב של מסדות. העמוד באתר [https://autotools.io/index.html The Autotools Mythbuster] מספק הדרכה ומקור מצוין לאלו שמעוניינים ללמוד על יצירה ובנייה של מיזמים באמצעות כלי זה.
 
 
זוהי מערכת מורכבת, בעלת היכולת להגדרת תצורה ובנייה של מגוון רחב של פרויקטים על מגוון רחב של מסדות. העמוד באתר [https://autotools.io/index.html The Autotools Mythbuster] מספק הדרכה והתייחסות מצוינת לאלו שמעוניינים ללמוד על יצירה ובנייה של פרויקטים באמצעות כלי זה.
 
  
 
לאלו שמעוניינים פשוט לבנות את התיעוד מקוד המקור, שלושת הפקודות הבאות יספיקו:
 
לאלו שמעוניינים פשוט לבנות את התיעוד מקוד המקור, שלושת הפקודות הבאות יספיקו:
Line 53: Line 50:
 
cd .build
 
cd .build
 
</Syntaxhighlight>
 
</Syntaxhighlight>
#;הערה: הפקודות <tt>configure</tt> ו- <tt>make</tt> מורצות מ- {BUILDDIR}$ בעוד שהמקור נערך בספרית האב {SOURCEDIR}$.
+
:;הערות
#<code>configure</code>: תסריט מסוף זה, המחולל על ידי <code>autogen.sh</code> כפי שתואר לעיל, בודק שהמערכת והמשתנים שלה מכסים את דרישות קובצי הביניים <code>Makefile.in</code> ב- <code>Makefile</code> כך שפקודת <code>make</code> תשתמש בהם בפועל כדי לחולול את קבצי התיעוד של המוצר. ניתן לצפות ברשימת הפרמטרים ומשתני הסביבה שכל תכנית <code>configure</code> "מבינה" באמצעות הפקודה <code>configure --help</code>.
+
#הפקודות <tt>configure</tt> ו־<tt>make</tt> מורצות מ־{BUILDDIR}$ בעוד שהמקור נערך בספרית האב {SOURCEDIR}$.
#<code>make</code>: באמצעות <code>Makefile</code> כתבנית, <code>make</code> מריץ את התכניות והתסריטים השונים הדרושים לביצוע הבנייה. המשתנים שלו הם היעדים אותם יש לבנות; יישנם שני יעדים מסויימים, <code>make check</code> מריץ סדרת בדיקות להבטחת בניית הפרויקט כראוי ו- <code>make install</code> שמעביר את תוצרי הבנייה למיקומים מהם ניתן להשתמש בהמשך בתכנית שנבנתה.
+
#<code>configure</code>: תסריט מסוף זה, המחולל על ידי <code>autogen.sh</code> כפי שתואר לעיל, בודק שהמערכת והמשתנים שלה מכסים את דרישות קובצי הביניים <code>Makefile.in</code> ב־<code>Makefile</code> כך שפקודת <code>make</code> תשתמש בהם בפועל כדי לחולול את קבצי התיעוד של המוצר. ניתן לצפות ברשימת הפרמטרים ומשתני הסביבה שכל תכנית <code>configure</code> "מבינה" באמצעות הפקודה <code dir="ltr">configure --help</code>.
 +
#<code>make</code>: באמצעות <code>Makefile</code> כתבנית, <code>make</code> מריץ את התכניות והתסריטים השונים הדרושים לביצוע הבנייה. המשתנים שלו הם היעדים אותם יש לבנות; יישנם שני יעדים מסויימים, <code>make check</code> מריץ סדרת בדיקות להבטחת בניית המיזם כראוי ו־ <code>make install</code> שמעביר את תוצרי הבנייה למיקומים מהם ניתן להשתמש בהמשך בתכנית שנבנתה.
  
 
'''חזרה לעמוד:
 
'''חזרה לעמוד:

Latest revision as of 09:08, 11 December 2021

שפות אנגלית עִברִית

כללי

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

כלים בסיסיים

להלן מספר כלי־בניה ששולטים בתהליך הבנייה ברמה נמוכה.

Make

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

Ninja

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

הערות
  1. פקודות השורה משתנות מ־make [target] ל־ninja [target].
  2. במספר הפצות לינוקס שם הפקודה שונה ל־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 שמעביר את תוצרי הבנייה למיקומים מהם ניתן להשתמש בהמשך בתכנית שנבנתה.

חזרה לעמוד:

בניית גנוקאש