文章目录
- 0. 前言
- 1. 环境准备
- 2. 使用
- 2.1 生成工程
- 2.2 编译工程
- 3. 脚本内容介绍
- 3.1 sys包
- 3.2 os包
- 3.3 shutil包
- 3.4 CMake资源
- 3.5 资源下载
0. 前言
最近学习使用Google Test
为自己的垃圾代码做测试,但Google Test
支持CMake
来构建工程,于是学了学CMake
(见这篇文章CMake基础知识学习),顺便也想学学开源库的项目组织方式,发现也比较固定,基本上是几个文件夹各自放不同的内容。
笔者很懒,觉得既然组织方式比较固定,那或许可以搞一个脚本自动组织起来。
恰好最近学了点Python
,于是就用Python
写了个脚本来组织CMake
工程,并默认添加了Google Test
库用来测试,企图提高自己的代码水平👻。
笔者的项目环境一般是Win10
+MSVC2017-x64
。
1. 环境准备
-
Visual Studio
和MSVC
编译器,如果采用Google Test
的话,最好是都是2017
及以上版本;
笔者采用
MSVC2015
编译Google Test
会出错;
-
Python3
,用来运行py
脚本;下载地址Python 3; -
Git
,用来在Windows
上运行编译用的sh
脚本;下载地址Git; -
CMake
,下载地址CMake; -
Google Test
,用于测试代码,下载地址Google Test;如果采用MSVC2017-x64
也可以使用文章末尾编译好的资源。
2. 使用
2.1 生成工程
笔者将脚本放在了E:/create_cmake_project.py
路径下,Google Test
库的头文件和编译好的lib
文件位于E:/github_libs/GoogleTest/
。
在想要创建项目的目录下Shift
+右键,选择在此处打开 PowerShell 窗口,输入指令,回车即可:
py E:\create_cmake_project.py Test
目前脚本支持2
个参数,第一个是项目名称,第二个只支持no
来禁止生成Test
子项目。运行截图如下:
生成的目录如下:
2.2 编译工程
双击build.sh
文件,将打开Git Bash
开始执行cmake
,其源码如下:
#!/bin/bash
mkdir -p build
cd build
rm -rf *
cmake -T v141 -A x64 ..
echo ""
i=3
while ((i>0))
do
echo -ne "\rwaiting $i""s then exit..."
sleep 1s
((i=i-1))
done
执行效果如下图:
打开build
目录下的sln
文件,在ALL BUILD
工程上右键->重新生成:
将在项目的bin/Debug
目录下生成main.exe
和test.exe
,前者包含一个Hello World
输出,后者包含一个基本Google Test
测试用例,运行效果如下图:
3. 脚本内容介绍
这部分内容很简单,主要给自己做笔记了:
3.1 sys包
-
sys.exit()
:退出脚本; -
sys.argv
:获取控制台传入参数,可以用len()
函数获取数量;
3.2 os包
os
包主要用到以下方法:
-
os.path.exists(name)
:判断name
路径是否存在,相对路径; -
os.mkdir(name)
:在当前控制台目录下创建name
文件夹; -
os.chdir(name)
:进入相对目录,类似于cd
指令;
3.3 shutil包
-
shutil.copytree(srcdir, dstdir)
:复制目录;
3.4 CMake资源
如果对其中一些CMake
语法感兴趣,可以参考笔者这两篇文章:
- CMake基础知识学习
- CMake设置MSVC工程MT/MTd/MD/MDd
3.5 资源下载
如有错误欢迎指正,共同进步~