# project_example **Repository Path**: sky-heaven/project_example ## Basic Information - **Project Name**: project_example - **Description**: 单仓库、多仓库管理方案 - **Primary Language**: C/C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-09-01 - **Last Updated**: 2022-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CMake工程管理实例 子仓库组织结构示例 - 3rd:存放第三方或开源的仓库,在cmake执行时下载; - docs:存放本模块设计文档、使用说明文档和相关资料; - cmake:存放cmake构建所需要的文件、配置等相关信息; - source:存放本模块的全部源代码,内部结构以模块设计为准; - vendor:存放SOC平台相关的完整SDK,常用于交叉编译的情况; - examples:存放本模块的使用示例,与docs的文档一起指导用户快速上手; - unittest:存放本模块的单元测试用例,用于对接Jenkins实现自动化测试; - README.md:本模块的总述,包括模块概述、版本说明、修改历史等信息; - .gitignore:CMake工程标准过滤内容,具体仓库可视情况修改; todo: - 如果是交叉环境编译,需要注意vendor的编译顺序,以及交叉编译工具导入的方法和位置 - 多级包含vendor目录结构要如何处理?交叉工具只能引入一次! - 项目名称、版本号等信息统一放在一个文件中进行描述. rules: - 如果source依赖3rd的库,则依赖关系在cmake/dependence.txt中指定; - 3rd和vendor中的add\_subdirectory(source\_dir binary\_dir)两个选项都需要指定,否则编译位置会出错; - 同一项目的不同仓库依赖同一个仓库的不同分支/Tag/Commit,采用多次拉去到不同目录的方法解决.