CN116661757A - 一种程序模块化的文件优先编译系统和方法 - Google Patents
一种程序模块化的文件优先编译系统和方法 Download PDFInfo
- Publication number
- CN116661757A CN116661757A CN202310919627.6A CN202310919627A CN116661757A CN 116661757 A CN116661757 A CN 116661757A CN 202310919627 A CN202310919627 A CN 202310919627A CN 116661757 A CN116661757 A CN 116661757A
- Authority
- CN
- China
- Prior art keywords
- source
- file
- compiling
- source file
- files
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000012986 modification Methods 0.000 claims abstract description 84
- 230000004048 modification Effects 0.000 claims abstract description 84
- 238000013507 mapping Methods 0.000 claims description 7
- 238000002054 transplantation Methods 0.000 claims description 4
- 238000013508 migration Methods 0.000 claims 1
- 230000005012 migration Effects 0.000 claims 1
- 238000011161 development Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种程序模块化的文件优先编译系统和方法,该系统包括优先权设定工具和源文件修改模块,优先权设定工具用于为指定文件的编辑和/或编译设定优先权;源文件修改模块用于当需要修改某个源文件时,利用优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到源文件修改模块中;源文件修改模块中设置有编译器,源文件修改模块还用于对源文件进行编辑,然后通过编译器进行编译;编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
Description
技术领域
本发明涉及文件编译技术领域,具体涉及一种程序模块化的文件优先编译系统和方法。
背景技术
UEFI(Unified Extensible Firmware Interface的缩写)即统一可扩展固件接口,是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。Aptio是AMI公司基于UEFI规范使用 C语言开发出的全新BIOS产品。在UEFI BIOS固件开发中,涉及到上游厂商不定期的代码库(codebase)更新,OEM厂商需要将原代码库大量的源代码以及编译环境的修改融合到新代码库中来;现有技术中常规的做法是在新的代码库中,将原来的代码和编译环境修改过来的地方,在新代码库中,找到相应的位置,移植进来;这样,当代码修改量越来越大,代码库又频繁更新时,会带来越来越多的重复移植和测试验证,给项目进度带来很大的延时。
发明内容
本发明旨在提供一种程序模块化的文件优先编译系统,所要解决的技术问题至少包括如何节省大量源代码修改的时间,提升UEFI固件的开发效率。
为了实现上述目的,本发明提供一种程序模块化的文件优先编译系统,包括优先权设定工具和源文件修改模块,所述的优先权设定工具用于为指定文件的编辑和/或编译设定优先权;所述的源文件修改模块用于当需要修改某个源文件时,利用所述的优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;所述的源文件修改模块中设置有编译器,所述的源文件修改模块还用于对源文件进行编辑,然后通过所述的编译器进行编译;所述的编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
优选地,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件。
优选地,当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
优选地,所述优先权设定工具能够为待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中。
优选地,当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出。
优选地,将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件。
优选地,当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到原先备份的源文件的最初的目录中,从而实现源文件修改模块的移植和/或调试。
本发明还提供一种程序模块化的文件优先编译方法,包括以下步骤:
第一步、开发能为指定文件的编辑和/或编译设定优先权的优先权设定工具;
第二步、在源代码中,增加一个源文件修改模块,当需要修改某个源文件时,利用该优先权设定工具,将该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;
第三步、在所述的源文件修改模块中,对文件进行编辑,然后进行编译,编译器在编译源文件时,调用该源文件修改模块中所有被修改的文件,默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
优选地,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件;当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
优选地,所述的优先权设定工具的开发包括以下几个步骤:
a).将待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中;
b).当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出;
c).将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件;
d).当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到源文件最初的目录中,从而实现源文件修改模块的移植和/或调试。
有益效果
与现有技术相比,本发明的有益效果是:
本发明所述的程序模块化的文件优先编译系统和方法针对编译器更新时,需要做大量重复性工具和环境变量配置的问题,通过加载开发好的优先权设定工具和源文件修改模块,可以节省开发人员的时间,提升开发效率,也有利于减少因为工具版本造成的目标文件不稳定,或不开机等现象。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的具体实施方式一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明所述的程序模块化的文件优先编译系统的结构示意图。
具体实施方式
在下文中更详细地描述了本发明以有助于对本发明的理解。
如图1所示,本发明所述的程序模块化的文件优先编译系统包括优先权设定工具和源文件修改模块,所述的优先权设定工具用于为指定文件的编辑和/或编译设定优先权;所述的源文件修改模块用于当需要修改某个源文件时,利用所述的优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;所述的源文件修改模块中设置有编译器,所述的源文件修改模块还用于对源文件进行编辑,然后通过所述的编译器进行编译;所述的编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
优选地,所述优先权设定工具的开发包括以下几个步骤:
a).将待修改的源文件设定编辑、编译优先级,并将其映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中;
b).当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出;
c).将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应文件目录信息,备份当前代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件;
d).当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到其最初的目录中,从而实现源文件修改模块的移植,调试。
本发明在现有的代码库中,开发特定的工具(即所述的优先权设定工具),建立一个源代码修改模块(即源文件修改模块),当在源代码中有相应的文件要被修改前,在Aptio统一可扩展固件接口编译环境下,调用该特定的工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件;当代码库更新时,将该源文件修改模块导出,加载到新代码库中,源文件修改模块中的文件根据特定工具的判定,覆盖新代码库中的源文件,从而实现该源文件修改模块中文件的优先编译,从而节省大量源代码修改的时间,提升了UEFI固件开发效率。
本发明还提供一种程序模块化的文件优先编译方法,包括以下步骤:
第一步、开发能为指定文件的编辑和/或编译设定优先权的优先权设定工具;
第二步、在源代码中,增加一个源文件修改模块,当需要修改某个源文件时,利用该优先权设定工具,将该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;
第三步、在所述的源文件修改模块中,对文件进行编辑,然后进行编译,编译器在编译源文件时,调用该源文件修改模块中所有被修改的文件,默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
以上描述了本发明优选实施方式,然其并非用以限定本发明。本领域技术人员对在此公开的实施方案可进行并不偏离本发明范畴和精神的改进和变化。
Claims (10)
1.一种程序模块化的文件优先编译系统,其特征在于,所述的程序模块化的文件优先编译系统包括优先权设定工具和源文件修改模块,所述的优先权设定工具用于为指定文件的编辑和/或编译设定优先权;所述的源文件修改模块用于当需要修改某个源文件时,利用所述的优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;所述的源文件修改模块中设置有编译器,所述的源文件修改模块还用于对源文件进行编辑,然后通过所述的编译器进行编译;所述的编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
2.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件。
3.根据权利要求2所述的程序模块化的文件优先编译系统,其特征在于,当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
4.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,所述优先权设定工具能够为待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中。
5.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出。
6.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件。
7.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到原先备份的源文件的最初的目录中,从而实现源文件修改模块的移植和/或调试。
8.根据权利要求1至7任一项所述的程序模块化的文件优先编译系统的编译方法,其特征在于,包括以下步骤:
第一步、开发能为指定文件的编辑和/或编译设定优先权的优先权设定工具;
第二步、在源代码中,增加一个源文件修改模块,当需要修改某个源文件时,利用该优先权设定工具,将该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;
第三步、在所述的源文件修改模块中,对文件进行编辑,然后进行编译,编译器在编译源文件时,调用该源文件修改模块中所有被修改的文件,默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
9. 根据权利要求8所述的编译方法,其特征在于,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件;当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
10.根据权利要求8所述的编译方法,其特征在于,所述的优先权设定工具的开发包括以下几个步骤:
a).将待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中;
b).当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出;
c).将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件;
d).当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到源文件最初的目录中,从而实现源文件修改模块的移植和/或调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919627.6A CN116661757B (zh) | 2023-07-26 | 2023-07-26 | 一种程序模块化的文件优先编译系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310919627.6A CN116661757B (zh) | 2023-07-26 | 2023-07-26 | 一种程序模块化的文件优先编译系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116661757A true CN116661757A (zh) | 2023-08-29 |
CN116661757B CN116661757B (zh) | 2023-10-03 |
Family
ID=87717374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310919627.6A Active CN116661757B (zh) | 2023-07-26 | 2023-07-26 | 一种程序模块化的文件优先编译系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116661757B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6804682B1 (en) * | 2002-04-29 | 2004-10-12 | Borland Software Corporation | System and methodology providing compiler-assisted refactoring |
CN106648681A (zh) * | 2016-12-29 | 2017-05-10 | 南京科远自动化集团股份有限公司 | 一种可编程语言编译装载系统及方法 |
CN114138281A (zh) * | 2021-12-08 | 2022-03-04 | 京东科技控股股份有限公司 | 软件工程的编译方法、装置、设备及介质 |
CN115033249A (zh) * | 2022-06-30 | 2022-09-09 | 北京奥星贝斯科技有限公司 | 文件编译方法以及装置 |
CN115756451A (zh) * | 2022-12-16 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 一种多项目代码文件重用的方法、装置、设备、存储介质 |
CN115827056A (zh) * | 2023-02-01 | 2023-03-21 | 北京乐研科技股份有限公司 | 一种配置多种编译环境变换的方法 |
-
2023
- 2023-07-26 CN CN202310919627.6A patent/CN116661757B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6804682B1 (en) * | 2002-04-29 | 2004-10-12 | Borland Software Corporation | System and methodology providing compiler-assisted refactoring |
CN106648681A (zh) * | 2016-12-29 | 2017-05-10 | 南京科远自动化集团股份有限公司 | 一种可编程语言编译装载系统及方法 |
CN114138281A (zh) * | 2021-12-08 | 2022-03-04 | 京东科技控股股份有限公司 | 软件工程的编译方法、装置、设备及介质 |
CN115033249A (zh) * | 2022-06-30 | 2022-09-09 | 北京奥星贝斯科技有限公司 | 文件编译方法以及装置 |
CN115756451A (zh) * | 2022-12-16 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 一种多项目代码文件重用的方法、装置、设备、存储介质 |
CN115827056A (zh) * | 2023-02-01 | 2023-03-21 | 北京乐研科技股份有限公司 | 一种配置多种编译环境变换的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116661757B (zh) | 2023-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6374401B1 (en) | System, method, and program for updating registry objects with a cross-platform installation program | |
US5835777A (en) | Method of automatically generating a software installation package | |
US6442754B1 (en) | System, method, and program for checking dependencies of installed software components during installation or uninstallation of software | |
US6687902B1 (en) | Method, system, and program for deleting user selected file sets of a program | |
US6230316B1 (en) | Patching rebased and realigned executable files | |
CN104714788B (zh) | 一种软件安装包自动生成的方法及装置 | |
CN106406960B (zh) | 一种linux环境中快速部署软件的方法 | |
CN102156643A (zh) | 软件集成方法及系统 | |
US6961931B2 (en) | Dependency specification using target patterns | |
US6507948B1 (en) | Method, system, and program for generating batch files | |
US6631521B1 (en) | System, method, and program for performing program specific operations during the uninstallation of a computer program from a computer system | |
EP3698241A1 (en) | Using semantic annotations to control compatibility behaviors | |
CN1193775A (zh) | 软只读存储器 | |
US6629316B1 (en) | Overriding program properties using a specially designated environment variable statement | |
CN104503772A (zh) | 基于虚拟机的操作系统安装、测试环境搭建的方法和装置 | |
CN111061486B (zh) | 一种安卓应用程序增量方法 | |
CN115756451A (zh) | 一种多项目代码文件重用的方法、装置、设备、存储介质 | |
CN110659088B (zh) | 一种嵌入式环境下程序扩展的方法及系统 | |
CN103645888A (zh) | 一种自动构建操作系统的系统及方法 | |
CN116661757B (zh) | 一种程序模块化的文件优先编译系统和方法 | |
CN115827056B (zh) | 一种配置多种编译环境变换的方法 | |
CN109766125B (zh) | 批次间追平冲突的识别方法及装置 | |
CN111913740A (zh) | 一种基于fpga的risc-v处理器上的实时操作系统移植方法 | |
CN116028084A (zh) | 一种基于OpenStack云平台跨版本热升级的方法、系统及终端 | |
CN115456628A (zh) | 基于区块链的智能合约查看方法、装置、存储介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |