Meson เป็นเครื่องมือซอฟต์แวร์ในการสร้างซอฟต์แวร์โดยอัตโนมัติ เป็นโอเพ่นซอร์สฟรีที่เขียนด้วย Python
เมื่อเร็วๆ นี้ได้มีการประกาศเปิดตัวระบบสร้างโปรแกรม Meson เวอร์ชัน 1.4 ใหม่ ซึ่งเวอร์ชันนี้มาพร้อมกับการสนับสนุนที่ดีขึ้นสำหรับฟังก์ชันบางอย่างของโมดูล FS รวมถึงการปรับปรุงความเข้ากันได้ ฟีเจอร์ใหม่ และอื่นๆ อีกมากมาย
สำหรับผู้ที่ไม่คุ้นเคยกับ Meson มันคือระบบสร้างโปรแกรมที่ใช้โดยโปรเจกต์ชื่อดังมากมาย เช่น X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME และ GTKเป้าหมายหลักคือการมอบกระบวนการสร้างโปรแกรมที่รวดเร็วและใช้งานง่าย โดยใช้ชุดเครื่องมือ Ninja เป็นค่าเริ่มต้น แต่ก็สามารถใช้งานร่วมกับแบ็กเอนด์อื่นๆ เช่น Xcode และ Visual Studio ได้เช่นกัน
ระบบนี้มีตัวจัดการการพึ่งพาข้ามแพลตฟอร์มแบบบูรณาการซึ่งช่วยลดความซับซ้อนในการสร้างแพ็กเกจสำหรับการแจกจ่ายซอฟต์แวร์ กฎการคอมไพล์ถูกกำหนดไว้ในภาษาเฉพาะที่อ่านง่าย ซึ่งช่วยลดเวลาที่จำเป็นในการเขียนกฎเหล่านั้นให้น้อยที่สุด
Meson รองรับการสร้างโปรเจ็กต์ในหลายภาษา เช่น C, C++, Fortran, Java และ Rust และเสนอโหมดการสร้างส่วนเพิ่มที่สร้างเฉพาะส่วนประกอบที่ได้รับผลกระทบจากการเปลี่ยนแปลงนับตั้งแต่การสร้างครั้งล่าสุด นอกจากนี้ Meson ยังสามารถสร้างบิลด์ที่ทำซ้ำได้ เพื่อให้มั่นใจว่าการรันบิลด์ในสภาพแวดล้อมที่แตกต่างกันจะสร้างไฟล์ปฏิบัติการที่เหมือนกันทุกประการ
ความแปลกใหม่หลักของ Meson 1.4
Meson เวอร์ชัน 1.4 ใหม่นี้ เน้นการเพิ่มการสนับสนุนสำหรับโมดูล FSซึ่งขณะนี้รองรับออบเจ็กต์เป้าหมายการคอมไพล์ build_tgt และ custom_tgtรวมถึงดัชนีเป้าหมายการคอมไพล์ (custom_idx) ในฟังก์ชัน fs.name, fs.parent, fs.replace_suffix และ fs.stem ด้วย
การเปลี่ยนแปลงที่สำคัญอีกอย่างในเวอร์ชันใหม่นี้คือ Meson สามารถอ่านเวอร์ชันของโปรเจ็กต์จากซับโปรเจ็กต์ที่ใช้ CMake ได้ แล้ว ซึ่งช่วยให้มั่นใจได้ว่าข้อจำกัดของเวอร์ชันได้รับการตรวจสอบอย่างถูกต้องเมื่อเข้าถึงซับโปรเจ็กต์ CMake
นอกจากนี้อาร์กิวเมนต์ `preserve_paths` ได้ถูกเพิ่มเข้าไปในฟังก์ชัน `compile_ui`, `compile_moc` และฟังก์ชันการประมวลผลล่วงหน้าของโมดูล `qt4`, `qt5` และ `qt6`เพื่อเลือกตัวเลือกในการสร้างโครงสร้างไดเร็กทอรีสำหรับไฟล์ที่กำลังเขียน
สิ่งที่ควรทราบก็คือมีการเพิ่มการรองรับ Clang ให้กับ stldebug เมื่อเปิดใช้งาน debugstl เมธอด unset() ถูกนำมาใช้กับออบเจ็กต์ env และเพิ่มเมธอด full_path() ให้กับออบเจ็กต์ File เพื่อรับเส้นทางแบบเต็มไปยังไฟล์
ได้เพิ่มการรองรับเครื่องมือ numpy-config และ pkg-config เป็นการ พึ่งพาแบบกำหนดเองใหม่แล้ว โดยเริ่มใช้งานได้ตั้งแต่ NumPy เวอร์ชัน 2.0.0 การรองรับ numpy-config จะทำงานโดยอัตโนมัติเมื่อติดตั้ง NumPy แล้ว อย่างไรก็ตาม ไฟล์ pkg-config อยู่ในโฟลเดอร์ site packages ของ Python ซึ่งหมายความว่าไม่สามารถใช้งานได้ทันทีหากไม่ได้กำหนดค่า PKG_CONFIG_PATH ก่อน
การเปลี่ยนแปลงที่สำคัญ อื่นๆในเวอร์ชันใหม่นี้ ได้แก่:
- ความสามารถในการควบคุมการตรวจสอบการยืนยัน (GLIBCXX_ASSERTIONS) ใน C ++ stdlib ผ่านการกำหนดค่า ndebug
- เพิ่มอาร์กิวเมนต์คำหลักของserver_pathsunให้กับฟังก์ชันโมดูล qt
- ตอนนี้คุณสามารถระบุเป้าหมายที่ขึ้นอยู่กับการพึ่งพา: สำหรับ compiler.preprocess() ต้องสร้างเป้าหมายเหล่านี้ก่อนที่จะเริ่มการประมวลผลล่วงหน้า
- ขณะนี้ตัวสร้างการเชื่อมโยง Bingen รองรับการวิเคราะห์พฤติกรรมของ Meson เพื่อกำหนดไฟล์ส่วนหัว C++
- เพิ่มความสามารถในการแทนที่การตั้งค่าภาษาสำหรับ Bingen
- ขณะนี้การทดสอบล้มเหลวตามค่าเริ่มต้นหลังจากพบข้อผิดพลาดขณะเรียกใช้สารฆ่าเชื้อ เช่น MemorySanitizer
- เพิ่มการรองรับคอมไพเลอร์ Texas Instruments C/C++ สำหรับตระกูล CPU C6000
สุดท้ายนี้ หากคุณสนใจเรียนรู้เพิ่มเติม สามารถดูรายละเอียดได้ที่ลิงก์ต่อไปนี้
จะติดตั้ง Meson บน Linux ได้อย่างไร?
สำหรับผู้ที่สนใจสามารถติดตั้งระบบบิวด์นี้บนระบบของตน สามารถทำได้โดยทำตามคำแนะนำที่เราแบ่งปันด้านล่างนี้
พวกเขาควรรู้ว่า Meson มีอยู่ใน PyPi ดังนั้นจึงสามารถติดตั้งได้ด้วยคำสั่ง:
pip3 install meson
โปรดทราบว่าคุณควรทราบว่าคำสั่งที่แน่นอนสำหรับพิมพ์เพื่อติดตั้ง pip อาจแตกต่างกันไปในแต่ละระบบ ดังนั้นขอแนะนำให้คุณใช้ pip เวอร์ชัน Python 3