CMake 按照文件目录组织VS工程的筛选器
macro(group_src_by_dir src_files)
foreach(file_path ${${src_files}})
string(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/\(.*\) \\ relative_path ${file_path})
string(REGEX MATCH ".+\\.c.*" is_match ${relative_path})
if(is_match)
string(REGEX REPLACE "(.+)\\.c.*" \\ cpp_relative_dir ${relative_path})
if(NOT cpp_relative_dir STREQUAL "main")
list(APPEND c_groups ${cpp_relative_dir})
endif()
endif(is_match)
endforeach(file_path) foreach(file_path ${${src_files}})
message(${file_path})
string(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/\(.*\) \\ relative_path ${file_path})
string(REGEX REPLACE "(.+)\\..*" \\ relative_group ${relative_path})
list(FIND c_groups ${relative_group} index)
if(NOT index LESS )
message(${relative_group})
string(REPLACE "/" "\\" relative_group ${relative_group})
source_group(${relative_group} FILES ${file_path})
else()
string(REGEX MATCH "(.+)/.*" has_group ${relative_path})
if(has_group)
string(REGEX REPLACE "(.+)/.*" \\ group ${relative_path})
string(REPLACE "/" "\\" group ${group})
message(${group})
source_group(${group} FILES ${file_path})
else()
message("")
source_group("" FILES ${file_path})
endif()
endif()
endforeach(file_path)
endmacro(group_src_by_dir)
该函数有两个效果:
1.按照代码文件在磁盘的目录结构来组织VS的筛选器结构
2.如果同一个目录下包含同名的.cpp和.h文件,则会将这两个文件组织到同一个筛选器中.
效果:


CMake 按照文件目录组织VS工程的筛选器的更多相关文章
- 使用qt creator来编译 调试 用CMakeLists组织的工程
爱情原如树叶一样,在人忽视里绿了,在忍耐里露出蓓蕾. -- 何其芳 使用CMake作为构建系统,需要自己写 ...
- VS工具如何新建筛选器
最近,遇到了一个问题,别人用VS工具新建了一个工程,不知道怎么的,就是没有办法新建筛选器. 今天,终于解决了,记录下,也希望能够帮助更多的人. 当我们的工程目录里的文件越来越多的时候,这时候需要建立帅 ...
- ISAPI筛选器及对ASP源文件的保护
ISAPI筛选器及对ASP源文件的保护 2009-04-21 01:45:57 标签:ISAPI 筛选器 ASP 源文件 保护 摘要:本文介绍了利用ISAPI筛选器保护ASP源文件的方法,并给出一个实 ...
- jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax
jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...
- HTTP 筛选器 DLL C:\Windows\Microsoft.Net\Framework\v4.0.30319\aspnet_filter.dll 加载失败。数据是错误。
今天在一台win2003的云主机上,安装.net 4.0时,所有的网站都打不开了.打开事件查看器,发现以下错误: HTTP 筛选器 DLL C:\Windows\Microsoft.Net\Frame ...
- 2019-11-29-VisualStudio-解决方案筛选器-slnf-文件
title author date CreateTime categories VisualStudio 解决方案筛选器 slnf 文件 lindexi 2019-11-29 08:41:13 +08 ...
- 2019-4-7-VisualStudio-解决方案筛选器-slnf-文件
title author date CreateTime categories VisualStudio 解决方案筛选器 slnf 文件 lindexi 2019-04-07 11:34:59 +08 ...
- 【WCF】自定义地址头的筛选器
前面的文章中,老周已向大伙伴们介绍了如何在终结点上使用地址头,只要服务是沿着该终结点调用的,那么每一次调用都会自动把地址头插入到SOAP消息的Header列表中. 而通过前一篇文章中的示例,大家也看到 ...
- [已解决]:调用 LoadLibraryEx 失败,在 ISAPI 筛选器 "c:\Windows\Microsoft.NET\Framework\v4.0.30319\\aspnet_filter.
现象:我的是 win7, iis7, 64bit, 打开网站错误如下: 错误摘要 HTTP 错误 500.0 - Internal Server Error 调用 LoadLibraryEx 失败,在 ...
随机推荐
- 【转】beyond compare 启动提示“应用程序发生错误”
[转]beyond compare 启动提示“应用程序发生错误” 今天到公司BCompare不能打开,重新安装也不能打开.最后处理下,就解决了.方法是把C:\Documents and Setti ...
- SHTSC2017酱油记~~~
一转眼,SHTSC2017就结束了呢... [前记] noip2016的时候,day2由于各种奇奇怪怪的原因,于是策略上犯错误,然后直接滚粗... 作为一个SHTSC2016年就莫名其妙当上B队队长的 ...
- linux精彩收集
----------------------------网络无关篇-------------------------- 0001 修改主机名(bjchenxu) vi /etc/sysconfig/n ...
- django视图重定向
# 原创,转载请留言联系 当请求访问到某个视图时,我们想让它重定向到其他页面,应该怎么做呢? 1.HttpResponseRedirect 需求:当我们访问127.0.0.1/my_redirect时 ...
- hdu 1162(最小生成树)
Eddy's picture Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- 使用overtrue/socialite实现第三方登陆
composer下载包 将申请的配置内容放在.ENV文件中 在services.php文件中引用 控制器 其他第三方登陆同理,拿到client_id,client_secret 和redirect_u ...
- Vue.js 2使用中的难点举例--子组件,slot, 动态组件,事件监听
一例打尽..:) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- [BZOJ1017][JSOI2008]魔兽地图DotR 树形dp
1017: [JSOI2008]魔兽地图DotR Time Limit: 30 Sec Memory Limit: 162 MBSubmit: 2597 Solved: 1010[Submit][ ...
- POJ 1189 钉子和小球
题目链接:http://poj.org/problem?id=1189 dp 可以知道一共有2^n条路径,则设顶点有2^n个球,若当前为'*'则向左右的球各有一半:若为'.',则球全部掉入正下方. # ...
- 牛客网 暑期ACM多校训练营(第二场)D.money-贪心 or 动态规划
D.money 贪心,直接贴官方的题解吧. 题目大意 你要按照顺序依次经过n个商店,每到达一个商店你可以购买一件商品,也可以出售你手中的商品. 同一时刻你手上最多拿一件商品.在第i个商店购买和出售的代 ...