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

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

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

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


person rcv    schedule 13.05.2011    source แหล่งที่มา
comment
ขอบคุณสำหรับคำถามของคุณ เนื่องจากเป็นการตอบคำถามของฉันเกี่ยวกับวัตถุประสงค์ของตัวเลือก cmake ตอนนี้ฉันเห็นว่ามันมีไว้สำหรับ GUI   -  person eigenfield    schedule 04.08.2020


คำตอบ (2)


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

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

//Command line
cmake -DMyOption=ON MyProjectFolder

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

person beduin    schedule 14.05.2011
comment
... และ cmake MyProjectFolder -DMyOption ไม่เปิด (หรือปิดตัวเลือก) - person mabraham; 26.03.2013
comment
ใส่ -DMyOption ก่อน MyProjectFolder แล้วลองดูไหม - person updogliu; 16.02.2014
comment
ใช้ -DMyOption=ON หรือ -DMyOption=OFF เพื่อเปิดหรือปิด - person kvanbere; 01.11.2014
comment
ฉันเพิ่งสังเกตเห็นในขณะที่ฉันกำลังพยายามสร้างโมดูลของบุคคลที่สามว่ารายการที่ตั้งค่าด้วย set(NAME blahblah) ใน CMakeLists.txt สามารถเขียนทับได้ด้วย -DNAME=overridingValue บนบรรทัดคำสั่ง cmake - person peterk; 21.12.2018

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

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

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
person guilloptero    schedule 04.04.2015