CMake เป็นระบบสร้างเมตาโอเพ่นซอร์สข้ามแพลตฟอร์มซึ่งสามารถสร้าง ทดสอบ และจัดทำแพ็คเกจซอฟต์แวร์ได้ สามารถใช้เพื่อรองรับสภาพแวดล้อมบิลด์เนทีฟหลายแบบ รวมถึง make, xcode ของ Apple และ Microsoft Visual Studio
พื้นที่เก็บข้อมูลนี้มีตัวอย่างการกำหนดค่า CMake สมัยใหม่ซึ่งฉันได้เลือกขึ้นมาเมื่อสำรวจการใช้งานสำหรับโปรเจ็กต์ต่างๆ ตัวอย่างจะถูกจัดวางในรูปแบบเหมือนบทช่วยสอน ตัวอย่างแรกเป็นพื้นฐานมากและค่อยๆ เพิ่มความซับซ้อนจากตัวอย่างก่อนหน้าเพื่อแสดงกรณีการใช้งานที่ซับซ้อนมากขึ้น
ตัวอย่างเหล่านี้ได้รับการทดสอบบน Ubuntu 16.04 แล้ว แต่ควรทำงานภายใต้ระบบ Linux ที่รองรับ CMake v3.5+
สาขานี้ใช้งานได้กับ CMake เวอร์ชัน 3.5 เป็นต้นไป
สำหรับตัวอย่างที่ใช้ CMake เวอร์ชัน 2.x โปรดดูสาขา v2-style-includes
สำหรับตัวอย่างที่ใช้ CMake เวอร์ชัน 3.0 โปรดดูสาขา v3.0-ขั้นต่ำ
ข้อกำหนดพื้นฐานสำหรับตัวอย่างส่วนใหญ่ได้แก่:
CMake v3.5+
คอมไพเลอร์ c++ (ค่าเริ่มต้นคือ gcc)
ทำ
วิธีที่ง่ายที่สุดในการติดตั้งด้านบนบน Ubuntu มีดังนี้
$ sudo apt-get install build-essential
$ sudo apt-get install cmake
ตัวอย่างเฉพาะบางส่วนอาจต้องใช้เครื่องมืออื่นๆ ได้แก่:
เพิ่ม
$ sudo apt-get ติดตั้ง libboost-all-dev
โปรโตบุฟ
$ sudo apt-get ติดตั้ง libprotobuf-dev $ sudo apt-get ติดตั้งโปรโตบุฟคอมไพเลอร์
ซีพีพีเช็ค
$ sudo apt-get ติดตั้ง cppcheck
เสียงดังกราว
$ sudo apt-get ติดตั้งเสียงดังกราว-3.6
นินจา
$ sudo apt-get ติดตั้ง ninja-build
โคนัน
$ sudo apt-get ติดตั้ง python3 python3-pip $ sudo pip3 ติดตั้งโคนัน
คอนเทนเนอร์นักเทียบท่าที่มีข้อกำหนดทั้งหมดและ CMake เวอร์ชันต่างๆ ได้รับการสร้างขึ้นเพื่อช่วยให้การทดสอบตัวอย่างง่ายขึ้น สิ่งเหล่านี้หาได้จาก matrim/cmake-examples ที่เก็บฮับนักเทียบท่า
หากต้องการสร้างชุดกรณีทดสอบตัวอย่าง cmake แบบเต็ม คุณสามารถเรียกใช้ได้:
docker run -it matrim/cmake-examples:3.5.1
cd ~
git clone https://github.com/ttroy50/cmake-examples.git code
cd code
./test.sh
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการสร้างและการรัน docker containers dockerfiles
มีบทช่วยสอนและตัวอย่าง CMake มากมายทางออนไลน์ รายการด้านล่างนี้มีลิงก์ไปยังบางส่วนที่ฉันพบว่ามีประโยชน์ในการเดินทาง CMake ของฉัน
สไลด์ CMake ที่ทันสมัย
rix0r บล็อก CMake สมัยใหม่
บทช่วยสอน CMake อย่างเป็นทางการ
วิกิอย่างเป็นทางการของ CMake
CMake ตัวแปรที่มีประโยชน์
Derek Molloy - ข้อมูลเบื้องต้นเกี่ยวกับ CMake
โปรเจ็กต์ C++ แบบโมดูลาร์
การต่อต้านรูปแบบ CMake ทั่วไป
การใช้เครื่องวิเคราะห์เสียงดังกราวกับ CMake
การวิเคราะห์แบบคงที่ด้วย CDash - รวมข้อมูลบางอย่างเกี่ยวกับการใช้ CppCheck กับ CMake
เคล็ดลับ CMake
John Lamp - บทช่วยสอน CMake
เอกสารประกอบของโคนัน