我想有选择地在我的CMakeLists文件中添加一些库路径,并且要做到这一点的方法是将变量设置为:
set(MYLIBDIR "DEFAULT")
Run Code Online (Sandbox Code Playgroud)
如果用户要指定自定义目录,则将其更改为:
set(MYLIBDIR /path/to/dir1
/path/to/dir2)
Run Code Online (Sandbox Code Playgroud)
因此,为了检查用户是否确实提供了额外的目录,我检查了:
if(NOT ${MYLIBDIR} STREQUAL "DEFAULT")
link_directories(${MYLIBDIR})
endif()
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,我从cmake中得到一个错误。有没有办法在字符串比较之前连接变量的所有元素?
把我的评论变成答案
只需通过在变量引用周围加上引号即可实现串联列表:
if(NOT "${MYLIBDIR}" STREQUAL "DEFAULT")
Run Code Online (Sandbox Code Playgroud)
将与
if(NOT "/path/to/dir1;/path/to/dir2" STREQUAL "DEFAULT")
Run Code Online (Sandbox Code Playgroud)
但是我建议
if(NOT MYLIBDIR STREQUAL "DEFAULT")
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参见
| 归档时间: |
|
| 查看次数: |
5729 次 |
| 最近记录: |