我試圖在用SCons構建項目時添加事件前和事件後處理操作。如何將預處理和後處理操作添加到SCons構建?
SConstruct和SConscript文件位於項目的頂部。
處理前的行動: 生成代碼(通過調用不同的工具): - >不知道將這個預處理(額外的預加工後產生的確切文件決定哪些生成的文件可以爲了與他們養活SCons的)
創建 - >運行外部腳本(蟒蛇,珍珠腳本),編譯前執行
後處理措施:
- >運行外部工具,運行外部腳本,應該是聯
我試了一下到現在爲止後執行:
對於前處理:
- 要使用的操作系統。系統從python運行cmd。 (工作正常,但我正在尋找「SCons解決方案」)
- 要使用SCons的
AddPreAction(target, action)
函數。不幸的是這個功能正在編制項目爲SCons的用戶手冊狀態後執行:"The specified pre_action would be executed before scons calls the link command that actually generates the executable program binary foo, not before compiling the foo.c file into an object file."
對於後處理:
- 要使用
AddPostAction(target, action)
這工作得很好,幸運的。
我正在尋找一些解決方案,讓SCons以某種方式意識到這個預處理和後處理。
我的問題是:
什麼是最好的方法,對於要求如上所述,使用SCons的?有沒有辦法在使用SCons內置函數進行編譯之前執行預處理操作?
其他問題:您提到了上面的兩個腳本,您可以在構建期間使用它們生成其他源文件。是否爲這些腳本生成的文件名列表是固定的,即您總是獲得相同的一組輸出文件(*不*必須具有相同的內容!)...或者這個「目標」列表取決於腳本的輸入嗎? – dirkbaechle
我可以獲得不同的輸出文件,該腳本調用具有其自己的配置文件的工具。我不確切知道生成的文件是什麼。還有一個問題,腳本2依賴於由腳本生成的文件1 –
好吧,現在有一個例子說明如何嘗試將您的CMD添加爲PostAction(您正在使用錯誤的語法,該方法期望目標作爲參數而不是環境)......但是如何在命令行上調用腳本?你如何在SCons中運行它看起來像? – dirkbaechle