การอัปเดตตัวสร้างสคริปต์ CMake 3.15 ใหม่ได้รับการเผยแพร่แล้ว

ซม

บางวันที่ผ่านมา เปิดตัวตัวสร้างสคริปต์โอเพ่นซอร์สข้ามแพลตฟอร์ม 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 y LANGUAGE สำหรับไฟล์รหัสแต่ละไฟล์
  • นิพจน์เครื่องกำเนิดไฟฟ้า C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID, Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID y PLATFORM_ID เพิ่มการสนับสนุนสำหรับการจับคู่ค่ากับรายการรายการที่คั่นด้วยจุลภาค
  • เพิ่มตัวแปรแล้ว CMAKE_FIND_PACKAGE_PREFER_CONFIGซึ่งการเรียก find_package () จะค้นหาไฟล์คอนฟิกูเรชันแพ็กเกจก่อนแม้ว่าโมดูลการค้นหาจะพร้อมใช้งานก็ตาม
  • สำหรับไลบรารีอินเทอร์เฟซได้เพิ่มการสนับสนุนสำหรับคุณสมบัติการตั้งค่า PUBLIC_HEADER y PRIVATE_HEADERซึ่งส่วนหัวสามารถกำหนดค่าได้โดยคำสั่ง install (TARGETS) ผ่านอาร์กิวเมนต์ PUBLIC_HEADER y PRIVATE_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.

หากคุณต้องการทราบข้อมูลเพิ่มเติมสามารถปรึกษาได้ ลิงค์ต่อไปนี้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา