Vì vậy, tôi có danh sách các file (hoặc giá trị) như thế nàyCMake regex trận đấu trong danh sách
set(HEADER_FILES DirA/header1.h DirA/header2.hpp
DirB/header3.h DirB/stuff.hpp)
Sau đó, làm thế nào để tôi nhận được danh sách phụ các tập tin chỉ trong dira? Tôi đang sử dụng CMake 2.8.x và tôi mệt mỏi trận đấu regex:
string(REGEX MATCHALL "DirA/(.+)" DirA_FILES ${HEADER_FILES})
Nhưng kết quả chỉ là sao chép của chuỗi ban đầu như: "dira/header1.h dira/header2.hpp DirB/header3.h DirB/stuff.hpp "hoặc không có gì.
Vâng một lần nữa như mọi khi, khi viết câu hỏi này tôi giải quyết nó:
set(SubListMatch)
foreach(ITR ${HEADER_FILES})
if(ITR MATCHES "(.*)DirA/(.*)")
list(APPEND SubListMatch ${ITR})
endif()
endforeach()
Nhưng CMake là điều khá mới mẻ với tôi vậy làm thế nào để tôi quấn mã vào chức năng? Tôi chưa bao giờ viết bất kỳ chức năng CMake cho đến nay.