在日常代码阅读中,经常需要从庞大的开源项目中提取感兴趣的文件编译一些Demo。然而,典型的情况下,一个普通的C++源文件通常都引用了许多其他的头文件,这些头文件本身可能很分散,甚至在不同位置和层次的目录结构中。tang-monk便是致力解决此类烦恼的开源项目,没错,它的名字就是唐僧。

tang-monk的实现原理非常简单:递归遍历源文件中依赖的所有文件,并依其实际目录结构组织新的项目。

目前tang-monk尚只实现初步框架,在文件依赖较少的情景中可以很好地工作,但是无法处理一些复杂的情况,如函数的的实现很隐蔽、项目编译需要一些特别的宏等诸多情况。

如果您对这个项目有兴趣,欢迎在Github上fork之:tang-monk