cmake为visual studio 工程创建筛选器

默认vs filter

代码目录结构如下:

│  CMakeLists.txt
├─bin
│              
├─main
│      main.cpp
│      main.h
│      
├─math
│  │  kalman.cpp
│  │  kalman.h
│  │  
│  └─matrix
│          quat.cpp
│          quat.h
│          
└─uav
        control.cpp
        control.h

使用如下CMakeLists.txt

cmake_minimum_required(VERSION 2.8.9)
project(TEST)

set(SOURCES
main/main.h
main/main.cpp
math/kalman.h
math/kalman.cpp
math/matrix/quat.h
math/matrix/quat.cpp
uav/control.h
uav/control.cpp
)
add_executable(MAIN ${SOURCES})

那么生成的的工程文件中会有默认筛选器,Header Files 和 Source Files,如下,对于大型工程来说好多人不太习惯这种组织方式,而是想把同一类别头文件和源文件放一起,就如同代码的文件目录结构一致:
在这里插入图片描述

使用source_group建立筛选器

修改CMakeLists.txt如下:

cmake_minimum_required(VERSION 2.8.9)
project(TEST)

set(SOURCES
main/main.h
main/main.cpp
)
set(MATHSRC
math/kalman.h
math/kalman.cpp
)
set(MATSRC
math/matrix/quat.h
math/matrix/quat.cpp
)
set(UAVSRC
uav/control.h
uav/control.cpp
)
source_group(main FILES ${SOURCES})
source_group(math FILES ${MATHSRC})
source_group(math\\matrix FILES ${MATSRC})
source_group(uav FILES ${UAVSRC})

add_executable(MAIN ${SOURCES} ${MATHSRC} ${MATSRC} ${UAVSRC})

我们发现默认的两个筛选器Header Files 和 Source Files消失了。
在这里插入图片描述

demo project

点击此处查看示例项目github 代码

猜你喜欢

转载自blog.csdn.net/iceboy314159/article/details/104696565