zoukankan      html  css  js  c++  java
  • CMake 按照文件目录组织VS工程的筛选器

    macro(group_src_by_dir src_files)
        foreach(file_path ${${src_files}})
            string(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/(.*) \1 relative_path ${file_path})
            string(REGEX MATCH ".+\.c.*" is_match ${relative_path})
            if(is_match)
                string(REGEX REPLACE "(.+)\.c.*" \1 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}/(.*) \1 relative_path ${file_path})
            string(REGEX REPLACE "(.+)\..*" \1 relative_group ${relative_path})
            list(FIND c_groups ${relative_group} index)
            if(NOT index LESS 0)
                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 "(.+)/.*" \1 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文件,则会将这两个文件组织到同一个筛选器中.

    效果:

  • 相关阅读:
    咏南微服务架构中间件
    几个开源的clickstream 分析工具
    partiql 学习一 试用
    partiql 亚马逊开源的基于sql 的查询语言
    cube.js 最新版本的一些特性
    astronomer 企业级的airflow 框架
    neodash 构建neo4j dashboard 的工具
    开发自定义的dremio 函数
    dremio sql 操作
    dremio 生产部署推荐硬件配置
  • 原文地址:https://www.cnblogs.com/tangxin-blog/p/8110186.html
Copyright © 2011-2022 走看看