追着幸福跑|python与cmake结合,实现自动生成工厂类,解锁新技能( 二 )


总结列出正则表达式几个关键符号的含义
比如正则表达式“^(123)(456)21$”,那么字符串“123456456123” , 则能够被正则表达式匹配到 。
解析路径假设现在有如下路径“the/picture/ACmd.cpp.py”,那么如何提取目录和CPP文件呢?
如果想要提取目录 , 那么输入正则表达式”^(.+/).+.py”,则符号()匹配到的字符串为“the/picture/” 。 注意.py前面的符号“”,是转义符号 , 表示.不作为关键符号处理 。
如果想要提取CPP文件 , 那么输入正则表达式“^(.+).py”,则符号()匹配到的字符串为“the/picture/ACmd.cpp”
自动调用下面列出嵌入到cmake文件中自动调用python文件的代码段 。
file是递归查找${PROJECT_SOURCE_DIR}/*.py匹配到的所有文件 , 然后存储到PY_FILES 。 PROJECT_SOURCE_DIR是cmake内置的定义 , 表示工程源代码目录 。
string则利用正则表达式来提取目录和文件 , string的结构如下图所示 。 正则表达式的含义上一节已经说明了 。 这里有一个需要注意的是”1″,它的功能就是正则表达式中的”1″,那么为什么会多出一个“”,个人理解符号“”也是cmake的关键符号 , 所以需要先转义一层 。
总结【追着幸福跑|python与cmake结合,实现自动生成工厂类,解锁新技能】本文首先基于python , 实现了从枚举类型中提取创建对象 , 然后自动生成工厂类文件的python文件 , 接着将实现的python文件集成到cmake中 , 从而在编译代码时 , 自动生成工厂类文件 , 因此 , 解决了创建相似代码的重复性动作的问题 。


推荐阅读