- เวอร์ชันภาษาอังกฤษ
ระเบิดและเปลี่ยน "mylib" เป็นชื่อของคุณ
หรือสร้างโครงการของคุณโดยใช้สคริปต์: https://github.com/izvolov/mylib-gen
การชุมนุมของโครงการนี้เช่นเดียวกับโครงการอื่น ๆ ในระบบประกอบ CMake ประกอบด้วยสองขั้นตอน:
cmake -S путь/к/исходникам -B путь/к/сборочной/директории [опции ...]อ่านเพิ่มเติมเกี่ยวกับตัวเลือก
cmake --build путь/к/сборочной/директории [--target target]อ่านเพิ่มเติมเกี่ยวกับเป้าหมายการชุมนุม
cmake -S ... -B ... -DMYLIB_COVERAGE=ON [прочие опции ...] รวมถึงวัตถุประสงค์ของ coverage ซึ่งคุณสามารถเริ่มวัดรหัสที่ครอบคลุมด้วยการทดสอบ
cmake -S ... -B ... -DMYLIB_TESTING=OFF [прочие опции ...] ให้โอกาสในการปิดการทดสอบการทดสอบแบบแยกส่วนและเป้าหมายของ check เป็นผลให้รหัสถูกปิดโดยการเคลือบหลักพร้อมการทดสอบ (ดูการเคลือบ)
การทดสอบจะถูกตัดการเชื่อมต่อโดยอัตโนมัติหากโครงการเชื่อมต่อกับโครงการอื่นเป็นโครงการย่อยโดยใช้คำสั่ง add_subdirectory
cmake -S ... -B ... -DDOXYGEN_OUTPUT_LANGUAGE=English [прочие опции ...] มันสลับภาษาของเอกสารซึ่งสร้างขึ้นโดยเป้าหมาย doc เป็นภาษาที่กำหนด สำหรับรายการภาษาที่เข้าถึงได้โปรดดูที่เว็บไซต์ระบบ Doxygen
โดยค่าเริ่มต้นรัสเซียจะรวมอยู่ด้วย
cmake --build путь/к/сборочной/директории
cmake --build путь/к/сборочной/директории --target all หากเป้าหมายไม่ได้ระบุไว้ (ซึ่งเทียบเท่ากับเป้าหมาย all ) ให้รวบรวมทุกสิ่งที่เป็นไปได้และยังทำให้เป้าหมาย check
cmake --build путь/к/сборочной/директории --target mylib_library รวบรวมโดยห้องสมุด mylib_library รวมอยู่ในค่าเริ่มต้น
cmake --build путь/к/сборочной/директории --target mylib-unit-testsรวบรวมการทดสอบแบบแยกส่วน รวมอยู่ในค่าเริ่มต้น
cmake --build путь/к/сборочной/директории --target checkรูนการทดสอบแบบแยกส่วนที่รวบรวม (รวบรวมถ้ายัง) รวมอยู่ในค่าเริ่มต้น
ดู mylib-unit-tests
cmake --build путь/к/сборочной/директории --target coverageวิเคราะห์การทดสอบแบบแยกส่วนขั้นสูง (เปิดใช้งานหากยังไม่ได้) สำหรับการทดสอบรหัสด้วยการทดสอบโดยใช้โปรแกรม GCOVR
เป้าหมายมีให้เฉพาะกับตัวเลือก MYLIB_COVERAGE ที่รวมอยู่
ดูเพิ่มเติมที่ check
cmake --build путь/к/сборочной/директории --target docรูนการสร้างเอกสารสำหรับรหัสโดยใช้ระบบ Doxygen
cmake --build путь/к/сборочной/директории --target wandboxสำหรับสิ่งนี้ใช้บริการ Wandbox อย่าใช้สิ่งนี้ในทางที่ผิดเซิร์ฟเวอร์ไม่ใช่ยาง
cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug -DMYLIB_COVERAGE=ON
cmake --build путь/к/сборочной/директории --target coverage --parallel 16cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DMYLIB_TESTING=OFF -DCMAKE_INSTALL_PREFIX=путь/к/установойной/директории
cmake --build путь/к/сборочной/директории --target installcmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-8 -DCMAKE_PREFIX_PATH=путь/к/директории/куда/установлены/зависимости
cmake --build путь/к/сборочной/директории --parallel 4cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Release -DDOXYGEN_OUTPUT_LANGUAGE=English
cmake --build путь/к/сборочной/директории --target docหนึ่งในตัวเลือกสำหรับการใช้โมดูลคือการติดตั้งในระบบ
cmake --build путь/к/сборочной/директории --target install หลังจากนั้นโครงการอื่น ๆ ที่เรียกคำสั่ง find_package ได้รับโอกาสใช้ไลบรารีทั้งหมดจาก Mylib::
find_package (Mylib 1.0 REQUIRED)
add_executable (some_executable some.cpp sources .cpp)
target_link_libraries (some_executable PRIVATE Mylib::library) Mylib::library ต้องเชื่อมต่อเมื่อคุณต้องการติดกับไลบรารี libmylib_library หากมีพาดหัวข่าวเพียงพอก็คุ้มค่าที่จะใช้ Mylib::headers
โครงการยังสามารถเชื่อมต่อกับโครงการอื่นเป็น submodule โดยใช้คำสั่ง add_subdirectory
ในกรณีนี้ Mylib::library และ Mylib::headers จะพร้อมใช้งานในลักษณะเดียวกัน
cmake 3.14
ต้องใช้ CMake 3.14 เนื่องจากในรุ่นก่อนหน้า install(TARGETS ... EXPORT ...) ทำงานไม่ถูกต้องในเวอร์ชันก่อนหน้าคือเส้นทางเริ่มต้นไม่ได้กำหนด
ห้องสมุดทดสอบแพทย์
การทดสอบสามารถปิดได้ (ดูการทดสอบ)
doxygen
ในการสลับภาษาที่จะสร้างเอกสารให้เลือกตัวเลือก DOXYGEN_OUTPUT_LANGUAGE
ล่าม Jap Python 3
สำหรับแซนวิชออนไลน์รุ่นอัตโนมัติ
ด้วยความช่วยเหลือของ CMake และเครื่องมือที่ดีคู่หนึ่งคุณสามารถให้การวิเคราะห์แบบคงที่ด้วยการเคลื่อนไหวของร่างกายน้อยที่สุด
CMake ได้สร้างการสนับสนุนการวิเคราะห์แบบคงที่ของ CPPCHECK
ในการทำเช่นนี้ให้ใช้ตัวเลือก CMAKE_CXX_CPPCHECK :
cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_CPPCHECK= " cppcheck;--enable=all;-Iпуть/к/исходникам/include "หลังจากนั้นการวิเคราะห์แบบคงที่จะเปิดตัวโดยอัตโนมัติทุกครั้งในระหว่างการรวบรวมและข้าม -คอมไพล์ของแหล่งที่มา คุณไม่จำเป็นต้องทำอะไรเพิ่มเติม
ด้วยความช่วยเหลือของเครื่องมือ scan-build ที่ยอดเยี่ยมคุณสามารถเริ่มการวิเคราะห์แบบคงที่ในสองคะแนน:
scan-build cmake -S путь/к/исходникам -B путь/к/сборочной/директории -DCMAKE_BUILD_TYPE=Debug
scan-build cmake --build путь/к/сборочной/директории ที่นี่แตกต่างจากกรณีที่มี CPPCHECK จำเป็นต้องเรียกใช้การชุมนุมผ่าน scan-build ในแต่ละครั้ง