การเปิดตัวระบบประกอบ Meson 0.58 โครงการสร้างการนำ Meson ไปใช้ในภาษา C

ระบบบิลด์ 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

เพิ่มความคิดเห็น