CMake มีความโดดเด่นในด้านการให้บริการภาษาสคริปต์อย่างง่าย วิธีการขยายฟังก์ชันการทำงานผ่านโมดูล จำนวนการพึ่งพาขั้นต่ำ (ไม่มีการผูกกับ M4, Perl หรือ Python) การสนับสนุนแคช การมีอยู่ของเครื่องมือสำหรับการคอมไพล์ข้าม การสนับสนุนสำหรับการสร้างบิลด์ ไฟล์สำหรับระบบบิลด์และคอมไพเลอร์ที่หลากหลาย, ยูทิลิตี้การแสดงตน ctest และ cpack สำหรับการกำหนดสคริปต์ทดสอบและแพ็คเกจการสร้าง, ยูทิลิตี้ cmake-gui สำหรับการตั้งค่าพารามิเตอร์บิลด์แบบโต้ตอบ
หลัก
- ภาษา CUDA สามารถสร้างได้โดยใช้ Clang บนแพลตฟอร์มอื่นที่ไม่ใช่ Windows ยังไม่รองรับการคอมไพล์แยก CUDA บนแพลตฟอร์มใดๆ
- เพิ่มการรองรับสคริปต์ CMake โปรไฟล์โดยใช้ตัวเลือก "--profileing-output" และ "--profileing-format"
- คำสั่ง add_library() และ add_executable() รองรับการสร้างเป้าหมายนามแฝงที่อ้างถึงเป้าหมายที่นำเข้าที่ไม่ใช่ระดับโลก
- เพิ่มคำสั่ง cmake_language() สำหรับการดำเนินการเมตากับคำสั่งสคริปต์หรือคำสั่งในตัว
- เพิ่มคำสั่งย่อย file(CONFIGURE) ซึ่งคล้ายกันในการทำงานกับ configuration_file() แต่ส่งเนื้อหาเป็นสตริงแทนที่จะเป็นการอ้างอิงไฟล์
- เพิ่มตัวเลือกที่จำเป็นให้กับคำสั่ง find_program(), find_library(), find_path() และ find_file() เพื่อหยุดการประมวลผลโดยมีข้อผิดพลาดหากไม่พบสิ่งใดเลย
- เพิ่มตัวแปร "CMAKE_CUDA_ARCHITECTURES" เพื่อระบุสถาปัตยกรรม CUDA (ตั้งค่าโดยอัตโนมัติหากตัวแปร "CMAKE_CUDA_COMPILER_ID" ถูกตั้งค่าเป็น "NVIDIA")
- เพิ่มคุณสมบัติ “UNITY_BUILD_MODE” สำหรับการเลือกอัลกอริธึมการจัดกลุ่มสำหรับไฟล์ต้นฉบับที่รวมไว้ (BATCH, GROUP) ในเครื่องกำเนิดไฟฟ้า
- เพิ่มโมดูล CheckLinkerFlag เพื่อตรวจสอบความถูกต้องของแฟล็กลิงก์
- เพิ่มนิพจน์ตัวสร้าง $ , $ , $ และ $ .
- มีการเพิ่มตัวแปร CTEST_RESOURCE_SPEC_FILE ให้กับยูทิลิตี ctest เพื่อระบุไฟล์ข้อกำหนดทรัพยากร
ที่มา: opennet.ru