# CMake-learning **Repository Path**: Lxk_buaa/cmake-learning ## Basic Information - **Project Name**: CMake-learning - **Description**: 本仓库代码完成CMake官方提供的练习题。 练习题下载:https://cmake.org/cmake/help/v3.27/guide/tutorial/index.html#guide:CMake%20Tutorial - **Primary Language**: C/C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-06-27 - **Last Updated**: 2025-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CMake Tutorial #### 介绍 cmake-3.27.0-rc3-tutorial-source.zip压缩包是官方网站下载练习题的。 #### 软件架构 软件架构说明 1. Step1包括三个EX,通过这三个训练,实现创建一个最简单的CMake工程,熟悉CMake基本的语法、变量和命令,以及通过CMakeLists文件向源文件传递数据。EX1是一个最基本的CMake工程,仅在CMakeLists文件中添加三条命令就可以编译单个源文件;EX2为C++指定标准并打印验证;EX3在CMakeLists文件中添加版本号,配置头文件向源文件中传递参数。 2. Step2包括两个EX,练习添加自定义库。EX1实现当源文件分文件夹时,能够将文件夹包含到头文件搜索路径中,并将可执行文件链接自定义库。进一步EX2将自定义库设置为可选的,通过option与cmakedefine来实现选择不同的库函数。 3. Step3包括两个EX。EX1练习为库添加使用依赖,用户不用在使用库时额外添加库的依赖。区分INTERFACE、PUBLIC和PRIVATE。EX2使用接口库指定C++版本。 4. Step4练习使用生成器表达式增加编译警告,生成器表达式将在生成阶段执行。 5. Step5练习安装(install)与测试(ctest) 6. Step6练习添加测试面板,未练习 7. Step7练习在项目中添加目标平台可能没有的功能的代码。编译阶段检测库中是否支持某功能,如果不支持就在源程序调用自己写的函数。掌握修改.h.in文件以外,向源文件传递变量的另一种方法。 8. Step8添加自定义命令和生成文件