专利名称:一种开发环境转换的方法及装置的制作方法
技术领域:
本发明涉及软件开发领域,尤其涉及一种开发环境转换的方法及装置。
背景技术:
软件开发工具包(SDK, Software Development Kit)和集成开发环境(IDE, Integrated Develop Environment)为目前常见的两种手机客户端软件开发环境。SDK和 IDE中,均通过Make文件(makefile)来对工程中的源文件进行编译配置,具体为对于工 程中按类型、功能、模块分别放在若干个目录中的众多源文件,通过在makefile中定义一 系列规则指定哪些源文件需要先编译、哪些源文件需要后编译、哪些源文件需要重新编译 等,实现对其的编译配置。 其中,SDK中,一般支持用户使用命令行手工编写makefile ;而IDE中则提供 用户可视化的界面供用户输入编译参数,并自动生成makefile,—般不接受用户手写 makefile,即用户在SDK中手工编写makefile不为IDE所接受,这样,用户选用SDK开发一 项工程,开发过程中却又希望转换至IDE中继续开发,则需要在IDE中输入编译参数,重新 生成makefile,而如果工程较大、且在SDK中进行了大量开发时,对应于已编写的大量源文 件,则重新生成的makefile会包括大量规则,相应的,输入编译参数的操作量也极大,实现 转换所需的时间及劳动量极为可观。
发明内容
有鉴于此,本发明的主要目的在于提供一种开发环境转换的方法及装置,能够大 大降低将SDK中的工程转换至IDE所需的时间及劳动量。
为达到上述目的,本发明的技术方案是这样实现的 —种开发环境转换的方法,在软件开发工具包(SDK)的makefile中增加输出编译 参数的规则,输入将工程由SDK转换至集成开发环境(IDE)的命令时,该方法还包括
调用Make工具解释、执行SDK的makefile中除所增加的规则外的其余规则,编译 工程的源文件,并解释、执行SDK的makefile中所增加的规则,输出编译过程中所涉及的编 译参数; IDE中的编译器根据所述编译参数自动生成makefile。 进一步地,所述输出编译过程中所涉及的编译参数后,该方法还包括 将输出的编译参数存储至日志文件;并通过实用报表提取语言(PERL)将日志文
件转换为可扩展标记语言(XML)文件。 进一步地,所述IDE根据所述编译参数自动生成makefile前,该方法还包括
IDE中的向导读入转换得到的XML文件,解析读入XML文件得到编译参数,并发至 IDE中的编译器。 进一步地,所述编译参数包括编译工具、依赖文件的存储地址、依赖文件间的相 互关系、目标文件的名称和目标文件的存储地址。
本发明还提供一种开发环境转换的装置,该装置包括设置于SDK的手写模块、命 令接收模块、调用模块,设置于IDE的编译器;其中, 手写模块,用于在SDK的makefile中增加输出编译参数的规则; 命令接收模块,用于接收用户输入的将工程由SDK转换至IDE的命令,并触发调用
模块; 调用模块,用于调用Make工具解释、执行SDK的makefile中除所增加的规则外的 其余规则,编译工程的源文件,并解释、执行SDK的makefile中所增加的规则,输出编译过 程中所涉及的编译参数; 编译器,用于根据所述编译参数自动生成makef ile。
进一步地,该装置还包括 设置于SDK的存储转换模块,用于将输出的编译参数存储至日志文件;并通过 PERL将日志文件转换为XML文件。
进一步地,该装置还包括 设置于IDE的向导模块,用于读入转换得到的XML文件,解析读入XML文件得到编 译参数,并发至所述编译器。 本发明所提供的开发环境转换的方法及装置,通过在SDK的makefile中增加输出 编译参数的规则来输出编译参数,IDE中的编译器根据所述编译参数自动生成makefile, 实现将工程由SDK转换至IDE,省略了人为输入编译参数所耗的劳动量,且输出编译参数的 速度较人为输入编译参数相比要快的多,因而大大降低将SDK中的工程转换至IDE所需的 时间及劳动量。
图1为本发明实施例开发环境转换方法的实现流程图;
图2为本发明实施例开发环境转换装置的结构示意图。
具体实施例方式
本发明实施例开发环境转换方法的实现流程如图1所示,具体包括以下步骤 步骤101 :在SDK的makefile中增加输出编译参数的规则。以下以可实现所述输
出编译参数的规则的代码为例,具体说明如何通过所述输出编译参数的规则输出编译过程
中所涉及的编译参数 infogen : @echo Infogen ! ! ! echo Start logging.…> $ (IDE) @echo. >> $(IDE) @echo Project info. >>$(IDE) @echo FLAV0R@ = = $ (FLAVOR) > > $ (IDE) @echo C0MPILER@ == $ (COMPILER) >> $ (IDE) @echo 0STYPE@ == $ (0STYPE) >> $ (IDE) @echo PRJ_PATH@ = = $ (PRJ_PATH) > > $ (IDE)
@echo DEFINE@ == $ (DEFINE) >> $ (IDE)
@echo STDINCLUDE@ == $ (STDINCLUDE) >> $ (IDE)
@echo INCLUDE@ == $ (INCLUDE) >> $ (IDE)
@echo CCFLAGS@ = = $ (CCFLAGS) > > $ (IDE)
@echo ASFLAGS@ = = $ (ASFLAGS) > > $ (IDE)
@echo ARFLAGS@ = = $ (ARFLAGS) > > $ (IDE)
@echo C0MPLIST@ == $(C0MPLIST) >> $ (IDE) 以上代码作为makefile的一个目标独立运行,运行该代码可得到编译参数,例 如,运行',echo FLAVOR@ = = $ (FLAVOR) >> $ (IDE)"输出FLAVOR@ = = debug,即输出编 译工具为debug。 本发明实施例,在用户输入将工程由SDK转换至IDE的命令时,执行步骤102、 103。
步骤102 :调用Make工具解释、执行SDK的makefile中除所增加的规则外的其余 规则,编译工程的源文件,并解释、执行SDK的makefile中所增加的规则,输出编译过程中 所涉及的编译参数; 所述makefile中除所增加的规则外的其余规则指定了编译工具、依赖文件、依赖 文件间的相互关系及目标文件的存储地址等,Make工具依据所述makefile中除所增加的 规则外的其余规则编译工程源文件。 这里,所述编译参数包括编译工具、依赖文件的存储地址、依赖文件间的相互关 系、目标文件的名称和目标文件的存储地址,每个编译参数均只包括一个目标文件的名称, 即在编译中,每得到一个目标文件,即输出一个其对应的编译参数,具体的所输出的编译 参数中,编译工具为得到该目标文件所采用的编译工具,而得到目标文件的编译过程可描 述为根据依赖文件间的相互关系编译依赖文件的存储地址指示的依赖文件,即得到目标 文件,目标文件的名称和目标文件的存储地址即分别为该目标文件的名称和存储地址。
其中,所述输出编译过程中所涉及的编译参数后,步骤102还包括将输出的编译 参数存储至日志文件,并通过实用报表提取语言(PERL,PracticalExtraction and R印ort Language)将日志文件转换为可扩展标记语言(XML, Extensible Markup Language)文件; 这里,将日志文件转换为XML文件是为了更容易从中解析出编译参数。
步骤103 :IDE中的编译器根据所述编译参数自动生成makefile,完成将工程由 SDK转换至IDE,结束本次转换流程。 这里,所述IDE中的编译器根据所述编译参数自动生成makefile具体为 IDE中的向导读入转换得到的XML文件,解析读入的XML文件得到编译参数,并发
至IDE中的编译器。 本发明实施例开发环境转换装置的结构如图2所示,包括设置于SDK的手写模
块、命令接收模块、调用模块,设置于IDE的编译器;其中, 手写模块,用于在SDK的makefile中增加输出编译参数的规则; 命令接收模块,用于接收用户输入的将工程由SDK转换至IDE的命令,并触发调用
模块; 调用模块,用于调用Make工具解释、执行SDK的makefile中除所增加的规则外的 其余规则,编译工程的源文件,并解释、执行SDK的makefile中所增加的规则,输出编译过程中所涉及的编译参数; 编译器,用于根据所述编译参数自动生成makefile。
进一步地,该装置还包括 设置于SDK的存储转换模块,用于将输出的编译参数存储至日志文件;并通过PERL将日志文件转换为XML文件。
进一步地,该装置还包括 设置于IDE的向导模块,用于读入转换得到的XML文件,解析读入XML文件得到编译参数,并发至所述编译器。 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
一种开发环境转换的方法,其特征在于,在软件开发工具包(SDK)的makefile中增加输出编译参数的规则,输入将工程由SDK转换至集成开发环境(IDE)的命令时,该方法还包括调用Make工具解释、执行SDK的makefile中除所增加的规则外的其余规则,编译工程的源文件,并解释、执行SDK的makefile中所增加的规则,输出编译过程中所涉及的编译参数;IDE中的编译器根据所述编译参数自动生成makefile。
2. 根据权利要求1所述开发环境转换的方法,其特征在于,所述输出编译过程中所涉 及的编译参数后,该方法还包括将输出的编译参数存储至日志文件;并通过实用报表提取语言(PERL)将日志文件转 换为可扩展标记语言(XML)文件。
3. 根据权利要求2所述开发环境转换的方法,其特征在于,所述IDE根据所述编译参数 自动生成makefile前,该方法还包括 IDE中的向导读入转换得到的XML文件,解析读入XML文件得到编译参数,并发至IDE 中的编译器。
4. 根据权利要求1、或2、或3所述开发环境转换的方法,其特征在于,所述编译参数包 括编译工具、依赖文件的存储地址、依赖文件间的相互关系、目标文件的名称和目标文件 的存储地址。
5. —种开发环境转换的装置,其特征在于,该装置包括设置于SDK的手写模块、命令 接收模块、调用模块,设置于IDE的编译器;其中,手写模块,用于在SDK的makefile中增加输出编译参数的规则; 命令接收模块,用于接收用户输入的将工程由SDK转换至IDE的命令,并触发调用模块;调用模块,用于调用Make工具解释、执行SDK的makefile中除所增加的规则外的其余 规则,编译工程的源文件,并解释、执行SDK的makefile中所增加的规则,输出编译过程中 所涉及的编译参数;编译器,用于根据所述编译参数自动生成makef ile。
6. 根据权利要求5所述开发环境转换的装置,其特征在于,该装置还包括设置于SDK的存储转换模块,用于将输出的编译参数存储至日志文件;并通过PERL将 日志文件转换为XML文件。
7. 根据权利要求6所述开发环境转换的装置,其特征在于,该装置还包括设置于IDE的向导模块,用于读入转换得到的XML文件,解析读入XML文件得到编译参 数,并发至所述编译器。
全文摘要
本发明公开了一种开发环境转换的方法,在SDK的makefile中增加输出编译参数的规则,输入将工程由SDK转换至IDE的命令时,该方法包括调用Make工具解释、执行SDK的makefile中除所增加的规则外的其余规则,编译工程的源文件,并解释、执行SDK的makefile中所增加的规则,输出编译过程中所涉及的编译参数;IDE中的编译器根据所述编译参数自动生成makefile。本发明同时还公开了一种开发环境转换的装置,包括设置于SDK的手写模块、命令接收模块、调用模块,设置于IDE的编译器。采用本发明所述的方法和装置,能够大大降低将SDK中的工程转换至IDE所需的时间及劳动量。
文档编号G06F9/45GK101697125SQ20091020949
公开日2010年4月21日 申请日期2009年11月4日 优先权日2009年11月4日
发明者杨 一 申请人:中兴通讯股份有限公司;