# cmake-demo **Repository Path**: ccqypp/cmake-demo ## Basic Information - **Project Name**: cmake-demo - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-02-18 - **Last Updated**: 2024-02-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MyCMakeApp > 此项目为共享项目,旨在为学习cmake提供一个示例基础教程。 ------------------------------------ ### 依赖关系 1. myapp 依赖 mylog和mylib两个子项目 2. mylib 依赖 mylog一个子项目 ![本地路径](doc/子项目依赖图.jpg "相对路径演示,上一级目录") ### Git管理 - myapp 有mylog和mylib两个子模块 - mylib 有mylog一个子模块 ### 开发流程 1. git clone https://gitee.com/ccqypp/cmake-demo.git 2. cd myapp 3. git submodule update --init --recursive 4. 使用qtcreator打开myapp下的CMakeLists.txt,也可用visual studio,vscode ,clion ### 建议说明(重要) 1. 建议在顶层项目中定义此变量,项目中添加子项目时增加此判断条件 ```cmake if(NOT EXIST_MYLOG)     add_subdirectory(pkt/mylog)     set(EXIST_MYLOG ON) endif() ```     此处已经添加了mylog子项目,做此标志是为了防止一个工程内重复添加子项目的错误。     **此处为项目约定,并不是语法,只是单纯为了解决项目间重复依赖** 2. 建议生成目标时为目标增加 `target_include_directories`头文件路径,非常不建议使用`include_directories`导入全局路径 3. 引入第三方库文件和头文件时,建议使用`target_link_directories`和`target_include_directories`单独未需要的目标进行操作 ### CMake基本教程 [CMake.md](doc/CMake.md) 此为收集到的基本语法,可查阅详细语法。不保证完全准确,如有疑问可自行测试,也可以提交修改。