Meson הוא כלי תוכנה לאוטומציה של בניית תוכנה. זה חינמי וקוד פתוח שנכתב בפייתון.
השקת הגרסה החדשה של מערכת הבנייה Meson 1.0.0 הוכרזה בפרסום , הכולל תכונות חדשות, כמו גם יציבות להרכבת פרויקטים ב-Rust, בין היתר.
למי שאינו מכיר את Meson, ראוי לציין שמערכת בנייה זו משמשת לקמפל פרויקטים ידועים כגון X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ו-GTK.
מטרת הפיתוח המרכזית של Meson היא לספק תהליך קומפילציה מהיר בשילוב עם נוחות וקלות שימוש. במקום לעשות זאת, ה-build משתמש ב-Ninja Toolkit כברירת מחדל, אך ניתן להשתמש גם ב-backends אחרים כמו xcode ו- VisualStudio.
למערכת יש מנהל תלויות חוצה פלטפורמות מובנה המאפשר לך להשתמש ב-Meson כדי ליצור חבילות להפצות. כללי הקומפילציה כתובים בשפה פשוטה וספציפית לתחום, מה שהופך אותם לקריאה ומובנים בקלות עבור המשתמש (בהתאם לחזון המחברים, על המפתחים להקדיש זמן מינימלי לכתיבת כללים).
נתמכת קומפילציה צולבת , כמו גם קומפילציה ב-Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ו-Windows באמצעות GCC, Clang, Visual Studio ומהדרים אחרים.
ניתן לבנות פרויקטים במספר שפות תכנות , כולל C, C++, Fortran, Java ו-Rust. נתמך מצב קומפילציה מצטבר, שבו נבנים מחדש רק הרכיבים הקשורים ישירות לשינויים שבוצעו מאז הקומפילציה האחרונה.
ניתן להשתמש ב-Meson ליצירת רכיבי בנייה שניתנים לחזרה, כאשר הפעלת ה-build בסביבות שונות מביאה לקובצי הפעלה זהים לחלוטין.
החידושים העיקריים של Meson 1.0
במהדורה החדשה הזו של Meson 1.0 מודגש כי המודול לבניית פרויקטים בשפת Rust הוכרז יציב. מודול זה משמש בפרויקט Mesa לבניית רכיבים שנכתבו ב- Rust.
נתמכת על ידי רוב פונקציות בדיקת המהדר, אפשרות הקידומת מיישמת את היכולת לטפל במערכים שאינם מחרוזות.
שינוי נוסף שבולט בגרסה זו הוא הכנסת אופרטורים חדשים "in" ו-"not in" לקביעת הופעת תת-מחרוזת במחרוזת, בדומה לבדיקה שהייתה זמינה בעבר להופעת אלמנט במערך או במילון.
בנוסף, אנו יכולים גם לגלות שהאפשרות " warning-level=everything" נוספה כדי להפעיל את הפלט של כל אזהרות המהדר הזמינות (ב-clang וב-MSVC הוא משתמש ב- -Weverything ו- /Wall, וב-GCC כלולות אזהרות נפרדות, התואמות בערך למצב -Weverything של clang).
כמו כן, ראוי לציין כי נוסף ארגומנט חדש, "--workdir", כדי לאפשר לך לעקוף את ספריית העבודה . לדוגמה, להשתמש בספרייה הנוכחית במקום בספריית העבודה.
שיטת rust.bindgen מיישמת את היכולת לעבד את הארגומנט "תלות" כדי להעביר נתיבים לתלות שיעובדו על ידי המהדר והפונקציה java.generate_native_headers הוצאה משימוש ושם שונה ל-java.native_headers כדי להתאים לסגנון שמות הפונקציות הכלליות של Meson.
יתר על כן, צוין גם שכאשר מבצעים קומפילציה צולבת, סביבת המפתחים מגדירה כעת את כל משתני הסביבה עבור המכונה המארחת. כעת היא מגדירה גם את QEMU_LD_PREFIX ואת הערך sys_root של קובץ ה-cross-file אם המאפיין מוגדר. משמעות הדבר היא שקבצי הרצה שעברו קומפילציה צולבת יכולים לעתים קרובות לפעול באופן שקוף על מכונת הקומפילציה, לדוגמה, בעת קומפילציה צולבת עבור aarch64 Linux מ-x86_64 Linux.
לבסוף, אם אתם מעוניינים ללמוד עוד, תוכלו למצוא פרטים נוספים בקישור הבא.
כיצד להתקין Meson על לינוקס?
למי שמעוניין להיות מסוגל להתקין מערכת בנייה זו על המערכת שלהם, הם יכולים לעשות זאת על ידי ביצוע ההוראות שאנו חולקים למטה.
הם צריכים לדעת שמסון זמין ב-PyPi, כך שניתן להתקין אותו עם הפקודה:
pip3 install meson
כהערה, כדאי לדעת שהפקודה המדויקת להקליד להתקנת pip יכולה להשתנות בין המערכות, לכן מומלץ להשתמש בגירסת Python 3 של pip.