專利名稱:一種開發(fā)環(huán)境轉(zhuǎn)換的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件開發(fā)領(lǐng)域,尤其涉及一種開發(fā)環(huán)境轉(zhuǎn)換的方法及裝置。
背景技術(shù):
軟件開發(fā)工具包(SDK, Software Development Kit)和集成開發(fā)環(huán)境(IDE, Integrated Develop Environment)為目前常見的兩種手機(jī)客戶端軟件開發(fā)環(huán)境。SDK和 IDE中,均通過Make文件(makefile)來(lái)對(duì)工程中的源文件進(jìn)行編譯配置,具體為對(duì)于工 程中按類型、功能、模塊分別放在若干個(gè)目錄中的眾多源文件,通過在makefile中定義一 系列規(guī)則指定哪些源文件需要先編譯、哪些源文件需要后編譯、哪些源文件需要重新編譯 等,實(shí)現(xiàn)對(duì)其的編譯配置。 其中,SDK中,一般支持用戶使用命令行手工編寫makefile ;而IDE中則提供 用戶可視化的界面供用戶輸入編譯參數(shù),并自動(dòng)生成makefile,—般不接受用戶手寫 makefile,即用戶在SDK中手工編寫makefile不為IDE所接受,這樣,用戶選用SDK開發(fā)一 項(xiàng)工程,開發(fā)過程中卻又希望轉(zhuǎn)換至IDE中繼續(xù)開發(fā),則需要在IDE中輸入編譯參數(shù),重新 生成makefile,而如果工程較大、且在SDK中進(jìn)行了大量開發(fā)時(shí),對(duì)應(yīng)于已編寫的大量源文 件,則重新生成的makefile會(huì)包括大量規(guī)則,相應(yīng)的,輸入編譯參數(shù)的操作量也極大,實(shí)現(xiàn) 轉(zhuǎn)換所需的時(shí)間及勞動(dòng)量極為可觀。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種開發(fā)環(huán)境轉(zhuǎn)換的方法及裝置,能夠大 大降低將SDK中的工程轉(zhuǎn)換至IDE所需的時(shí)間及勞動(dòng)量。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的 —種開發(fā)環(huán)境轉(zhuǎn)換的方法,在軟件開發(fā)工具包(SDK)的makefile中增加輸出編譯 參數(shù)的規(guī)則,輸入將工程由SDK轉(zhuǎn)換至集成開發(fā)環(huán)境(IDE)的命令時(shí),該方法還包括
調(diào)用Make工具解釋、執(zhí)行SDK的makefile中除所增加的規(guī)則外的其余規(guī)則,編譯 工程的源文件,并解釋、執(zhí)行SDK的makefile中所增加的規(guī)則,輸出編譯過程中所涉及的編 譯參數(shù); IDE中的編譯器根據(jù)所述編譯參數(shù)自動(dòng)生成makefile。 進(jìn)一步地,所述輸出編譯過程中所涉及的編譯參數(shù)后,該方法還包括 將輸出的編譯參數(shù)存儲(chǔ)至日志文件;并通過實(shí)用報(bào)表提取語(yǔ)言(PERL)將日志文
件轉(zhuǎn)換為可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件。 進(jìn)一步地,所述IDE根據(jù)所述編譯參數(shù)自動(dòng)生成makefile前,該方法還包括
IDE中的向?qū)ёx入轉(zhuǎn)換得到的XML文件,解析讀入XML文件得到編譯參數(shù),并發(fā)至 IDE中的編譯器。 進(jìn)一步地,所述編譯參數(shù)包括編譯工具、依賴文件的存儲(chǔ)地址、依賴文件間的相 互關(guān)系、目標(biāo)文件的名稱和目標(biāo)文件的存儲(chǔ)地址。
本發(fā)明還提供一種開發(fā)環(huán)境轉(zhuǎn)換的裝置,該裝置包括設(shè)置于SDK的手寫模塊、命 令接收模塊、調(diào)用模塊,設(shè)置于IDE的編譯器;其中, 手寫模塊,用于在SDK的makefile中增加輸出編譯參數(shù)的規(guī)則; 命令接收模塊,用于接收用戶輸入的將工程由SDK轉(zhuǎn)換至IDE的命令,并觸發(fā)調(diào)用
模塊; 調(diào)用模塊,用于調(diào)用Make工具解釋、執(zhí)行SDK的makefile中除所增加的規(guī)則外的 其余規(guī)則,編譯工程的源文件,并解釋、執(zhí)行SDK的makefile中所增加的規(guī)則,輸出編譯過 程中所涉及的編譯參數(shù); 編譯器,用于根據(jù)所述編譯參數(shù)自動(dòng)生成makef ile。
進(jìn)一步地,該裝置還包括 設(shè)置于SDK的存儲(chǔ)轉(zhuǎn)換模塊,用于將輸出的編譯參數(shù)存儲(chǔ)至日志文件;并通過 PERL將日志文件轉(zhuǎn)換為XML文件。
進(jìn)一步地,該裝置還包括 設(shè)置于IDE的向?qū)K,用于讀入轉(zhuǎn)換得到的XML文件,解析讀入XML文件得到編 譯參數(shù),并發(fā)至所述編譯器。 本發(fā)明所提供的開發(fā)環(huán)境轉(zhuǎn)換的方法及裝置,通過在SDK的makefile中增加輸出 編譯參數(shù)的規(guī)則來(lái)輸出編譯參數(shù),IDE中的編譯器根據(jù)所述編譯參數(shù)自動(dòng)生成makefile, 實(shí)現(xiàn)將工程由SDK轉(zhuǎn)換至IDE,省略了人為輸入編譯參數(shù)所耗的勞動(dòng)量,且輸出編譯參數(shù)的 速度較人為輸入編譯參數(shù)相比要快的多,因而大大降低將SDK中的工程轉(zhuǎn)換至IDE所需的 時(shí)間及勞動(dòng)量。
圖1為本發(fā)明實(shí)施例開發(fā)環(huán)境轉(zhuǎn)換方法的實(shí)現(xiàn)流程圖;
圖2為本發(fā)明實(shí)施例開發(fā)環(huán)境轉(zhuǎn)換裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例開發(fā)環(huán)境轉(zhuǎn)換方法的實(shí)現(xiàn)流程如圖1所示,具體包括以下步驟 步驟101 :在SDK的makefile中增加輸出編譯參數(shù)的規(guī)則。以下以可實(shí)現(xiàn)所述輸
出編譯參數(shù)的規(guī)則的代碼為例,具體說(shuō)明如何通過所述輸出編譯參數(shù)的規(guī)則輸出編譯過程
中所涉及的編譯參數(shù) 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的一個(gè)目標(biāo)獨(dú)立運(yùn)行,運(yùn)行該代碼可得到編譯參數(shù),例 如,運(yùn)行',echo FLAVOR@ = = $ (FLAVOR) >> $ (IDE)"輸出FLAVOR@ = = debug,即輸出編 譯工具為debug。 本發(fā)明實(shí)施例,在用戶輸入將工程由SDK轉(zhuǎn)換至IDE的命令時(shí),執(zhí)行步驟102、 103。
步驟102 :調(diào)用Make工具解釋、執(zhí)行SDK的makefile中除所增加的規(guī)則外的其余 規(guī)則,編譯工程的源文件,并解釋、執(zhí)行SDK的makefile中所增加的規(guī)則,輸出編譯過程中 所涉及的編譯參數(shù); 所述makefile中除所增加的規(guī)則外的其余規(guī)則指定了編譯工具、依賴文件、依賴 文件間的相互關(guān)系及目標(biāo)文件的存儲(chǔ)地址等,Make工具依據(jù)所述makefile中除所增加的 規(guī)則外的其余規(guī)則編譯工程源文件。 這里,所述編譯參數(shù)包括編譯工具、依賴文件的存儲(chǔ)地址、依賴文件間的相互關(guān) 系、目標(biāo)文件的名稱和目標(biāo)文件的存儲(chǔ)地址,每個(gè)編譯參數(shù)均只包括一個(gè)目標(biāo)文件的名稱, 即在編譯中,每得到一個(gè)目標(biāo)文件,即輸出一個(gè)其對(duì)應(yīng)的編譯參數(shù),具體的所輸出的編譯 參數(shù)中,編譯工具為得到該目標(biāo)文件所采用的編譯工具,而得到目標(biāo)文件的編譯過程可描 述為根據(jù)依賴文件間的相互關(guān)系編譯依賴文件的存儲(chǔ)地址指示的依賴文件,即得到目標(biāo) 文件,目標(biāo)文件的名稱和目標(biāo)文件的存儲(chǔ)地址即分別為該目標(biāo)文件的名稱和存儲(chǔ)地址。
其中,所述輸出編譯過程中所涉及的編譯參數(shù)后,步驟102還包括將輸出的編譯 參數(shù)存儲(chǔ)至日志文件,并通過實(shí)用報(bào)表提取語(yǔ)言(PERL,PracticalExtraction and R印ort Language)將日志文件轉(zhuǎn)換為可擴(kuò)展標(biāo)記語(yǔ)言(XML, Extensible Markup Language)文件; 這里,將日志文件轉(zhuǎn)換為XML文件是為了更容易從中解析出編譯參數(shù)。
步驟103 :IDE中的編譯器根據(jù)所述編譯參數(shù)自動(dòng)生成makefile,完成將工程由 SDK轉(zhuǎn)換至IDE,結(jié)束本次轉(zhuǎn)換流程。 這里,所述IDE中的編譯器根據(jù)所述編譯參數(shù)自動(dòng)生成makefile具體為 IDE中的向?qū)ёx入轉(zhuǎn)換得到的XML文件,解析讀入的XML文件得到編譯參數(shù),并發(fā)
至IDE中的編譯器。 本發(fā)明實(shí)施例開發(fā)環(huán)境轉(zhuǎn)換裝置的結(jié)構(gòu)如圖2所示,包括設(shè)置于SDK的手寫模
塊、命令接收模塊、調(diào)用模塊,設(shè)置于IDE的編譯器;其中, 手寫模塊,用于在SDK的makefile中增加輸出編譯參數(shù)的規(guī)則; 命令接收模塊,用于接收用戶輸入的將工程由SDK轉(zhuǎn)換至IDE的命令,并觸發(fā)調(diào)用
模塊; 調(diào)用模塊,用于調(diào)用Make工具解釋、執(zhí)行SDK的makefile中除所增加的規(guī)則外的 其余規(guī)則,編譯工程的源文件,并解釋、執(zhí)行SDK的makefile中所增加的規(guī)則,輸出編譯過程中所涉及的編譯參數(shù); 編譯器,用于根據(jù)所述編譯參數(shù)自動(dòng)生成makefile。
進(jìn)一步地,該裝置還包括 設(shè)置于SDK的存儲(chǔ)轉(zhuǎn)換模塊,用于將輸出的編譯參數(shù)存儲(chǔ)至日志文件;并通過PERL將日志文件轉(zhuǎn)換為XML文件。
進(jìn)一步地,該裝置還包括 設(shè)置于IDE的向?qū)K,用于讀入轉(zhuǎn)換得到的XML文件,解析讀入XML文件得到編譯參數(shù),并發(fā)至所述編譯器。 以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種開發(fā)環(huán)境轉(zhuǎn)換的方法,其特征在于,在軟件開發(fā)工具包(SDK)的makefile中增加輸出編譯參數(shù)的規(guī)則,輸入將工程由SDK轉(zhuǎn)換至集成開發(fā)環(huán)境(IDE)的命令時(shí),該方法還包括調(diào)用Make工具解釋、執(zhí)行SDK的makefile中除所增加的規(guī)則外的其余規(guī)則,編譯工程的源文件,并解釋、執(zhí)行SDK的makefile中所增加的規(guī)則,輸出編譯過程中所涉及的編譯參數(shù);IDE中的編譯器根據(jù)所述編譯參數(shù)自動(dòng)生成makefile。
2. 根據(jù)權(quán)利要求1所述開發(fā)環(huán)境轉(zhuǎn)換的方法,其特征在于,所述輸出編譯過程中所涉 及的編譯參數(shù)后,該方法還包括將輸出的編譯參數(shù)存儲(chǔ)至日志文件;并通過實(shí)用報(bào)表提取語(yǔ)言(PERL)將日志文件轉(zhuǎn) 換為可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件。
3. 根據(jù)權(quán)利要求2所述開發(fā)環(huán)境轉(zhuǎn)換的方法,其特征在于,所述IDE根據(jù)所述編譯參數(shù) 自動(dòng)生成makefile前,該方法還包括 IDE中的向?qū)ёx入轉(zhuǎn)換得到的XML文件,解析讀入XML文件得到編譯參數(shù),并發(fā)至IDE 中的編譯器。
4. 根據(jù)權(quán)利要求1、或2、或3所述開發(fā)環(huán)境轉(zhuǎn)換的方法,其特征在于,所述編譯參數(shù)包 括編譯工具、依賴文件的存儲(chǔ)地址、依賴文件間的相互關(guān)系、目標(biāo)文件的名稱和目標(biāo)文件 的存儲(chǔ)地址。
5. —種開發(fā)環(huán)境轉(zhuǎn)換的裝置,其特征在于,該裝置包括設(shè)置于SDK的手寫模塊、命令 接收模塊、調(diào)用模塊,設(shè)置于IDE的編譯器;其中,手寫模塊,用于在SDK的makefile中增加輸出編譯參數(shù)的規(guī)則; 命令接收模塊,用于接收用戶輸入的將工程由SDK轉(zhuǎn)換至IDE的命令,并觸發(fā)調(diào)用模塊;調(diào)用模塊,用于調(diào)用Make工具解釋、執(zhí)行SDK的makefile中除所增加的規(guī)則外的其余 規(guī)則,編譯工程的源文件,并解釋、執(zhí)行SDK的makefile中所增加的規(guī)則,輸出編譯過程中 所涉及的編譯參數(shù);編譯器,用于根據(jù)所述編譯參數(shù)自動(dòng)生成makef ile。
6. 根據(jù)權(quán)利要求5所述開發(fā)環(huán)境轉(zhuǎn)換的裝置,其特征在于,該裝置還包括設(shè)置于SDK的存儲(chǔ)轉(zhuǎn)換模塊,用于將輸出的編譯參數(shù)存儲(chǔ)至日志文件;并通過PERL將 日志文件轉(zhuǎn)換為XML文件。
7. 根據(jù)權(quán)利要求6所述開發(fā)環(huán)境轉(zhuǎn)換的裝置,其特征在于,該裝置還包括設(shè)置于IDE的向?qū)K,用于讀入轉(zhuǎn)換得到的XML文件,解析讀入XML文件得到編譯參 數(shù),并發(fā)至所述編譯器。
全文摘要
本發(fā)明公開了一種開發(fā)環(huán)境轉(zhuǎn)換的方法,在SDK的makefile中增加輸出編譯參數(shù)的規(guī)則,輸入將工程由SDK轉(zhuǎn)換至IDE的命令時(shí),該方法包括調(diào)用Make工具解釋、執(zhí)行SDK的makefile中除所增加的規(guī)則外的其余規(guī)則,編譯工程的源文件,并解釋、執(zhí)行SDK的makefile中所增加的規(guī)則,輸出編譯過程中所涉及的編譯參數(shù);IDE中的編譯器根據(jù)所述編譯參數(shù)自動(dòng)生成makefile。本發(fā)明同時(shí)還公開了一種開發(fā)環(huán)境轉(zhuǎn)換的裝置,包括設(shè)置于SDK的手寫模塊、命令接收模塊、調(diào)用模塊,設(shè)置于IDE的編譯器。采用本發(fā)明所述的方法和裝置,能夠大大降低將SDK中的工程轉(zhuǎn)換至IDE所需的時(shí)間及勞動(dòng)量。
文檔編號(hào)G06F9/45GK101697125SQ20091020949
公開日2010年4月21日 申請(qǐng)日期2009年11月4日 優(yōu)先權(quán)日2009年11月4日
發(fā)明者楊 一 申請(qǐng)人:中興通訊股份有限公司;