selain lib_srcs daripada lib_src dan IlmImf daripada IlmThread, Itu berhasil! Terima kasih banyak !
berak
21
Catatan: Saat menghapus item dari daftar, pastikan nilai yang Anda cari cocok persis seperti yang ada di dalam daftar. Saya mengalami masalah saat mencampur $ {CMAKE_SOURCE_DIR} /src/file_to_remove.cpp dengan $ {CMAKE_CURRENT_SOURCE_DIR} /../ file_to_remove.cpp. Itu menunjuk ke lokasi yang sama, tetapi itu bukan string yang sama. message ("$ {VARIABLE_NAME}") dapat membantu Anda men-debug konten tersebut.
hbobenicio
Ini tidak membantu jika Anda menggunakan CONFIGURE_DEPENDSdan perlu mengecualikan file yang diproduksi oleh build. Filter pada daftar setelah filepanggilan masih memicu pembangunan kembali yang, dalam kasus saya, saya coba hindari.
simon.watts
Jauh lebih baik untuk digunakanlist(FILTER
hukeping
3
Solusi di atas tidak berfungsi untuk saya dengan camke versi 3.10.2 Tetapi solusi di bawah ini: list(FILTER <list> <INCLUDE|EXCLUDE> REGEX <regular_expression>) berfungsi dengan baik untuk saya.
MH Yip
44
FILTER adalah opsi lain yang mungkin lebih nyaman dalam beberapa kasus:
The following characters have special meaning in regular expressions:
^ Matches at beginning of input
$ Matches at end of input
. Matches any single character
[ ] Matches any character(s) inside the brackets
[^ ] Matches any character(s) not inside the brackets
- Inside brackets, specifies an inclusive range between
characters on either side e.g. [a-f] is [abcdef]
To match a literal - using brackets, make it the first
or the last character e.g. [+*/-] matches basic
mathematical operators.
* Matches preceding pattern zero or more times
+ Matches preceding pattern one or more times
? Matches preceding pattern zero or once only
| Matches a pattern on either side of the |
() Saves a matched subexpression, which can be referenced
in the REGEX REPLACE operation. Additionally it is saved
by all regular expression-related commands, including
e.g. if( MATCHES ), in the variables CMAKE_MATCH_(0..9).
Ini jelas merupakan jawaban yang lebih baik, meskipun jika Anda mencoba menggunakan ini untuk mengecualikan seluruh direktori atau jika regex Anda kacau, Anda mungkin mengecualikan lebih dari yang Anda inginkan. Misalnya, mencoba mengecualikan .*test/.*mungkin mengecualikan semuanya jika proyek Anda berada di dalam pohon direktori di mana salah satu direktori induk disebut seperti mytest.
CONFIGURE_DEPENDS
dan perlu mengecualikan file yang diproduksi oleh build. Filter pada daftar setelahfile
panggilan masih memicu pembangunan kembali yang, dalam kasus saya, saya coba hindari.list(FILTER
list(FILTER <list> <INCLUDE|EXCLUDE> REGEX <regular_expression>)
berfungsi dengan baik untuk saya.FILTER adalah opsi lain yang mungkin lebih nyaman dalam beberapa kasus:
Baris ini mengecualikan setiap item yang diakhiri dengan nama file yang diperlukan:
Berikut adalah Spesifikasi Regex untuk cmake:
sumber
list(REMOVE_ITEM
list(FILTER ...)
diperkenalkan di cmake v3.6: stackoverflow.com/a/42167646/3476780.*test/.*
mungkin mengecualikan semuanya jika proyek Anda berada di dalam pohon direktori di mana salah satu direktori induk disebut sepertimytest
.coba ini :
CMakeLists.txt
sumber