การเพิ่มตัวเลือกบรรทัดคำสั่งใน CMake


111

ฉันกำลังสร้างห้องสมุดขนาดใหญ่โดยใช้ CMake และฉันต้องการให้ผู้ใช้สามารถเลือกเปิด / ปิดบางส่วนของกระบวนการสร้างของฉันได้

ฉันจะเพิ่มตัวเลือกบรรทัดคำสั่งให้กับบิลด์ CMake ของฉันได้อย่างไรเพื่อให้ผู้ใช้พิมพ์บางอย่างเช่นcmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

เห็นได้ชัดว่าคีย์เวิร์ด OPTION จะสร้างตัวแปรที่สามารถตั้งค่าได้จาก CMake GUI แต่ฉันไม่สามารถหาวิธีทำได้จากบรรทัดคำสั่ง


ขอบคุณสำหรับคำถามของคุณเนื่องจากตอบคำถามของฉันเกี่ยวกับวัตถุประสงค์ของตัวเลือก cmake ตอนนี้ฉันเห็นว่ามันเป็น GUI
truthadjustr

คำตอบ:


161

ใช่คุณควรใช้optionคำสั่ง คุณสามารถตั้งค่าตัวเลือกจากบรรทัดคำสั่งด้วยวิธีนี้:

//CMakeLists.txt
option(MyOption "MyOption" OFF)

//Command line
cmake -DMyOption=ON MyProjectFolder

โปรดทราบว่า-DMyOptionต้องมาก่อนเส้นทาง


5
... และcmake MyProjectFolder -DMyOptionไม่เปิดตัวเลือก (หรือปิด)
mabraham

ใส่ -DMyOption ก่อน MyProjectFolder แล้วลองดูไหม
updogliu

11
ใช้-DMyOption=ONหรือ-DMyOption=OFFเพื่อเปิดหรือปิด
kvanberendonck

ฉันเพิ่งสังเกตเห็นในขณะที่ฉันพยายามสร้างโมดูลของบุคคลที่สามซึ่งรายการที่ตั้งค่าด้วย "set (NAME blahblah)" ใน CMakeLists.txt สามารถเขียนทับได้ด้วย -DNAME = overridingValue บนบรรทัดคำสั่ง
cmake

13

แก้ไขเพียงเล็กน้อย:

หากคุณมีตัวแปรอื่นที่จะส่งผ่านขอแนะนำให้ระบุประเภทของสิ่งเหล่านี้:

//CMakeLists.txt
option(MyOption "MyOption" OFF)

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.