cmake-init - การเริ่มต้นโครงการ CMake ที่หายไป cmake-init เป็นโครงการเริ่มต้นโครงการ CMAKE ที่สร้างโครงการ CMAKE ซึ่งพร้อมใช้งานพร้อมกันผู้บริโภคและเป้าหมายผู้พัฒนาแยกต่างหากจัดเตรียมกฎการติดตั้งด้วยแพ็คเกจ CMAKE ที่ใช้งานได้อย่างเหมาะสมและใช้ CMAKE ที่ทันสมัย (3.14+)
โปรดดูวิกิตัวอย่างเช่นผลลัพธ์ของ cmake-init และตัวอย่างการใช้งานอื่น ๆ ของการใช้งานที่ใช้สำหรับ CMake เช่นผู้จัดการแพ็คเกจการทดสอบฟัซซี่






หากคุณต้องการติดต่อฉันสำหรับสิ่งที่เกี่ยวข้องกับ cmake คุณอาจพบฉันใน #cmake channel ของ C ++ Slack หากสิ่งที่คุณต้องการรู้คือ cmake-init เฉพาะคุณอาจถามคำถามในการอภิปรายของที่เก็บนี้
h เมื่อได้รับแจ้ง ห้องสมุดคงที่/แบ่งปัน? เพียงเลือก s เมื่อได้รับแจ้ง เรียบง่าย และ ถูกต้อง!FetchContentตรวจสอบให้แน่ใจว่าคุณติดตั้งโปรแกรมเหล่านี้:
บันทึก
เครื่องมือเหล่านี้บางอย่างสามารถใช้กับ Windows ได้เช่นกันหากคุณต้องการใช้ Visual Studio แต่คุณต้องติดตั้ง Addins เหล่านี้:
แพ็คเกจนี้สามารถดาวน์โหลดได้จาก PYPI คุณสามารถติดตั้งแพ็คเกจนี้โดยใช้ pip :
pip install cmake-init Clang-Tidy เป็นเครื่องมือวิเคราะห์แบบคงที่ที่ช่วยให้คุณพบข้อผิดพลาดเชิงตรรกะในรหัสของคุณก่อนที่จะรวบรวม สคริปต์นี้ช่วยให้คุณมีตัวเลือกในการสืบทอดการตั้งค่าล่วงหน้าของ clang-tidy ในการตั้งค่า dev ของคุณทำให้การรวม CMake สำหรับเครื่องมือนี้
CI จะเรียกใช้ clang-tidy สำหรับคุณเสมอดังนั้นจึงเป็นทางเลือกทั้งหมดในการติดตั้งและใช้งานในเครื่อง แต่ขอแนะนำ
สำหรับผู้ใช้ Windows หากคุณต้องการใช้ Clang-Tidy คุณต้องติดตั้ง Ninja และตั้งค่าฟิลด์ generator ใน dev Preset ของคุณเป็น Ninja เหตุผลนี้ก็คือเฉพาะ MakeFiles และ Ninja เท่านั้นที่ได้รับการสนับสนุนด้วย CMake สำหรับใช้กับ Clang-Tidy สำหรับเครื่องกำเนิดไฟฟ้าอื่น ๆ คุณลักษณะนี้ไม่มี
CPPCHECK เป็นเครื่องมือการวิเคราะห์แบบคงที่คล้ายกับการปะทะกัน แต่การทับซ้อนกันในสิ่งที่พวกเขาตรวจพบนั้นน้อยที่สุดดังนั้นจึงเป็นประโยชน์ในการใช้ทั้งสองอย่าง สคริปต์นี้ช่วยให้คุณมีตัวเลือกในการสืบทอด cppcheck ที่ตั้งไว้ล่วงหน้าใน dev Preset ของคุณทำให้การรวม CMAKE สำหรับเครื่องมือนี้
CI จะเรียกใช้ CPPCHECK ให้คุณเสมอดังนั้นจึงเป็นทางเลือกทั้งหมดในการติดตั้งและใช้งานในเครื่อง แต่ขอแนะนำ
สำหรับผู้ใช้ Windows หากคุณต้องการใช้ CPPCHECK คุณต้องติดตั้ง Ninja และตั้งค่าฟิลด์ generator ใน dev ที่ตั้งไว้ล่วงหน้าเป็น Ninja เหตุผลนี้ก็คือเฉพาะ MakeFiles และ Ninja เท่านั้นที่ได้รับการสนับสนุนด้วย CMAKE สำหรับใช้กับ CPPCHECK สำหรับเครื่องกำเนิดไฟฟ้าอื่น ๆ คุณลักษณะนี้ไม่มี
Doxygen เป็นเครื่องมือในการสร้างเอกสารจากซอร์สโค้ดที่มีคำอธิบายประกอบ ร่วมกับมัน M.CSS ใช้สำหรับการนำเสนอเอกสารที่สร้างขึ้น
โครงการที่สร้างขึ้นจะมีเป้าหมาย docs ในโหมดนักพัฒนาซึ่งสามารถใช้ในการสร้างเอกสารลงในไดเรกทอรี <binary-dir>/docs/html
หลังจากติดตั้ง Doxygen โปรดตรวจสอบให้แน่ใจว่ามีการทำงานของ doxygen ใน PATH มิฉะนั้นคุณอาจได้รับข้อความแสดงข้อผิดพลาดที่สับสน
เอกสารนี้สามารถนำไปใช้กับหน้า GitHub โดยใช้งาน docs ในเวิร์กโฟลว์ CI ที่สร้างขึ้น ทำตามความคิดเห็นที่เหลืออยู่ในงานเพื่อเปิดใช้งานสิ่งนี้
หมายเหตุ : M.CSS ไม่ทำงานกับ doxygen> = 1.9 คุณสามารถติดตั้ง 1.8.20 เพื่อใช้เป้าหมาย docs ดูปัญหา #41 และ #48
LCOV เป็นเครื่องมือในการประมวลผลข้อมูลการครอบคลุมที่สร้างขึ้นโดย Executables ที่ใช้เครื่องมือกับ gcov ของ GCC ข้อมูลความคุ้มครองนี้สามารถใช้เพื่อดูว่าส่วนใดของโปรแกรมถูกดำเนินการ
โครงการที่สร้างขึ้นจะมีเป้าหมาย coverage ในโหมดนักพัฒนาหากเปิดใช้งานตัวแปร ENABLE_COVERAGE เหตุผลที่ใช้เป้าหมายแยกต่างหากแทนขั้นตอน coverage ในตัวของ CTEST นั้นเป็นเพราะขาดการปรับแต่งที่จำเป็น เป้าหมายนี้ควรเรียกใช้หลังจากการทดสอบและโดยค่าเริ่มต้นจะสร้างรายงานที่ <binary-dir>/coverage.info และรายงาน HTML ที่ไดเรกทอรี <binary-dir>/coverage_html
สำหรับผู้ใช้ Windows คุณอาจใช้เครื่องมือที่คล้ายกันที่เรียกว่า OpenCppCoverage ซึ่งมีสคริปต์ตัวอย่างในไดเรกทอรี cmake ที่สร้างขึ้น สคริปต์นี้เป็นตัวอย่างเนื่องจาก Linux VM เปิดตัวและทำงานได้เร็วขึ้นในการกระทำของ GitHub และดังนั้นจึงใช้สำหรับการส่งความครอบคลุม
รูปแบบเสียงดังเป็นส่วนหนึ่งของชุดเครื่องมือ LLVM คล้ายกับ Clang-Tidy มันเป็นรหัส linter และรูปแบบรหัสซึ่งสามารถใช้ในการบังคับใช้คู่มือสไตล์
มีเป้าหมายสองเป้าหมายเพื่อตรวจสอบและแก้ไขรหัสในโหมดนักพัฒนาโดยใช้เป้าหมาย format-check และเป้าหมาย format-fix ตามลำดับ
หมายเหตุ : โครงการสร้างไฟล์ที่จัดรูปแบบตามรูปแบบ Clang 14 รุ่นใหม่หรือเก่ากว่าอาจจัดรูปแบบโครงการที่แตกต่างกัน
Codespell เป็นเครื่องมือในการค้นหาและแก้ไขข้อผิดพลาดในการสะกดคำส่วนใหญ่ในซอร์สโค้ด
มีเป้าหมายสองเป้าหมายเพื่อตรวจสอบและแก้ไขข้อผิดพลาดในการสะกดคำในโหมดนักพัฒนาโดยใช้เป้าหมาย spell-check และ spell-fix ตามลำดับ
Flag -p สามารถใช้เพื่อเลือกตัวจัดการแพ็คเกจสำหรับโครงการ อาร์กิวเมนต์สำหรับธงสามารถ:
none : ไม่มีการรวมแพ็คเกจ Manager (ค่าเริ่มต้น)conan : การรวมโคนันvcpkg : การรวม VCPKGเมื่อใช้ตัวจัดการแพ็คเกจแพ็คเกจต่อไปนี้จะใช้ในโครงการที่สร้างขึ้น:
ตรวจสอบให้แน่ใจว่าได้อ่านเอกสารแฮ็คที่สร้างขึ้นเพื่อดูว่าต้องทำอะไรเพื่อดึงข้อมูลขึ้นอยู่กับ
cmake-init [--c] <path>-s , -e หรือ -h หลังจากสร้างไลบรารีที่ใช้ร่วมกันได้อย่างรวดเร็วหรือเป็นส่วนหัวเฉพาะไลบรารีตามลำดับ สวิตช์ --c จะตั้งค่าประเภทโครงการที่สร้างขึ้นเป็น C แทน C ++cmake-init --help cmake-init เป็นซอฟต์แวร์ฟรี: คุณสามารถใช้ศึกษาแบ่งปันและปรับปรุงตามความประสงค์ของคุณ โดยเฉพาะคุณสามารถแจกจ่ายและ/หรือแก้ไขภายใต้ข้อกำหนดของใบอนุญาตสาธารณะ GNU ทั่วไปที่เผยแพร่โดย Free Software Foundation ไม่ว่าจะเป็นเวอร์ชัน 3 ของใบอนุญาตหรือ (ตามตัวเลือกของคุณ) เวอร์ชันในภายหลัง
เนื้อหาของไดเรกทอรี cmake-init/templates ได้รับอนุญาตโดยใช้ใบอนุญาตที่ไม่ได้รับใบอนุญาต ดูใบอนุญาตในไดเรกทอรีนั้นสำหรับรายละเอียดเพิ่มเติม