DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 542 评论 :: 1615万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

用途:提供一些列表操作

list(LENGTH <list><output variable>)
  list(GET <list> <elementindex> [<element index> ...]
       <output variable>)
  list(APPEND <list><element> [<element> ...])
  list(FIND <list> <value><output variable>)
  list(INSERT <list><element_index> <element> [<element> ...])
  list(REMOVE_ITEM <list> <value>[<value> ...])
  list(REMOVE_AT <list><index> [<index> ...])
  list(REMOVE_DUPLICATES <list>)
  list(REVERSE <list>)
  list(SORT <list>)

LENGTH返回列表的长度

GET返回列表中指定下标的元素

APPEND添加新元素到列表中

INSERT 将新元素插入到列表中指定的位置

REMOVE_ITEM从列表中删除某个元素

REMOVE_AT从列表中删除指定下标的元素

REMOVE_DUPLICATES从列表中删除重复的元素

REVERSE 将列表的内容实地反转,改变的是列表本身,而不是其副本

SORT 将列表按字母顺序实地排序,改变的是列表本身,而不是其副本

列表的子命令APPEND, INSERT, REMOVE_AT, REMOVE_ITEM,REMOVE_DUPLICATES, REVERSE以及SORT在当前的CMake变量域创建一些新值。与SET命令类似,即使列表本身是在父域中定义的,LIST命令也只会在当前域创建新的变量值,为了将这些操作的结果向上传递,需要通过SET PARENT_SCOPE, SET CACHE INTERNAL或其他值域扩展的方法。

注意:cmake中的列表是以分号隔开的一组字符串。可以使用set命令创建一个列表。例如:set(var a b c d e)创建了一个这样的列表:a;b;c;d;e。 set(var “a b c d e”)创建了一个字符串或只有一个元素的列表。

当指定索引值时,<element index>为大于或等于0的值。它从列表的开始处索引,0代表列表的第一个元素。如果<element index>为小于或等于-1的值,它从列表的结尾处索引,-1代表列表的最后一个元素。

 

 

 

There are two possible solutions:

Use file (GLOB ... instead of aux_source_directory with a globbing expression that does not match that one file but includes all the others, e.g.:

file(GLOB _srcFiles "src/f[1-3].cpp")

This will match match files f1.cppf2.cppf3.cpp, but not f4.cpp.

Or use aux_source_directory and then remove the file to be excluded explicitly with a list(REMOVE_ITEM command, e.g.:

  1.  
    aux_source_directory(src _srcFiles)
  2.  
    list(REMOVE_ITEM _srcFiles "src/f4.cpp")

 

备注: 在 list remove 的时候,字符串一定要保持一致,使用 MESSAGE(STATUS xxx) 打印出来,是个不错的选择。

posted on   DoubleLi  阅读(2266)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2019-10-23 集中式VS分布式
2012-10-23 VC对话框全屏显示及相应控件位置改变(转)
2012-10-23 CenterWindow()的用法 .
2012-10-23 SystemParametersInfo系统信息获取与设置,慎用
2012-10-23 在MFC中从中如何制作图形按钮 .
2012-10-23 如何给MFC对话框添加背景图片 .
2012-10-23 MFC程序执行顺序 .
点击右上角即可分享
微信分享提示