2014-02-26 48 views
0

我已經編寫了一個基於玩具libtooling的工具,它可以對ObjectiveC代碼進行一些分析/源代碼重寫。我如何通過iOS Xcode項目運行它?在iOS Xcode項目上運行Clang LibTooling工具

我已看過compiling the application through commandline/clang,但我還沒有得到它的工作。有沒有可能用xcodebuild鏈接我的工具?或者有沒有更好的方式來通過Xcode項目運行該工具?

+0

在代碼編譯之前,您是否需要此工具來運行?它需要什麼作爲輸入? – ekeren

+0

它需要在編譯之前運行,我想在編譯之前重寫源代碼。該工具需要源文件,並且應該能夠爲應用程序構建AST - 這意味着修復所有框架鏈接問題,除非我採取了錯誤的方法。 – Sorcerer13

回答

0

如果你想讓你的工具在代碼中產生錯誤和警告,它應該是一個鏗鏘插件,你可以改變你的項目clang標誌來加載插件。

就您的情況而言,您好像使用libtooling來更改源代碼,您可以在「編譯源」階段之前將腳本添加到項目構建過程中。

  1. 在Xcode中 - >點擊項目 - >點擊你想要的目標 - >構建階段 - >點擊編輯器(菜單欄) - >添加構建階段 - >添加運行腳本
  2. 將新運行腳本是之前編譯源代碼
  3. 編輯的運行腳本階段,做你想做
+0

該工具需要爲代碼創建AST來啓用重構 - 我還沒有想出修復所有框架/頭部問題的魔力。不會使用運行腳本遇到相同類型的問題? 我在clang插件上使用libtooling,因爲它似乎libtooling更適合重構,這是最終目標 - 我沒有真正偏向任何方式。我會再看一遍,謝謝。 – Sorcerer13

0

什麼,我想你需要的是JSON-Compilation-Database

您可以使用xctool生成一個JSON編譯DATABSE(xctool有記者產生這個東西,請參閱自述。)

JSON的編譯數據庫只是一個JSON文件,它包含了所有的編譯器選項(比如,標題搜索路徑,框架工作搜索路徑)需要傳遞給基於clang和libtooling的工具。