บางวันที่ผ่านมา เปิดตัวตัวสร้างสคริปต์โอเพ่นซอร์สข้ามแพลตฟอร์ม CMake 3.15 ซึ่งทำหน้าที่เป็นทางเลือกแทน Autotools และใช้ในโครงการเช่น KDE, LLVM / Clang, MySQL, MariaDB, ReactOS และ Blender
CMake คือการสร้างโค้ดหลายแพลตฟอร์มหรือเครื่องมืออัตโนมัติ ชื่อนี้เป็นคำย่อของ "cross platform make" (สร้างข้ามแพลตฟอร์มนอกเหนือจากการใช้ "make" ในชื่อ, CMake เป็นชุดแยกต่างหากและระดับที่สูงกว่าระบบการผลิตทั่วไป ของ Unix คล้ายกับเครื่องมืออัตโนมัติ
เกี่ยวกับ CMake
ซีเมค มีความโดดเด่นในการให้ภาษาสคริปต์ที่เรียบง่าย เครื่องมือในการขยายฟังก์ชันการทำงานข้ามโมดูลจำนวนการอ้างอิงน้อยที่สุด (ไม่มีการผูกกับ M4, Perl หรือ Python) การสนับสนุนการแคชความพร้อมใช้งานของเครื่องมือสำหรับการคอมไพล์ข้ามการสนับสนุนการสร้างไฟล์แอสเซมบลีสำหรับระบบคอมไพเลอร์และคอมไพเลอร์ที่หลากหลาย
ยูทิลิตี้ ctest และ cpack สำหรับกำหนดสถานการณ์การทดสอบและการสร้างแพ็คเกจด้วยยูทิลิตี้ cmake-gui สำหรับการกำหนดค่าพารามิเตอร์การสร้างแบบโต้ตอบ
CMake ใช้เพื่อควบคุมกระบวนการคอมไพล์ของซอฟต์แวร์โดยใช้ไฟล์กำหนดค่าที่เรียบง่ายและเป็นอิสระ ของแพลตฟอร์ม Cmake สร้าง makefiles ดั้งเดิมและพื้นที่ทำงานที่สามารถใช้ในสภาพแวดล้อมการพัฒนาที่ต้องการ
เปรียบได้กับระบบบิลด์ Unix GNU ที่กระบวนการถูกควบคุมโดยไฟล์คอนฟิกูเรชันในกรณีของ CMake เรียกว่า CMakeLists.txt
ซึ่งแตกต่างจากระบบสร้าง GNU ซึ่ง ถูก จำกัด ไว้ที่แพลตฟอร์ม Unix, CMake รองรับการสร้างไฟล์สำหรับระบบปฏิบัติการต่างๆซึ่งอำนวยความสะดวกในการบำรุงรักษาและไม่จำเป็นต้องมีไฟล์หลายชุดสำหรับแต่ละแพลตฟอร์ม
กระบวนการสร้างถูกควบคุมโดยการสร้างไฟล์ CMakeLists.txt อย่างน้อยหนึ่งไฟล์ในแต่ละไดเร็กทอรี (รวมถึงไดเร็กทอรีย่อย)
รหัส CMake เขียนด้วย C ++ และเผยแพร่ภายใต้ใบอนุญาต BSD
CMake 3.15 คุณสมบัติใหม่หลัก
รุ่นใหม่นี้ เน้นด้วยการมาถึงของการสนับสนุนตัวสร้างเริ่มต้นสำหรับภาษา Swift ที่พัฒนาโดย Apple ได้ถูกเพิ่มเข้าไปในตัวสร้างสคริปต์ประกอบ Ninja Toolkit
นอกเหนือจากนี้ นอกจากนี้ยังรองรับตัวเลือกคอมไพเลอร์ Clang สำหรับ Windows ที่สร้างด้วย ABI MSVC แต่ใช้ตัวเลือกบรรทัดคำสั่งสไตล์ GNU
นักพัฒนาเน้นย้ำว่าตัวแปร CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
ถูกเพิ่มเพื่อเลือกไลบรารีรันไทม์ที่คอมไพเลอร์ใช้ ABI MSVC
(MS Visual Studio)
สำหรับคอมไพเลอร์เช่น MSVC
ใน CMAKE__FLAGS
ตามค่าเริ่มต้นรายการของแฟล็กควบคุมคำเตือนเช่น "/ W3" จะหยุดทำงาน
จากการปรับปรุงอื่น ๆ ที่เน้นในการประกาศการเปิดตัวเวอร์ชันใหม่นี้เราพบสิ่งต่อไปนี้:
- เพิ่มนิพจน์การสร้าง '
COMPILE_LANG_AND_ID
: »เพื่อกำหนดอ็อพชันคอมไพเลอร์สำหรับไฟล์เป้าหมายที่ใช้ตัวแปรCMAKE__COMPILER_ID
yLANGUAGE
สำหรับไฟล์รหัสแต่ละไฟล์ - นิพจน์เครื่องกำเนิดไฟฟ้า
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
เพิ่มการสนับสนุนสำหรับการจับคู่ค่ากับรายการรายการที่คั่นด้วยจุลภาค - เพิ่มตัวแปรแล้ว
CMAKE_FIND_PACKAGE_PREFER_CONFIG
ซึ่งการเรียก find_package () จะค้นหาไฟล์คอนฟิกูเรชันแพ็กเกจก่อนแม้ว่าโมดูลการค้นหาจะพร้อมใช้งานก็ตาม - สำหรับไลบรารีอินเทอร์เฟซได้เพิ่มการสนับสนุนสำหรับคุณสมบัติการตั้งค่า
PUBLIC_HEADER y PRIVATE_HEADER
ซึ่งส่วนหัวสามารถกำหนดค่าได้โดยคำสั่ง install (TARGETS) ผ่านอาร์กิวเมนต์PUBLIC_HEADER
yPRIVATE_HEADER
- เพิ่มตัวแปรแล้ว
CMAKE_VS_JUST_MY_CODE_DEBUGGING
และคุณสมบัติปลายทางVS_JUST_MY_CODE_DEBUGGING
เพื่อเปิดใช้งานโหมด "Just My Code" ใน Visual Studio debugger เมื่อคอมไพล์โดยใช้ MSVC cl 19.05 และเวอร์ชันที่ใหม่กว่า - โมดูล FindBoost ได้รับการปรับปรุงใหม่ซึ่งขณะนี้ได้รับการทำงานอย่างเต็มที่มากขึ้นในโหมดการกำหนดค่าและโมดูลโดยมีโมดูลการค้นหาอื่น ๆ
- เพิ่มการรองรับประเภท NOTICE, VERBOSE, DEBUG และ TRACE ในคำสั่ง message ()
- ขณะนี้คำสั่ง "export (PACKAGE)" จะไม่ดำเนินการใด ๆ จนกว่าจะเปิดใช้งานอย่างชัดเจนผ่านทางตัวแปร
CMAKE_EXPORT_PACKAGE_REGISTRY
.
หากคุณต้องการทราบข้อมูลเพิ่มเติมสามารถปรึกษาได้ ลิงค์ต่อไปนี้