การเปิดตัวระบบบิลด์ CMake 3.18

แนะนำ การเปิดตัวตัวสร้างสคริปต์ open build ข้ามแพลตฟอร์ม ซีเมค 3.18ซึ่งทำหน้าที่เป็นทางเลือกแทน Autotools และใช้ในโครงการต่างๆ เช่น KDE, LLVM/Clang, MySQL, MariaDB, ReactOS และ Blender รหัส CMake เขียนด้วยภาษา C++ และเผยแพร่ภายใต้ลิขสิทธิ์ BSD

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

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