Menambahkan opsi baris perintah ke CMake

111

Saya membangun perpustakaan besar menggunakan CMake, dan saya ingin pengguna dapat secara selektif mengaktifkan / menonaktifkan bagian tertentu dari proses pembuatan saya.

Bagaimana saya dapat menambahkan opsi baris perintah ke CMake build saya, misalnya agar pengguna dapat mengetik sesuatu seperti cmake --build-partone --nobuild-parttwo --dothis=true --dothat=false ..?

Rupanya kata kunci OPTION akan membuat variabel yang dapat diatur dari CMake GUI, tetapi saya tidak tahu bagaimana melakukan ini dari baris perintah.

rcv
sumber
Terima kasih atas pertanyaan Anda karena menjawab pertanyaan saya sehubungan dengan tujuan opsi cmake. Jadi, saya lihat sekarang untuk GUI
truthadjustr

Jawaban:

161

Ya, Anda harus menggunakan optionperintah. Anda dapat mengatur opsi dari baris perintah dengan cara ini:

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

//Command line
cmake -DMyOption=ON MyProjectFolder

Perhatikan bahwa -DMyOptionharus ada sebelum jalan.

beduin
sumber
5
... dan cmake MyProjectFolder -DMyOptiontidak mengaktifkan (atau menonaktifkan)
opsi
letakkan -DMyOption sebelum MyProjectFolder dan coba?
updogliu
11
Gunakan -DMyOption=ONatau -DMyOption=OFFuntuk menghidupkan atau mematikan.
kvanberendonck
Saya baru saja memperhatikan ketika saya mencoba membuat modul pihak ketiga bahwa item yang disetel dengan "set (NAME bla bla)" di CMakeLists.txt dapat diganti dengan -DNAME = overridingValue pada baris perintah cmake,
peterk
13

Sedikit koreksi:

Jika Anda memiliki variabel lain untuk diteruskan, disarankan untuk menunjukkan jenis ini:

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

//Command line
cmake -DMyOption:BOOL=ON MyProjectFolder -D...
guilloptero
sumber