Thêm tùy chọn dòng lệnh vào CMake


111

Tôi đang xây dựng một thư viện lớn bằng CMake và tôi muốn người dùng có thể bật / tắt có chọn lọc một số phần trong quy trình xây dựng của tôi.

Làm cách nào để thêm các tùy chọn dòng lệnh vào bản dựng CMake của mình, ví dụ như để người dùng có thể gõ một cái gì đó như thế cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..nào?

Rõ ràng từ khóa OPTION sẽ tạo ra các biến có thể được đặt từ CMake GUI, nhưng tôi không thể tìm ra cách thực hiện điều này từ dòng lệnh.


Cảm ơn câu hỏi của bạn vì nó đã trả lời câu hỏi của tôi liên quan đến mục đích của tùy chọn cmake. Vì vậy, tôi thấy bây giờ nó dành cho GUI
truthadjustr

Câu trả lời:


161

Vâng, bạn nên sử dụng optionlệnh. Bạn có thể đặt các tùy chọn từ dòng lệnh theo cách này:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Lưu ý rằng -DMyOptionphải đến trước đường dẫn.


5
... và cmake MyProjectFolder -DMyOptionkhông bật tùy chọn trên (hoặc tắt)
mabraham

đặt -DMyOption trước MyProjectFolder và dùng thử?
updogliu

11
Sử dụng -DMyOption=ONhoặc -DMyOption=OFFđể bật hoặc tắt.
kvanberendonck

Tôi vừa nhận thấy khi tôi đang cố gắng tạo mô-đun bên thứ ba mà các mục được đặt bằng "set (NAME blahblah)" trong CMakeLists.txt có thể bị ghi đè bằng -DNAME = overridingValue trên dòng lệnh cmake,
peterk

13

Chỉ cần chỉnh sửa một chút:

Nếu bạn có các biến khác để chuyển, bạn nên chỉ ra loại của những biến này:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.