面向操作系统的编译构建文件管理方法及系统
- 国知局
- 2024-07-31 22:52:14
本发明涉及软件工程,具体涉及一种面向操作系统的编译构建文件管理方法及系统。
背景技术:
1、声明式编译构建管理工具(如cmake、generate ninja等)是面向大型软件工程(如操作系统源代码)的有效编译构建管理工具,相比脚本式(如makefile),它的声明式语法使编译体系变得灵活且易于维护。目前声明式操作系统编译构建管理工具已经在openharmony、chromium、fuchsia等国内外著名大型开源项目中得到了广泛的应用。声明式编译构建管理工具需要通过识别分布在项目工程目录下的声明式编译构建文件(下称“声明文件”)来识别待编译的模块和各项属性,因此开发者需要声明文件的dsl在工程目录的对应位置创建相关文件并声明模块。以openharmony操作系统工程为例,内部存在数百个声明文件,声明了数千个待编译模块,每个待编译模块中又会存在数个至数十个的声明性字段,同时待编译模块还会作为其它待编译模块的待编译依赖,形成多级的、交叉的依赖关系。这使得开发人员不但需要负责业务逻辑的实现,还需要花费大量时间和精力在解析声明文件的dsl,阅读和修改声明文件上,导致开发、移植效率缓慢,并给操作系统的裁剪与定制化工作造成困难。
技术实现思路
1、本发明的目的在于提供一种面向操作系统的编译构建文件管理方法及系统,提供声明文件的可视化能力和无代码的声明文件操作能力,帮助项目开发/管理人员从复杂的声明文件组织结构分析和语法分析中分离出来,专注于业务逻辑的开发工作,提高相应的工程开发效率,支撑openharmony等操作系统的模块化设计/裁剪工作,对操作系统及其相关软件定制平台构建提供核心技术支持,解决上述背景技术中提出的问题。
2、为实现上述目的,本发明采用如下技术方案:
3、一种面向操作系统的编译构建文件管理方法,所述方法包括:
4、根据声明文件路径,生成一项目工程的声明文件组织关系结构,并获取对应的引入文件;
5、依据所述声明文件组织关系结构,并结合对应的引入文件对每个声明文件执行dsl语法分析,以确定待编译模块的编译信息;
6、将每一个待编译模块视为一个节点,构建节点列表;其中,所述节点列表中每一节点的节点描述符基于声明文件的路径和待编译模块的名称建立;
7、基于生成的节点列表进行声明文件的管理。
8、进一步地,依据结合对应的引入文件对每个声明文件执行dsl语法分析,以确定待编译模块的编译信息,包括:
9、将引入文件扩写到声明文件的头部后,遍历所有的参数声明字段;
10、依据所述参数声明字段,获取该项目工程内所有dsl参数的值和相应的作用域;
11、在各个dsl参数的作用域内,依据声明文件的dsl语法确定待编译模块的编译信息。
12、进一步地,所述编译信息包括:编译模板类型、头文件依赖项、源文件依赖项、待编译模块依赖项和其它自定义信息。
13、进一步地,将每一个待编译模块视为一个节点,构建节点列表,包括:
14、基于头文件依赖项、源文件依赖项、待编译模块依赖项和其它自定义信息,分别生成头文件列表、源码文件列表、链接文件列表和自定义字段列表;
15、分析编译参数,保存为编译参数列表;
16、分别建立头文件依赖列表、源码文件依赖列表、链接文件依赖列表、编译参数列表以及自定义字段列表与声明文件的行映射关系;
17、建立识别描述符与声明文件的行映射关系。
18、进一步地,所述基于生成的节点列表进行声明文件的管理,包括:
19、将节点列表中的每一节点以树状图的形式进行显示;其中,所述树状图的根节点为节点描述符,头文件依赖列表、源码文件依赖列表、待编译依赖列表和自定义字段列表为子节点,头文件依赖项、源码文件依赖项、编译参数和其它自定义信息为结点;
20、在获取使用者对一节点的查看请求时,通过检索节点列表或节点描述符的搜索找到且显示对应的节点,并递归地查找该节点所有待编译依赖项的待编译依赖项,直至一待编译依赖项不存在待编译依赖项,向使用者展示所有查找结果的头文件依赖项、源码文件依赖项、待编译依赖项、编译参数和其它自定义信息;
21、在获取使用者对一节点的修改请求时,通过ui操作实现节点信息的增加、删除和修改,且相应的修改会通过对应的列表项与声明文件的行映射关系反映在相应的声明文件中;
22、在获取使用者对一节点的增加或删除请求时,通过ui操作实现节点的增加或删除,且相应的修改会通过识别描述符与声明文件的行映射关系反映在声明文件中。
23、一种面向操作系统的编译构建文件管理系统,所述系统包括:
24、文件组织架构分析模块,用于根据声明文件路径,生成一项目工程的声明文件组织关系结构,并获取对应的引入文件;
25、dsl语法分析模块,用于依据所述声明文件组织关系结构,并结合对应的引入文件对每个声明文件执行dsl语法分析,以确定待编译模块的编译信息;
26、编译信息分析模块,用于将每一个待编译模块视为一个节点,构建节点列表;其中,所述节点列表中每一节点的节点描述符基于声明文件的路径和待编译模块的名称建立;
27、节点解析和操作模块,用于基于生成的节点列表进行声明文件的管理。
28、进一步地,所述系统还包括:可视化展示模块;其中,所述可视化展示模块,用于:
29、将节点列表中的每一节点以树状图的形式进行显示;其中,所述树状图的根节点为节点描述符,头文件依赖列表、源码文件依赖列表、待编译依赖列表和自定义字段列表为子节点,头文件依赖项、源码文件依赖项、编译参数和其它自定义信息为结点;
30、在获取使用者对一节点的查看请求时,通过检索节点列表或节点描述符的搜索找到且显示对应的节点,并递归地查找该节点所有待编译依赖项的待编译依赖项,直至一待编译依赖项不存在待编译依赖项,向使用者展示所有查找结果的头文件依赖项、源码文件依赖项、待编译依赖项、编译参数和其它自定义信息。
31、进一步地,所述系统还包括:可视化操作模块;其中,所述可视化操作模块,用于:
32、在获取使用者对一节点的修改请求时,通过ui操作实现节点信息的增加、删除和修改,且相应的修改会通过对应的列表项与声明文件的行映射关系反映在相应的声明文件中;
33、在获取使用者对一节点的增加或删除请求时,通过ui操作实现节点的增加或删除,且相应的修改会通过识别描述符与声明文件的行映射关系反映在声明文件中。
34、一种计算机设备,所述计算机设备包括:处理器以及存储有计算机程序指令的存储器;所述处理器执行所述计算机程序指令时实现上述任一项所述的面向操作系统的编译构建文件管理方法。
35、一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述任一项所述的面向操作系统的编译构建文件管理方法。
36、与现有技术相比,本发明具有以下技术优势:
37、在未采用本发明提供的声明文件的解析和可视化操作系统的情况下,开发者为了分析模块的依赖关系需要花费大量的时间在dsl语法的分析和逐级分析待编译模块依赖上,同时开发者为了修改模块的编译信息也需要额外掌握对应的dsl编写。导致开发者在复杂的声明文件组织结构分析和语法分析中花费了大量的时间和精力,影响开发效率。而本发明公布的声明文件的解析和可视化操作系统可以帮助项目开发/管理人员从复杂的声明文件组织结构分析和语法分析中分离出来,专注于业务逻辑的开发工作,提高相应的工程开发效率。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195091.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表