ระบบบิลด์ Meson 0.58 เปิดตัวแล้ว ซึ่งใช้ในการสร้างโปรเจ็กต์ต่างๆ เช่น X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME และ GTK รหัสของ Meson เขียนด้วยภาษา Python และได้รับอนุญาตภายใต้ลิขสิทธิ์ Apache 2.0
เป้าหมายหลักของการพัฒนา Meson คือเพื่อให้กระบวนการประกอบมีความเร็วสูงรวมกับความสะดวกสบายและใช้งานง่าย แทนที่จะใช้ยูทิลิตี้ make ชุดเครื่องมือ Ninja จะถูกใช้เป็นค่าเริ่มต้นเมื่อสร้าง แต่สามารถใช้แบ็กเอนด์อื่นๆ เช่น xcode และ VisualStudio ได้เช่นกัน ระบบมีตัวจัดการการพึ่งพาหลายแพลตฟอร์มในตัวที่ช่วยให้คุณใช้ Meson เพื่อสร้างแพ็คเกจสำหรับการแจกจ่าย กฎการประกอบจะถูกระบุในภาษาเฉพาะโดเมนที่เรียบง่าย ผู้ใช้สามารถอ่านและเข้าใจได้สูง (ตามที่ผู้เขียนตั้งใจไว้ นักพัฒนาควรใช้เวลาขั้นต่ำในการเขียนกฎ)
รองรับการคอมไพล์ข้ามและสร้างบน Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS และ Windows โดยใช้ GCC, Clang, Visual Studio และคอมไพเลอร์อื่นๆ เป็นไปได้ที่จะสร้างโปรเจ็กต์ในภาษาการเขียนโปรแกรมต่างๆ รวมถึง C, C++, Fortran, Java และ Rust รองรับโหมดการสร้างส่วนเพิ่ม ซึ่งมีเพียงส่วนประกอบที่เกี่ยวข้องโดยตรงกับการเปลี่ยนแปลงที่เกิดขึ้นตั้งแต่การสร้างครั้งล่าสุดเท่านั้นที่ถูกสร้างขึ้นใหม่ Meson สามารถใช้เพื่อสร้างบิลด์ที่ทำซ้ำได้ ซึ่งการรันบิลด์ในสภาพแวดล้อมที่แตกต่างกันส่งผลให้มีการสร้างไฟล์ปฏิบัติการที่เหมือนกันโดยสิ้นเชิง
นวัตกรรมหลักของ Meson 0.58:
- Meson มีการดำเนินการจัดรูปแบบสตริงในตัว แทนที่จะเรียกวิธีการจัดรูปแบบ ตอนนี้คุณสามารถแทนที่ค่าได้โดยตรง เช่น แทนที่จะใช้ “'สตริง @0@ ที่จะจัดรูปแบบ @1@'.format(n, m)” คุณสามารถระบุ “f' ได้ทันที สตริง @n@ ที่จะจัดรูปแบบ @ m@'"
- มีการเพิ่มเมธอด "แทนที่" ให้กับออบเจ็กต์สตริงเพื่อดำเนินการแทนที่สตริงย่อยหนึ่งด้วยสตริงย่อยอื่น ตัวอย่างเช่น "s = s.replace('aaa', 'bbb')"
- เพิ่มฟังก์ชัน "range(start, stop[, step])" เพื่อส่งคืนออบเจ็กต์ที่สามารถใช้ใน foreach loop เช่น "foreach i : range(15)"
- เมธอด meson.add_devenv() ถูกนำมาใช้ ซึ่งช่วยให้คุณสามารถเพิ่มอ็อบเจ็กต์สภาพแวดล้อม () เพื่อตั้งค่าตัวแปรสภาพแวดล้อมเมื่อใช้คำสั่ง "meson devenv" เพื่อตั้งค่าตัวแปรสภาพแวดล้อมด้วยพาธไปยังไดเร็กทอรีปลั๊กอิน
- สำหรับสภาพแวดล้อมการพัฒนา มีการเสนอคำสั่งใหม่: “meson devenv -C builddir [<command>] ซึ่งทำให้สามารถรันคำสั่งในสภาพแวดล้อมที่กำหนดค่าให้เรียกใช้โปรเจ็กต์จากไดเร็กทอรี build (โดยไม่ต้องติดตั้ง)
- ตามค่าเริ่มต้น ตัวเลือก "-pipe" จะหยุดส่งเมื่อรันคอมไพเลอร์ที่รองรับทั้งหมด
- อนุญาตให้เรียก meson.add_dist_script() จากโครงการย่อยได้
- ให้ความสามารถในการเรียกใช้เมธอด append() และ prepend() หลายครั้งบนวัตถุสภาพแวดล้อม () เดียวกัน
- ฟังก์ชัน error() อนุญาตให้มีอาร์กิวเมนต์มากกว่าหนึ่งตัว โดยคั่นด้วยช่องว่าง (คล้ายกับคำเตือน() และข้อความ())
- เพิ่มตัวเลือก "--ข้ามโครงการย่อย" เพื่อเลือกข้ามการติดตั้งโครงการย่อย
แยกกันเราสามารถสังเกตโครงการ Boson ซึ่งมีเป้าหมายเพื่อสร้างการใช้งานภาษาสคริปต์แอสเซมบลี Meson แบบพกพาและเรียบง่ายซึ่งเขียนด้วยภาษา C แทน Python โครงการยังอยู่ในขั้นเริ่มต้นของการพัฒนาและยังไม่พร้อมสำหรับการประกอบโครงการทำงานอย่างเต็มรูปแบบ รหัสนี้ได้รับอนุญาตภายใต้ GPLv3 (Python Meson ดั้งเดิมได้รับอนุญาตภายใต้ลิขสิทธิ์ Apache 2.0)
ที่มา: opennet.ru