【发布时间】:2015-04-16 10:24:32
【问题描述】:
在cmake中,如何检查一个字符串token是否包含在另一个字符串中?
就我而言,我想知道编译器的名称是否包含字符串“Clang”(例如“clang”、“AppleClang”……)。到目前为止我能做的就是:
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
...
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
...
我想要一种更灵活的方法,例如检查子字符串是否存在。
这是我可以在文档中找到的:
如果(匹配正则表达式)
如果给定的字符串或变量的值与给定的正则表达式匹配,则为真。
如果(少)
如果给定字符串或变量的值是有效数字且小于右边的数字,则为真。
如果(更大)
如果给定字符串或变量的值是有效数字并且大于右边的数字,则为真。
如果(等于)
如果给定的字符串或变量的值是有效数字并且等于右边的数字,则为真。
如果(无压力)
如果给定字符串或变量的值按字典顺序小于右侧的字符串或变量,则为真。
如果(更大)
如果给定字符串或变量的值按字典顺序大于右侧的字符串或变量,则为真。
如果(STREQUAL)
如果给定的字符串或变量的值在字典上等于右侧的字符串或变量,则为真。
【问题讨论】:
-
您列出的其中一种方法将成为最终答案,但如果没有您正在寻找的令牌和正在搜索的字符串的明确示例,没有人能够指导你再靠近一点。
标签: string cmake string-comparison