Trong cmake, làm cách nào để kiểm tra xem mã thông báo chuỗi có được bao gồm trong chuỗi khác không?Kiểm tra mã thông báo chuỗi ký tự nhỏ
Trong trường hợp của tôi, tôi muốn biết tên trình biên dịch có chứa chuỗi "Clang" (ví dụ: "clang", "AppleClang", ...) hay không. Tất cả những gì tôi có thể làm cho đến thời điểm này là:
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
...
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
...
Tôi muốn có cách tiếp cận linh hoạt hơn, như kiểm tra sự hiện diện của chuỗi con.
Đây là những gì tôi có thể tìm thấy trong tài liệu hướng dẫn:
if (phù hợp với regex) Đúng nếu chuỗi nhất định hoặc giá trị biến của phù hợp với biểu thức chính quy định.
nếu (LESS) Đúng nếu chuỗi hoặc giá trị của biến đã cho là số hợp lệ và nhỏ hơn số đó ở bên phải.
nếu (TUYỆT VỜI) Đúng nếu chuỗi hoặc giá trị của biến đã cho là số hợp lệ và lớn hơn số đó ở bên phải.
nếu (EQUAL) Đúng nếu chuỗi hoặc giá trị của biến đã cho là số hợp lệ và bằng với số đó ở bên phải.
nếu (STRLESS) Đúng nếu chuỗi hoặc giá trị của biến được đặt theo từ điển ít hơn chuỗi hoặc biến ở bên phải.
nếu (STRGREATER) Đúng nếu chuỗi hoặc giá trị của biến nhất định về mặt từ điển lớn hơn chuỗi hoặc biến ở bên phải.
nếu (STREQUAL) Đúng nếu chuỗi hoặc giá trị của biến được từ điển tương đương với chuỗi hoặc biến ở bên phải.
Một trong những cách tiếp cận bạn được liệt kê sẽ là câu trả lời cuối cùng, nhưng không có ví dụ rõ ràng về mã thông báo bạn đang tìm kiếm và chuỗi bạn đang tìm kiếm, sẽ không có ai có thể hướng dẫn bạn trực tiếp hơn. – kdopen